MCP server that gives AI coding agents eyes — turns videos into structured timeline events.
Two tools with strong, detailed descriptions (194 - 250 chars each) and comprehensive parameter documentation. Both tools have complete input schemas with types and descriptions. Tool naming is clear and verb-based (watch, get_frames). However, output schemas are documented only in docstrings, not as formal JSON Schema. Error handling guidance is present but could be more structured (e.g., explicit recovery steps for common failures). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite both being read-only operations.
Pull actual frame images from a video you already watched — see for yourself. Use when you doubt the timeline's description of a moment, or the user pointed you at an exact span. Returns the real pixels so you can read UI text, console errors, or code directly.
Watch a video and return a structured timeline of semantic events. Gives you "eyes": analyzes a screen recording (bug repro, feature demo, tutorial, UI walkthrough) and returns meaningful events (navigation, interaction, error, ui_change, ...) with timestamps — not a frame-by-frame dump. Returns a `video_id` you can pass to `get_frames` to inspect exact frames yourself.
Output schemas documented only in docstrings, not as formal JSON Schema. LLMs cannot parse docstring descriptions of return types; they need structured schema definitions.
Tool annotations missing. Both tools are read-only (Risk: READ_ONLY noted in metadata), but readOnlyHint is not declared in the tool definition. This prevents clients from optimizing caching and retry logic.
Error handling lacks structured recovery guidance. TimeoutError in watch() includes a helpful message, but other failure modes (invalid video_path, unsupported URL, network errors) are not documented with recovery steps.
get_frames returns a mixed list (strings + Image objects) without a formal schema. The return type annotation is 'list' with no structure. LLMs cannot reliably parse this heterogeneous output.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Mode parameter accepts free-form strings with runtime validation. Should be declared as an enum (sample|manual|full) in the schema to prevent hallucinated values.