MCP server that provides comprehensive YouTube channel and video analytics using the official YouTube APIs.
Server has 9 tools with basic naming and descriptions, but critical gaps in schema completeness and parameter documentation. Tool names follow verb_noun convention (list_, get_, compare_) which is good. However, input schemas visible in the rubric show parameters lack detailed descriptions, e.g., 'channel_id' has description 'The YouTube channel ID' (18 chars, below 20-char floor). Most parameter descriptions are minimal (10-20 chars), failing the 50-200 char LLM-optimized baseline. No output schemas documented anywhere in source. Error handling and recovery guidance absent. Tool definitions appear to use goMCP.AddTool() with minimal schema info, actual schema details inferred from the rubric input, not visible in source code, triggering the inference cap rule.
Compare channel performance between two time periods
Analyze which days of the week perform best for video uploads
Compare performance across different video formats/types by analyzing title patterns
Compare performance metrics across multiple videos
Get comprehensive analytics data for a channel within a date range
Get detailed analytics for specific videos
Input schemas not visible in source code. Tool registration in pkg/mcp/server.go uses goMCP.AddTool() with only Name and Description fields; no InputSchema parameter visible. Actual schemas inferred from rubric, triggering inference cap rule (max 50 per tool).
Parameter descriptions are minimal (10-20 chars). E.g., 'channel_id' → 'The YouTube channel ID' (18 chars). Rubric baseline for param descriptions is 72 chars avg; LLM-optimized range is 50-200 chars. Current descriptions lack context on format, constraints, or when to use.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Get list of all the top level comments of a video
Get a list of all videos from a channel with basic information
List all YouTube channels accessible with the API key
No output schemas documented. Handlers return MarkdownOutput or structured results, but no schema definitions visible in source. LLMs cannot plan downstream calls or extract fields without documented return types.
No error handling or recovery guidance. Handlers return bare errors (e.g., 'if err != nil { return nil, MarkdownOutput{}, err }') without categorizing as retryable/user-fixable/fatal or suggesting next steps. LLMs cannot self-correct.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe-to-retry tools from destructive ones.