video-brief-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FFMPEG_PATH | No | Path to the ffmpeg binary (defaults to ffmpeg on PATH) | |
| FFPROBE_PATH | No | Path to the ffprobe binary (defaults to ffprobe on PATH) | |
| VIDEO_BRIEF_MODEL | No | Whisper model to use (default `small`) | small |
| VIDEO_BRIEF_PYTHON | No | Path to the Python interpreter used to run the Whisper runner | |
| VIDEO_BRIEF_LANGUAGE | No | Transcription language (default `en`, or `auto`) | en |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| brief_probeA | Duration, resolution, fps, audio track, size, and whether a transcript is already cached. Start here. |
| brief_transcribeA | Starts Whisper on the file, or reports progress if it is already running. Waits up to waitSeconds (default 45) and returns the full timestamped transcript if it finished, otherwise progress — call again to check. Results are cached, so repeat calls are instant. |
| brief_transcriptB | Reads the cached transcript, optionally a time range, or searches it for a phrase (returns hits with one segment of context each side). |
| brief_framesA | Frames at explicit times (at), or one every N seconds between from and to. At most 16 per call; page with from/to for more. |
| brief_scenesA | Finds moments the screen changes substantially (page switch, modal, new view) — better anchors than fixed intervals. Returns the times, and with withFrames the frames too (capped). Decodes the whole range once, so allow ~1 minute per 10 minutes of video. |
| brief_sliceA | The core reading tool: transcript of [from, to] interleaved with frames every frameEvery seconds (default: ~4 frames across the range). Use it item by item when turning a review into tasks. |
| brief_exportA | Writes transcript.txt (timestamped), frames/frame_NNN.jpg every N seconds and a README.md skeleton into outDir — the folder you keep next to the task (the video itself stays out of git). |
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 7 tools
Each tool has a distinct role, but frames can be produced three ways (brief_frames, brief_scenes with withFrames, brief_slice), and brief_transcribe vs brief_transcript could initially be confused (start/monitor vs read cached). The descriptions do a good job of delineating these, noting defaults, caps, and when to use which.
All tools share a consistent brief_ prefix in snake_case, so the set reads as a coherent family. The suffix style is mixed (verbs like probe/transcribe/slice/export vs nouns like transcript/frames/scenes), which is a minor deviation but still predictable.
Seven tools is well within a comfortable range, and each covers a discrete step of the video-briefing workflow (inspect, transcribe, read, sample, detect, interleave, export). No tool looks redundant or tacked on.
The surface covers the full lifecycle from probing a file through transcription, evidence gathering, and exporting artifacts to a folder. Minor gaps remain: no cache cleanup/management, no options for transcription model or language, and no explicit error/recovery path for corrupt files.