free-video-edit-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FREE_VIDEO_EDIT_ROOT | No | Media workspace path used for path guard defaults. | ~/video-projects |
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 |
|---|---|
| get_versionA | Return ffmpeg/ffprobe versions and this MCP server version. |
| probe_mediaC | Probe a media file with ffprobe. Returns streams, duration, resolution, codecs, and raw JSON. |
| search_ffmpeg_docsB | Search installed FFmpeg filters/encoders/decoders help listings for a query string. |
| get_ffmpeg_docsC | Get detailed help for a filter, encoder, decoder, muxer, or demuxer by name (matches live build). |
| get_whats_newA | Brief notes for this server version plus a summary of notable FFmpeg build flags. |
| run_ffmpegA | Run ffmpeg with an argv argument list (NOT a shell string). Prefer structured edit tools when possible. Safety: output paths outside the media workspace are blocked unless allow_any_path=true. Uses -y only when overwrite=true; otherwise -n. Never uses shell=True. |
| trim_clipC | Trim a clip to start/end or start+duration and write output_path. |
| concat_clipsA | Concatenate clips. method='demuxer' (same codec, stream copy) or 'filter' (re-encode, more robust). |
| compose_timelineB | Render a JSON timeline (clips with path, start/in, end/out, track) to one output file. Timeline schema: {name, clips:[{path,start,end,track,label}], width, height, fps, markers}. Track 0 clips are concatenated in order. Optional save_as persists the timeline JSON. |
| add_markerC | Add a marker to a sidecar JSON next to a media or timeline file (FFmpeg has no built-in markers). |
| list_markersA | List markers from the sidecar JSON associated with a media or timeline file. |
| generate_lutA | Generate a .cube 3D LUT from simple creative params (exposure stops, contrast, saturation, temperature). This is a free approximation for grading workflows — not DaVinci Resolve color management. |
| apply_lutB | Apply a .cube LUT to a clip using ffmpeg lut3d. |
| set_render_jobC | Define an export/render job with a preset: h264_mp4, prores, or webm. |
| run_renderA | Run a previously defined render job and return exit code + output probe summary. |
| verify_editA | Compare an output file against an expected edit plan (duration, resolution). Returns pass/fail + diffs. This is the deterministic verification bridge: agents can assert plan vs probe results. expected_clip_count is recorded for plan bookkeeping (single rendered file cannot recover clip count). |
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 16 tools
Most tools target distinct actions (trim, concat, LUT, markers, rendering). compose_timeline has some overlap with concat_clips and trim_clip, but the JSON-based workflow described makes the intended use clear enough to avoid frequent misselection.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., compose_timeline, generate_lut, set_render_job). There are no mixed conventions or vague verbs, making the naming highly predictable.
16 tools is just above the ideal 3–15 range, but each tool serves a clear purpose in the video-editing workflow. The count is slightly heavy but still well-scoped and not excessive.
The structured tools cover trimming, concatenation, timeline rendering, LUTs, markers, and verification. Advanced operations like audio processing or filters are missing, but the run_ffmpeg fallback allows agents to work around these gaps.