MCP server for retrieving YouTube video transcripts in multiple languages and formats
Single tool server with generally adequate but not comprehensive definition quality. The tool `fetch_youtube_transcript` has a reasonable name following verb_noun convention, clear parameter descriptions with proper typing and enums, and an acceptable overall schema. However, the tool description is relatively generic and lacks specifics about output structure, error conditions, and practical guidance for LLM selection. The implementation shows input validation (checking format enum, type checking) but error messages are somewhat generic. Output schema is not explicitly documented, only the return type `str` is visible in the function signature. Parameter defaults are sensible (lang_code='en', format='json') and avoid destructive defaults. No pagination, batching, or advanced composition patterns are present, but the tool's domain (read-only transcript fetching) does not demand these. Schema quality is solid with proper enum constraint on format parameter, but lacks explicit output field documentation.
Tool to fetch the transcript of a YouTube video. :param video_id: The unique identifier of the YouTube video. :param lang_code: The language code for the transcript (default is 'en' for English). :param format: The desired output format of the transcript; either 'text' or 'json'. :return: The transcript in the specified format.
Output schema not documented. Return type is declared as `str` but the structure (plain text vs. JSON object as string) is ambiguous. LLMs cannot predict what fields or structure to expect.
Tool description lacks context on when to use it vs. alternatives and does not explain the return format clearly. Description is 159 characters, within range but somewhat generic. Does not answer: 'What does the LLM do with this output?' or 'What are common failure modes?'
Error handling returns generic ValueError messages for specific failure types (VideoUnavailable, TranscriptsDisabled). While these are caught, the error messages do not guide the LLM on recovery. E.g., 'Transcripts are disabled for the video with ID...' does not suggest alternatives or next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |