video-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TESSERACT_BIN | No | Override tesseract binary path | |
| WHISPER_MODEL | No | Local Whisper model | |
| YTDLP_COOKIES | No | Cookies file or string for restricted URLs via yt-dlp | |
| OPENAI_API_KEY | No | Cloud Whisper fallback API key | |
| WHISPER_LANGUAGE | No | Local Whisper language | |
| VIDEO_MCP_WORK_DIR | No | Cache/download directory | |
| VIDEO_MCP_DISABLE_OCR | No | Set to '1' to skip tesseract OCR | |
| VIDEO_MCP_WRITE_SIDECARS | No | Set to '1' to write <video>.videomcp.json next to local files | |
| VIDEO_MCP_MAX_INLINE_IMAGES | No | Max inline thumbs (default 6) | 6 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| video_check_depsA | Verify ffmpeg, ffprobe, yt-dlp, and Whisper backends are available. Call first when setup fails. Returns dependency name, availability, path, version, and install hints. |
| video_infoA | Fast metadata probe (duration, resolution, codecs, audio presence) without transcription or frames. Use before expensive analysis to plan detail level / time ranges. |
| video_transcribeA | Timestamped transcript from captions (preferred) or local/cloud Whisper. Order: sidecar .vtt/.srt → yt-dlp captions → whisper.cpp → whisper CLI → OpenAI Whisper API. Fast for YouTube (native captions). Local files need Whisper or a sidecar caption file. |
| video_get_frameA | Extract a single JPEG frame at a timestamp (seconds). Returns file path and an inline image for vision-capable clients. Use after reading a transcript to inspect a specific moment. |
| video_get_frame_burstB | Extract N frames across a short time window for motion, UI transitions, or animations. Prefer narrow windows (e.g. 0.5–3s) with 4–16 frames. |
| video_extract_framesA | Extract representative JPEG frames via scene-change detection and/or interval sampling. Modes: scene (visual cuts), interval (uniform), both (default fallback). Returns paths always; inline images for vision clients (capped). |
| video_analyzeA | Most powerful one-shot tool: resolve source → probe → transcript + keyframes (parallel) → OCR on-screen text → merged timeline + agent summary. Prefer this when the user asks to "watch", "summarize", or "understand" a video. Use detail=brief for long lectures when only speech matters; detailed for short UI demos. Returns: at-a-glance summary, metadata, transcript, OCR text, frame paths (+ evenly spaced inline thumbs), timeline, warnings. |
| video_ocrA | Extract on-screen text with tesseract. Pass a video source to sample keyframes + OCR, or an image path for a single frame/screenshot. Requires tesseract on PATH (brew install tesseract). |
| video_search_transcriptA | Transcribe (or reuse captions) then return segments matching a query string (case-insensitive). Useful for long videos: find when a topic is mentioned, then video_get_frame at that timestamp. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| watch_video | Guide for analyzing a local file or URL with video-mcp tools |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool has a clear primary role: analyze for full pipeline, transcribe for speech, ocr for text, frames for visuals, info for metadata, search for locating moments, and deps for setup. The only overlap is video_analyze, which combines several primitives, but its description explicitly directs when to use it, so agents should not be misled.
All tools share the video_ prefix and use lowercase, underscore-separated action-oriented names such as video_extract_frames and video_get_frame_burst. The main deviation is video_info, which uses a noun rather than a verb, but the pattern is otherwise consistent.
Nine tools is well-scoped for a video-processing MCP server. Each tool covers a distinct part of the video-understanding workflow, from dependency checking and metadata probing to transcription, OCR, frame extraction, and combined analysis, without unnecessary bloat.
The surface covers all major video analysis needs: metadata, transcripts, searching, frame extraction, OCR, and a one-shot summary. There are no obvious dead ends—dependencies are checked, and tools are designed to feed into each other (e.g., transcript timestamps to video_get_frame).