MCP server for YouTube URL operations including generating watch URLs, thumbnail URLs, and normalizing various YouTube URL formats
This server presents three simple URL-manipulation tools with functional descriptions but significant quality gaps. All tools are explicitly defined with descriptions and input schemas, but the schemas lack depth, parameter descriptions are minimal or absent, output schemas are undocumented, and error handling is absent. The tools perform read-only operations on YouTube URLs, a narrow, low-value domain. By production baselines (194 char avg descriptions, 72 char avg param descriptions, 100% of A+ tools documented), this server falls well short. The tools lack the sophistication, composability, and robustness expected of production agent tools.
Returns the normalized YouTube URL for a given URL.
Returns the thumbnail URL for a given YouTube video ID.
Returns the YouTube watch URL for a given video ID, optionally starting at a specific time.
Input parameter descriptions are missing or present only in code docstrings, not exposed via MCP schema. Schema definitions lack the 'description' field for input parameters, violating baseline that 100% of A+ tools document every parameter.
Output schemas are completely undocumented. Tools return JSON strings but provide no schema, field definitions, or examples. LLMs cannot plan downstream calls or extract data reliably. Violates baseline: 100% of A+ tools have documented return types.
No error handling or recovery guidance. get_normalized_url silently returns (None, None) on invalid URLs with no error message, cause, or suggestion for the LLM. Violates pattern: recovery-guide, errors must tell the agent what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
Tool descriptions fall well below production baselines. Average production tool description is 194 chars; these are 45 - 60 chars, in the p10 range. Descriptions lack context on WHEN to use each tool, differentiating them from similar tools, and what structure is returned.
Hidden parameter options reduce composability. get_thumbnail_url internally supports quality parameter with 5 options but does not expose it to the agent. Agent cannot request different thumbnail resolutions, reduces value and forces workarounds.
No input validation or constraint documentation. start_time in get_watch_url is an integer but no min/max bounds documented; could accept negative or absurdly large values. video_id has no format or length validation. Baseline: parameters should specify expected format, range, and allowed values in descriptions.