MCP server that turns any video URL into a transcript and a small set of important, deduplicated keyframes — locally, with no cloud APIs. Supports YouTube, TikTok, Facebook, WeChat Channels, direct MP4/HLS and generic sites.
Two tools with well-structured schemas and detailed descriptions. resolve_video and analyze_video both have comprehensive parameter documentation and clear intent. However, descriptions lack LLM-optimized brevity (both exceed 200 chars), and output schemas are not explicitly documented in the visible code. Parameter descriptions are strong but could be more concise. No tool annotations (readOnlyHint/destructiveHint) present despite both tools having side effects (WRITE risk).
Analyzes a video (local file or URL) to extract transcript and keyframes. Performs speech recognition, scene detection, frame selection, and transcript alignment.
Resolves a video URL to extract metadata and optionally download the video file. Supports YouTube, TikTok, Facebook, WeChat Channels, direct MP4/HLS and generic sites via yt-dlp.
Tool descriptions exceed 200 characters and lack LLM-optimized brevity. resolve_video (165 chars) and analyze_video (180 chars) are verbose; optimal range is 50-150 chars for clarity.
No output schemas documented. Code shows AnalyzeItemResult interface but no explicit return type documentation visible in tool registration. LLMs cannot plan downstream calls without knowing response structure.
Missing tool annotations despite destructive operations. Both tools modify state (download files, write transcripts) but lack destructiveHint or idempotentHint annotations required by current MCP spec.
Parameter 'frames' enum values ('key', 'even', 'none') lack descriptions explaining what each mode does. LLMs cannot reason about which to select without understanding the difference.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No error handling guidance in tool descriptions. No mention of what happens on invalid URLs, network failures, or unsupported video formats. LLMs cannot recover from failures without explicit recovery hints.