TLDL (Too Long; Didn't Listen) — MCP server that fetches YouTube/Spotify podcast transcripts as markdown.
Single tool with solid naming (verb_noun: get_transcript) and comprehensive description (287 chars, within 10-1024 baseline). Input schema is complete with three parameters, all typed and described. However, output schema is undocumented, the tool returns a string (Markdown with YAML frontmatter) but LLMs cannot infer the structure or fields to extract. Error handling is good (friendly_error function maps exceptions to actionable messages), but no recovery guidance in tool description. Missing tool annotations (readOnlyHint present via Risk field, but not in schema). No pagination or result limits documented despite potentially large transcript outputs.
Fetch the auto-caption transcript for a podcast URL and return it as Markdown with YAML frontmatter. - YouTube: uses the video's manual or auto-generated captions. - Spotify: resolves the episode to the same upload on YouTube via oEmbed + YouTube search. Spotify-exclusive episodes are not supported. - Apple Podcasts: resolves the episode via the iTunes Lookup API and then matches it on YouTube. Apple-exclusive episodes are not supported.
Output schema undocumented. Tool returns Markdown string with YAML frontmatter, but LLMs cannot infer structure (title, show, duration, sections, etc.). Agents cannot reliably extract fields for downstream processing.
No recovery guidance in error messages. Tool description does not explain what to do if resolution fails (e.g., 'Spotify-exclusive episodes not supported, try a YouTube link instead'). Agents cannot self-correct.
Tool annotations missing from schema. Risk field indicates READ_ONLY, but schema lacks readOnlyHint annotation. Agents cannot programmatically detect tool safety properties.
No result limits or pagination documented. Transcripts can be very long (hours of audio). Tool description should state max output size and offer chunking/pagination for large results.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Parameter 'language' lacks format constraint. Description says 'ISO language code' but does not specify valid values (e.g., 'en', 'es', 'fr') or range. LLMs may pass invalid codes.