MCP server that lets Claude Desktop watch and analyze videos from YouTube, Instagram, Facebook, or direct video URLs. Exposes tools to download, transcribe, extract frames, and answer questions about videos.
Three tools with basic descriptions but significant schema and parameter documentation gaps. All tools accept only a URL parameter (watch_video, summarize_video) or URL + question (answer_about_video). Descriptions are present but generic (avg ~120 chars, below the 194-char baseline). No input parameter descriptions visible in schema, parameters lack type info beyond 'string'. No output schemas documented. Error handling exists in code (VideoProcessingError) but not surfaced in tool definitions. Tools are READ_ONLY, which is good, but lack annotations to declare this. No pagination, no structured output guidance.
Answer a specific question about a video by analyzing its transcript and frames.
Summarize a video by sending its transcript and key frames to Claude for analysis.
Download a video from YouTube, Instagram, Facebook, or a direct URL, extract key frames and transcript, and return structured metadata for Claude to analyze.
Input parameter descriptions missing. 'url' parameter in all three tools has no description explaining what formats are accepted, constraints, or examples. Parameter descriptions are required for LLM disambiguation.
No output schema documented. Tools return structured VideoData (title, duration, creator, transcript, frames_b64) but this structure is not declared in tool definitions. LLMs cannot plan downstream calls or extract fields without knowing the response shape.
No tool annotations. All three tools are READ_ONLY (no side effects), but readOnlyHint is not declared in tool definitions. This forces LLMs to infer safety from descriptions alone.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Error handling not surfaced in tool definitions. Code raises VideoProcessingError with actionable messages (private video, rate limit, login required) but tool definitions do not document these error cases or recovery paths. LLMs cannot plan fallbacks.
Tool descriptions lack context on when to use each. 'summarize_video' vs 'answer_about_video' distinction is unclear, both analyze transcripts and frames. Descriptions should explain: summarize_video returns a high-level overview; answer_about_video targets a specific question.