Model-agnostic MCP server that turns videos into an interactive, queryable knowledge structure — transcript, keyframes, OCR, and search that any MCP client can scrub lazily
video-context-mcp has 11 tools with clear verb-noun naming (ingest_video, get_transcript, search_videos, etc.). All tools have descriptions (avg ~80 chars, within baseline 34-392). Input schemas are present and typed with Zod validation. However, parameter descriptions are sparse or missing in several tools (e.g., crop_region lacks description for x/y/width/height semantics), and output schemas are not documented in the source. Error handling is basic, no recovery guidance or actionable error messages visible. Tool composition is sound (single responsibility), but descriptions could be more LLM-optimized per pattern:tool-description (10-1024 chars, currently many are ~50-80 chars, which is on the short side for complex tools like ingest_video).
Extract a cropped region from a keyframe with optional OCR
Delete a video and its associated data from the cache
Get the current ingestion status and progress of a video
Get the transcript of a video, optionally filtered by time range
Get the timeline structure of a video including chapters and keyframes
Ingest a video from YouTube or local path and extract transcript, keyframes, OCR, and embeddings
List all ingested videos with their metadata and capabilities
crop_region parameter descriptions missing or vague. Parameters x, y, width, height lack semantic clarity (normalized 0-1 range is stated but not explained in context of image coordinates or use cases).
Output schemas not documented in source code. Tools return structured data but LLMs cannot see expected response fields, forcing them to infer structure and risking parsing errors.
Error handling lacks recovery guidance. No visible error messages that tell LLMs what to do next (e.g., 'Video not found. Try list_videos() to see available videos.').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Get a keyframe image and OCR text at a specific timestamp
Inspect and manage cache usage, with optional dry-run eviction simulation
Repair or regenerate semantic embeddings for videos
Search videos using semantic search or full-text search across transcripts and OCR
Destructive operations (delete_video, prune_cache) lack confirmation or dry-run support. Agents can permanently delete videos without a safety gate.
Tool descriptions are brief (50-70 chars avg) and lack context on when to use each tool vs. alternatives. E.g., peek_frame vs. crop_region distinction unclear; search_videos vs. get_transcript use cases not explained.