MCP server for extracting transcripts from YouTube videos using yt-dlp
Single tool with adequate naming and clear purpose, but parameter descriptions are minimal and output schema is not documented. The tool follows basic structure but lacks the depth expected in production-grade agents. Schema validation is present but sparse. Error handling returns structured responses but lacks actionable recovery guidance.
Extract transcript from YouTube video URL
Output schema not documented. Tool returns dict with conditional fields (transcript, language, error, details, attempted_languages) but no explicit schema definition for LLM to know what to expect. Without documented output structure, agents cannot reliably extract and chain results.
Parameter 'language' description is minimal (6 words). Rubric baseline for parameter annotations is 72 chars average. Current description 'Optional language code (e.g., "en", "fr"). Defaults to "en"' (59 chars) is borderline but lacks guidance on what happens if unsupported language is requested or how fallback strategy works.
Error handling does not provide recovery guidance. When transcript fetch fails, response returns error and attempted_languages, but does not guide the LLM on what to try next (e.g., 'Consider a different video or check if captions are disabled on this video').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 70 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 49 | 2025-03-26+ | v1 |
No input validation error messages. Tool silently returns {'error': 'Invalid YouTube URL'} for malformed input. Should return actionable message: 'Invalid YouTube URL. Expected format: youtube.com/watch?v=VIDEO_ID or youtu.be/VIDEO_ID or raw video ID (11 alphanumeric characters)'.
Tool name 'get_transcript' is clear and verb-first, meeting naming baseline. However, no indication in tool definition whether this operation is idempotent or has side effects (file cleanup during process may suggest transient state). Should include idempotentHint annotation.