MCP Server for YouTube Channel Management via YouTube Data API v3 & Analytics API
The server defines 24 tools with mostly complete JSON schemas and descriptions. However, there are systematic gaps: (1) Many parameter descriptions lack sufficient detail about constraints, formats, and valid values. (2) No output schemas are documented anywhere, responses are unstructured JSON. (3) Tool descriptions are present but generic; they lack WHEN-to-use guidance and operational prerequisites. (4) Error handling guidance is minimal. (5) No tool annotations (readOnlyHint/destructiveHint/idempotentHint) are visible despite risk labels in the assessment. The average tool scores 62/100, placing this in the 'Fair' range with 'significant gaps' in documentation and composition patterns.
Analyze a competitor YouTube channel: stats, top videos, upload frequency, common tags.
Create a community tab post with text, image, and poll options.
Create a new YouTube playlist.
Delete a comment from a video.
Delete a video from YouTube channel.
Extract or generate video chapters. Provide either video_id (to extract from description) or transcript_text (to generate).
Generate an optimized video description template with sections for timestamps, links, and hashtags.
No output schemas documented for any tool. Responses are unstructured JSON blobs. LLMs cannot plan downstream tool calls or extract required fields without knowing response structure.
Destructive tools (delete_video, delete_comment) lack confirmation patterns. No error recovery guidance is present.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 48 | - | v1 |
Generate SEO-optimized title suggestions based on topic analysis and competitor research.
Get audience demographics, traffic sources, countries, and device breakdown.
Get channel statistics: subscribers, total views, total videos, and API quota status.
Get a summary of all comments on a video including sentiment analysis and themes.
Get all comments on a video with details.
Get revenue report with estimated earnings, RPM, CPM, and monetized playbacks.
Get top performing videos ranked by a specific metric.
Get full details of a YouTube video: metadata, stats, tags, description.
Get detailed performance metrics for a specific video (views, likes, watch time, CTR, impressions).
List videos from your YouTube channel with stats.
Reply to a comment on a video.
Discover trending topics on YouTube by analyzing popular videos in a region/category.
Search YouTube videos by query with sorting options.
Set a custom thumbnail for a video.
Suggest relevant tags based on title, description, and competitor video analysis.
Update an existing video metadata (title, description, tags, privacy).
Upload a video to YouTube channel. Costs 1600 API quota units.
No tool annotations visible in code. Destructive (delete_video, delete_comment) and write (upload_video, update_video, reply_comment, create_community_post) tools should have readOnlyHint=false and/or destructiveHint=true annotations to guide agent reasoning.
Many parameter descriptions lack detail on constraints, valid values, and formats. E.g., 'category_id' in upload_video does not define which IDs are valid (should enumerate YouTube category IDs or link to reference). 'privacy_status' enums are good but some fields like 'metric' in get_top_videos lack explanation of what each option means.
Tool descriptions lack WHEN-to-use guidance and operational context. E.g., get_channel_stats vs get_revenue_report, when should an agent pick one over the other? What prerequisites must be met (OAuth scopes, monetization status)? This forces LLMs to guess.
Error handling is absent or minimal. No tools document retryable vs fatal errors, no recovery guidance, no validation error messages.
Pagination and list limiting inconsistent. list_videos allows 1-50 (good), but get_comments allows 1-100, get_top_videos has default 10. Some tools (generate_title_suggestions, suggest_tags, generate_chapters) do not specify result limits, risking context window exhaustion.
Composition issues: generate_* tools (generate_title_suggestions, generate_description, suggest_tags) appear to generate content but return type (single suggestion vs array?) is undocumented. Cannot chain output of one tool into upload_video without seeing actual response.