No-fuss YouTube transcripts for MCP - no API keys required! A Model Context Protocol server to get YouTube video transcripts.
Server has 5 tools with complete Zod schemas and descriptions. Naming follows verb_noun convention (get_*, search_*). Descriptions are present and moderately detailed (avg ~180 chars), exceeding the 10-char minimum but below the 50-200 char LLM-optimized range for some tools. All parameters have type definitions and descriptions. However, output schemas are not documented, responses are JSON-stringified text without explicit field documentation. Error handling is absent; no recovery guidance or categorization. Tool composition is sound (single responsibility), but descriptions could be more concise and action-oriented. get_transcript has extensive optional parameters with good documentation; search_* tools are simpler but adequate.
Retrieves a list of videos from a specified YouTube channel. This tool is useful for getting all videos uploaded by a specific channel.
Retrieves the full transcript of a specified YouTube video. This tool is useful for understanding video content without watching it, or for extracting textual information from videos. FORMATTING GUIDANCE (optional - user instructions override): When creating summaries, consider using: **Key Points with Timestamps:** Use [MM:SS] or [HH:MM:SS] inline references. **Structure:** Break into logical sections. **Context:** Include video title and channel. Example: 'The speaker explains TypeScript generics [05:30] and shows practical examples [08:15].' This formatting is optional - always follow any specific user instructions instead.
Captures a screenshot from a YouTube video at a specified timestamp. Requires yt-dlp for full-quality captures; falls back to lower-resolution YouTube storyboards (320x180 max) if yt-dlp is not installed.
Searches YouTube for channels matching the specified query. You can specify a sort order for the results (default: rating).
Searches YouTube for videos matching the specified query. Returns a list of video results with title, video ID, and channel information. Results are sorted by rating by default for better quality content.
Output schemas not documented. Tools return JSON-stringified text without explicit field definitions. LLMs cannot plan downstream calls or extract structured data reliably.
No error handling or recovery guidance. Tools return raw errors without actionable next steps. LLMs cannot self-correct or determine if errors are retryable.
get_transcript description is verbose (>300 chars) with embedded formatting guidance. Should be concise (50-200 chars) and move formatting hints to parameter descriptions or documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
search_videos and search_channels lack pagination parameters (limit, offset, page_size). Large result sets will blow context windows without pagination support.
get_video_frame quality parameter uses yt-dlp format selector syntax. Should document valid values or provide enum of common presets (e.g., 'low', 'medium', 'high', 'best').