mcp-video-frames
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FFMPEG_PATH | No | Path to the ffmpeg executable. Checked before PATH. If not set, auto-detected beside the interpreter. | |
| FFPROBE_PATH | No | Path to the ffprobe executable. Checked before PATH. If not set, auto-detected beside the interpreter. | |
| MCP_VIDEO_CACHE_DIR | No | Cache root directory. Defaults to .cache/ in the project when using setup_mcp.py, or <system temp>/mcp-video-frames-cache otherwise. | |
| MCP_VIDEO_MAX_IMAGES | No | Maximum images per call. Set it to match your client's image limit. | 20 |
| MCP_VIDEO_MAX_IMAGE_DIM | No | Per-frame edge limit in pixels. | 8192 |
| MCP_VIDEO_CACHE_MAX_BYTES | No | Cache size limit. | 5368709120 |
| MCP_VIDEO_MAX_IMAGE_BYTES | No | Per-frame byte limit. | 10485760 |
| MCP_VIDEO_MAX_TOTAL_BYTES | No | Per-result total byte limit. | 41943040 |
| MCP_VIDEO_SCENE_THRESHOLD | No | Scene-change sensitivity. | 0.3 |
| MCP_VIDEO_FRAME_MAX_AGE_DAYS | No | Frame age limit in days. | 14 |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| view_framesA | Sample a video and return frames as images, each preceded by its timecode — the only thing tying an image to a moment. Set start == end to look at a single moment (returns a lossless PNG); the interval is ignored in that case. Range requests default to jpeg, which is about an order of magnitude smaller and fits far more frames in the same budget. Frames are cached by absolute timestamp, so overlapping ranges reuse work. max_frames defaults to 12; raising it up to the image limit trades away detail — lower max_edge or use format="jpeg" to afford more frames. All of these limits are set by whoever deployed this server, not by you. Server limits for this deployment: at most 20 images per call, each at most 10 MB, 40 MB per result. Frames are never silently dropped or resampled, so the interval you ask for is the interval you get. Requests past a limit fail with the numbers and concrete alternatives — the server never truncates a range or coarsens your interval. |
| video_infoA | Metadata for a video. detail="basic" reads container headers only and returns immediately. detail="full" additionally scans the whole file for scene cuts, silence intervals and EBU R128 loudness; that scan is exhaustive and therefore slow on long files, but it is cached and reused. Use force=true to recompute. This tool returns no images, so the image limits do not apply to it, but your client's per-call time limit does: a full scan of a long video takes time proportional to its length, and may exceed the limit. Raise that limit if your client allows it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one extracts frames from videos, the other retrieves metadata. No overlap in functionality; each addresses a separate need.
Both names follow a verb_noun pattern: 'view_frames' and 'video_info'. The verbs differ ('view' vs 'video') but the structure is consistent. Minor deviation in verb choice, but pattern is clear.
With only 2 tools, the set is minimal but each tool is substantial and well-scoped, covering the core functions of frame extraction and metadata retrieval. Slightly thin for a full video analysis workflow, but reasonable for a focused server.
The set covers the primary operations (extract frames, get info) but lacks additional common video operations such as transcoding, clipping, or audio extraction. The domain is video analysis, and while the two tools address key needs, there are notable gaps that agents might encounter.