MCP Server for YouTube Watch History. Syncs and searches your YouTube watch history using Google's Data Portability API. History is stored in a local SQLite database for fast search and analytics.
Server has 5 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization), and input schemas are present but minimal. sync_history and import_takeout lack parameter descriptions entirely. No output schemas documented. Error handling is absent, tools return raw exceptions rather than actionable recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Naming is verb-forward (sync_, import_, search_, get_) but descriptions are too terse to guide LLM selection. The server exposes OAuth credentials via environment variables (correct pattern), but tools themselves lack permission gates and audit trails.
Get recently watched videos
View watching statistics and patterns
Import from a Google Takeout JSON/ZIP file
Search watch history by keyword
Sync watch history from Google
sync_history and get_watch_stats have empty input schemas ({}). No parameters documented means LLMs cannot understand what these tools accept or require.
All tool descriptions are 10-50 characters, well below the 50-200 char baseline for LLM-optimized descriptions. Descriptions lack WHAT/WHEN/WHY context. E.g., 'Sync watch history from Google' does not explain when to call it, what it returns, or prerequisites (OAuth setup, production mode requirement).
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., search_history returns results but the response structure (fields, types, pagination) is invisible to the agent.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | <=2025-11-25 | v2 |
No error handling or recovery guidance. Tools will throw raw exceptions (e.g., OAuth failures, database errors) with no actionable next steps for the LLM. Missing pattern:recovery-guide.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). sync_history and import_takeout are marked WRITE risk but lack destructiveHint annotation. LLMs cannot infer retry safety or side effects.