High-performance, dependency-free Model Context Protocol (MCP) server for full YouTube Studio channel management, video publishing, playlists, comments, and deep analytics.
32 tools with explicit schemas and descriptions. Naming is consistent (verb_noun pattern: youtube_*). Descriptions are present but brief (avg ~80 chars, below 194-char baseline). All tools have input schemas with proper JSON Schema structure. Critical gaps: no output schemas documented, no error handling guidance, no parameter descriptions for most fields, missing idempotency/destructive hints. Composition is sound (single responsibility per tool), but parameter validation rules are sparse.
Add a video to a specific playlist.
Return viewer age group, gender, or country distribution percentages.
Return top performing videos by view count and watch time for a date range.
Return traffic source breakdown (Search, Suggested, Browse, External) for a date range.
Show whether YouTube OAuth credentials and tokens are configured.
Bulk extract transcripts from a list of video IDs, an entire playlist, or recent uploads. Can optionally save directly to local files.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., video_id from list_videos for chaining to get_video). Baseline: 100% of A+ tools document return types.
Parameter descriptions missing or minimal. Most parameters (video_id, playlist_id, etc.) lack descriptions explaining format, constraints, or examples. Baseline: 100% of A+ tools have param descriptions.
No error handling guidance. Tools lack recovery hints (e.g., 'If video not found, try search_videos()'). No categorization of errors as retryable vs. fatal. Baseline: A+ tools include recovery guides.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2026-07-28+ | v2 |
Return channel-level analytics (views, watch time, retention, subs) for a date range.
Fetch the authenticated YouTube channel profile, branding, and public statistics.
Create a new playlist on your channel.
Delete a caption track by its caption ID.
Delete a comment by its ID.
Delete a playlist from your YouTube channel.
Permanently delete a YouTube video from your channel.
Download raw caption file (SRT, VTT, SBV) by caption ID.
Get all videos contained inside a specific playlist.
Extract the full spoken transcript, summary-ready text, or timestamped segments from a video.
Fetch detailed metadata, statistics, and status for a single YouTube video.
List existing caption/subtitle tracks for a video.
List top-level comment threads on a YouTube video.
List all playlists on the authenticated YouTube channel.
List recent channel videos with merged metadata, details, and statistics.
Post a top-level comment on one of your YouTube videos.
Remove an item from a playlist using its playlist item ID.
Reply directly to an existing comment on a video.
Search YouTube channels by topic or keyword.
Search YouTube videos by keywords to analyze competitor titles, tags, and views.
Generate the OAuth authorization URL and local auth command.
Update title, description, or privacy of an existing playlist.
Update video title, description, tags list, category, language, or privacy status.
Upload a new custom thumbnail for a video from a local image file path.
Upload a local video file (.mp4, .mov, .mkv) to YouTube via resumable upload.
Return per-day analytics for one video across a date range.
Destructive tools (delete_video, delete_playlist, delete_comment, delete_caption) lack confirmation/dry-run support. No idempotent or destructive hints in tool annotations. Agents can accidentally delete without safeguards.
No pagination guidance in descriptions. Tools like youtube_list_videos accept max_results and page_token but descriptions don't explain when/how to use pagination or what total count is returned.