Your AI Co-Pilot for YouTube - MCP server for video transcripts, search, and analysis
TubePilot has 32 tools with consistent naming patterns (verb_noun style: get_*, search_*, extract_*, etc.) and descriptions for all tools. However, schema quality is inconsistent: most tools have parameter schemas with descriptions, but several lack proper constraints (enums missing for fields like 'order', 'duration', 'quality'). Output schemas are not documented in tool definitions. Parameter descriptions vary from good (specific format hints) to minimal. Error handling is basic (try/catch returns generic error text). The server is STDIO-only, which limits protocol readiness to 50 max regardless of definition quality.
Analyze a YouTube Short video with metrics, content analysis, and visual frame extraction
Find answers to specific questions by searching the video transcript for relevant segments
Compare statistics and engagement metrics across multiple videos
Create shareable YouTube clip URLs with start and end time parameters
Detect if a video is a music video using heuristics and metadata analysis
Extract code snippets, commands, and technical instructions from a coding tutorial video
Extract all URLs, @mentions, emails, hashtags, products, books, and courses mentioned in a video
Output schemas not documented in tool definitions. Tool descriptions state what they return in prose, but structured output schema (field names, types, cardinality) is absent from tool metadata. LLMs cannot reliably plan multi-step tool chains without knowing what fields downstream tools will receive.
Enum constraints missing for 'order', 'duration', 'quality', and 'type' parameters. These fields accept a closed set of values but are not declared as JSON Schema enums in visible schemas. LLMs may hallucinate invalid options like 'popularity' instead of 'viewCount', or 'ultra' instead of 'maxres'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Find all timestamps where specific topics or keywords are discussed in the video
Identify programming languages, frameworks, databases, and tools mentioned in a video
Get list of YouTube video categories available in a region
Get information about a YouTube channel including subscriber count, description, and statistics
Get list of recent videos from a YouTube channel
Extract a single frame from a video at a specific timestamp
Get high-resolution thumbnail URLs for a video in multiple quality options
Get playlist details and list of videos in a playlist
Get videos related to a specific video
Get the full transcript of a YouTube video with optional timestamps
Get trending videos in a specific region and optional category
Extract step-by-step instructions from a tutorial video with timestamps
Extract chapter markers from a video's description and return them as a structured list with timestamps
Get top comments on a video with author names and like counts
Get detailed information about a specific video including views, likes, publish date, and more
Extract multiple frames/thumbnails from a video at evenly distributed timestamps
Get basic information about a YouTube video including title, channel, duration, description, and keywords
Get detailed information about a specific moment in a video including transcript context and visual frame
Create a structured outline of the video based on natural breaks and key topics in the transcript
Generate a summary of a video using its transcript with configurable style (brief, detailed, or bullet-points)
Check server health status, API key configuration, cache statistics, and available capabilities
List all available caption/transcript languages for a video
Combine transcripts from multiple videos into a single merged document
Search for specific text or phrases within a video's transcript
Search YouTube for videos by query with filtering options
Minimal error recovery guidance. Error handling in server.ts catches exceptions and returns isError: true with generic message. No classification of errors as retryable vs user-fixable, no suggestions for next steps. E.g., 'API error' tells LLM nothing; should be 'YouTube API rate limit exceeded. Retry in 60 seconds.'
Parameter constraint documentation inconsistent. Some descriptions include format hints ('Format MM:SS or HH:MM:SS'), others do not specify valid ranges or patterns. 'count' parameter on get_video_frames states '1-10' in description but no min/max schema constraints visible.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All 32 tools are READ_ONLY per feature metadata, but tool definitions do not carry explicit annotation metadata. Tool annotations enable clients to optimize caching, warn users of destructive ops, and safely retry idempotent calls.
No pagination parameters or result limits documented. Tools returning lists (search_videos, get_channel_videos, get_playlist, get_related_videos, compare_videos) have maxResults but no offset/page or cursor. No documentation of cap (e.g., 'returns max 50 items') or guidance on requesting next page.
API key requirement not reflected in parameter constraints or descriptions. Tools requiring YouTube API key (search_videos, get_channel_info, etc.) do not document this in tool descriptions; server-side handler checks ctx.youtubeApi and returns instruction text. Better to document requirement in description: 'Requires YouTube API key configured in YOUTUBE_API_KEY environment variable.'