filmcraft-edit
Provides optional fallback media conversion and execution tools ([ffmpeg](/mcp/servers/integrations/ffmpeg)_convert and ffmpeg_run) for operations FilmCraft cannot handle, using a configured FFmpeg binary.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
filmcraft-mcp
An MCP server that lets Claude edit video through FilmCraft, the open-source Rust editor modelled on Premiere Pro. Claude can create projects, import media, cut, trim, add transitions, titles and markers, and render an mp4. The result is a normal .fcproj file that opens in the FilmCraft desktop app.
How it drives FilmCraft (and why)
FilmCraft ships filmcraft-cli, a headless engine that runs the same 650+ commands as the GUI (exec, run, inspect, export, render, probe). This server uses that CLI (route a: an existing headless mode):
Project file = source of truth. Each tool call runs
filmcraft-cli --project p.fcproj --save exec <command> <json>. The edit lands in the.fcprojfile at once, so you can open, inspect or hand off the project at any point. The CLI holds an OS lock while it saves, so concurrent calls don't lose edits.Export is native. FilmCraft has its own H.264 / AAC encoder, plus ProRes, DNxHR, GIF, PNG and WAV. ffmpeg is not needed to render.
Why not FilmCraft's own MCP server?
filmcraft-cli mcpexists and exposes generic tools (command_run,sequence_inspect, …). It holds the project in memory, though, and you have to save explicitly. You also have to know command ids and the tick time base (254,016,000,000 ticks per second). This server adds editor-level tools that take times in seconds and save on every call. The generic route is still available throughrun_command/run_batch.
Routes considered:
(b) writing
.fcprojJSON directly works (schema v17, documented in FilmCraft'sdocs/project-files.md), but it is brittle compared with the engine's own commands.(c) patching FilmCraft wasn't needed.
Related MCP server: premiere-pro-mcp
Setup
Works on macOS, Windows and Linux. You need:
Node 18+
Claude Code
the FilmCraft CLI (
filmcraft-cli)optionally, the FilmCraft desktop app, to open and watch the projects Claude edits
No Rust, Homebrew or ffmpeg is needed.
1. Get the FilmCraft CLI
Downloads are on the FilmCraft releases page. These steps were tested with v0.17.1.
OS | Where the CLI comes from |
macOS | The separate |
Windows | Installed with the app (MSI): |
Linux | Installed with the |
On macOS, for example:
mkdir -p ~/filmcraft-cli && cd ~/filmcraft-cli && curl -LO https://github.com/storytold/filmcraft/releases/download/v0.17.1/filmcraft-cli-0.17.1-macos-universal.zip && unzip -j filmcraft-cli-0.17.1-macos-universal.zip~/filmcraft-cli/filmcraft-cli --versionThe server looks for the CLI at $FILMCRAFT_CLI, then bin/filmcraft-cli inside this package, then filmcraft-cli on PATH.
2. Register the server with Claude Code
Option A: straight from GitHub (recommended, no clone). npx downloads and builds the server. The first start on a machine takes about 30 s; later starts are instant.
claude mcp add --scope user filmcraft-edit -e FILMCRAFT_CLI=$HOME/filmcraft-cli/filmcraft-cli -- npx -y github:kanishk-gangwar/filmcraft-mcpOn Windows, set FILMCRAFT_CLI to the full path of filmcraft-cli.exe.
Option B: from a clone (to change the code, or to run the demo):
git clone https://github.com/kanishk-gangwar/filmcraft-mcp.git && cd filmcraft-mcp && npm installnpm install also builds dist/. Then run:
claude mcp add --scope user filmcraft-edit -e FILMCRAFT_CLI=$HOME/filmcraft-cli/filmcraft-cli -- node $PWD/dist/index.jsEither command writes an entry like this to ~/.claude.json:
"filmcraft-edit": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:kanishk-gangwar/filmcraft-mcp"],
"env": { "FILMCRAFT_CLI": "/Users/<you>/filmcraft-cli/filmcraft-cli" }
}To share the server with everyone working in one project, put the same block under mcpServers in that project's .mcp.json. Optional: set FFMPEG_PATH (or install ffmpeg) for the ffmpeg_* tools.
3. Check it works
claude mcp listYou should see filmcraft-edit: … ✔ Connected. Then ask Claude something like "Create a FilmCraft project at ~/Movies/test.fcproj, import ~/Movies/clip.mp4, keep 0–5 s and 10–15 s with a dissolve between them, and render ~/Movies/cut.mp4."
4. See the edit in FilmCraft (optional)
Install the desktop app from the same releases page:
OS | Package |
macOS |
|
Windows |
|
Linux | AppImage, Flatpak, |
Open the .fcproj Claude wrote (on macOS: open -a FilmCraft path/to/project.fcproj). If the project is already open while Claude edits it, use File ▸ Revert to load the changes. Don't save from the app while Claude is still editing, or you will overwrite Claude's changes.
Tools
Times are in seconds. Clip ids come from list_timeline and item ids from import_media / inspect_project. Every editing tool saves the project.
Tool | What it does |
| New |
| Import video, audio, stills, image sequences, or EDL / FCP7 XML / FCPXML / OTIO / AAF timelines |
| Bins and items with ids, types, durations |
| Codec, size, rate, streams of a file as FilmCraft decodes it |
| Place an item: |
| Move a clip's in or out edge by |
| Razor at a time (all tracks, one track, or one clip) |
| Lift or ripple-delete clips |
| Move a clip (with linked audio) in time or to another track |
| Speed in percent, reverse |
| Video or audio transition at a clip edge (Cross Dissolve, Dip to Black, …) |
| Title (graphic clip) with size, position, alignment, colour, font, track |
| Sequence marker with name, comment, colour, duration |
| Compact timeline: tracks, clips, transitions, markers ( |
| Export to mp4 / mov / gif / png / wav… (preset, format, range, scale, quality) and wait |
| One Program frame as PNG, to check the edit visually |
| FCP7 XML / FCPXML / OTIO / EDL / AAF / OMF for Premiere, Resolve and others |
| Search FilmCraft's engine commands |
| Run any engine command (effects, Lumetri, keyframes, audio mix, captions…) |
| Several engine commands in one process, saved once |
| Fallback for what FilmCraft can't do (needs ffmpeg) |
Demo (verified)
export FILMCRAFT_CLI=$HOME/filmcraft-cli/filmcraft-cli # wherever step 1 put it
python3 scripts/make_sample.py samples # 6 s numbered colour frames + beeps (Pillow)
# build samples/sample.mp4 with FilmCraft itself (no ffmpeg):
B=$FILMCRAFT_CLI; S=$PWD/samples # run from a clone (Option B)
printf '%s\n' '{"id":"file.newProject","params":{"name":"Master"}}' '{"id":"file.newSequence","params":{"name":"Master","width":640,"height":360,"fps":30}}' | $B --save-as $S/master.fcproj run -
$B --project $S/master.fcproj --save exec file.import "{\"paths\":[\"$S/frames/f000.png\"],\"imageSequence\":true}"
$B --project $S/master.fcproj --save exec file.import "{\"paths\":[\"$S/tone.wav\"]}"
$B --project $S/master.fcproj --save exec timeline.place item=8 track=V1 time=0
$B --project $S/master.fcproj --save exec timeline.place item=9 track=A1 time=0
$B --project $S/master.fcproj export $S/sample.mp4 --range entire
node scripts/demo.mjs samples # the edit, through the MCP serverscripts/demo.mjs connects to the server as an MCP client and runs these steps:
Creates
demo.fcproj(640×360, 30 fps) and importssample.mp4.Places source 0–3 s and 4–6 s back to back, cutting out second 4.
Ripple-trims the first clip's out edge by 0.5 s.
Adds a 10-frame Cross Dissolve at the cut.
Adds a centred title on V2 for 0–2 s and a green marker at the cut.
Renders
demo.mp4(4.5 s, H.264 High + AAC, 135 frames, about 0.3 s to encode), a PNG frame, anddemo.xml(FCP7 XML).
Open samples/demo.fcproj in the FilmCraft app (0.17.1) to see the edit.
What FilmCraft can't do headlessly (or at all, as of 0.17.1)
GUI-only interaction: the mouse and keyboard tools (
ui_click,ui_screenshot, …) need the desktop app running with--control PORTand FilmCraft's own MCP in--bridgemode. This server doesn't use them.Live sync with an open app: the CLI edits the file on disk. A project already open in FilmCraft doesn't reload by itself: reopen it or use File ▸ Revert. If you save from the app, you overwrite CLI edits made since it opened the file.
.prproj: Premiere projects can't be opened. Bring them in as FCP7 XML, AAF or OTIO (import_media).Delivery codecs: software export is H.264 only. HEVC needs a hardware encoder (VideoToolbox on macOS, 8-bit SDR). There is no AV1 / VP9 / WebM export, so use
ffmpeg_convert.Inputs: no DivX / Xvid, DV, camera RAW or E-AC-3. Transcode them first with
ffmpeg_convert.Graphics in interchange: titles don't survive FCP7 XML export (FilmCraft reports this). OTIO keeps them under
metadata.filmcraft.Speech-to-text (
Transcribe) needs a CLI built with thewhisperfeature. The release CLI doesn't have it.
Notes
import_mediawithimageSequence: trueapplies to every path in that call, so import audio separately.An image sequence imports at the app's default still rate (29.97 fps) unless you reinterpret it (
clip.interpretFootage).Errors come back as MCP
isErrorresults carrying FilmCraft's own message, for exampletimeline.place failed: … no such item.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI video editor: create projects, edit timelines, add captions and effects, and render videos.
AI video editor your agent can drive: plan scenes, edit a multi-track timeline, and render MP4s.
The agentic video editor for ChatGPT and Claude. Ask in your chat and it cuts, captions, adds music, titles and motion graphics on a real timeline you can open and adjust.
Edit your own videos by chatting in Claude or ChatGPT: cut, caption, add music and export.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables Claude to control a full-stack video editor by issuing commands to add clips, text, animations, and render MP4 videos, with changes reflected in real-time in the browser UI.-
- AlicenseAqualityCmaintenanceMakes Claude a real operator for Adobe Premiere Pro 2025, providing 59 tools to control projects, timelines, media, exports, and even create cinematic intros with beat detection and style presets.59371 npmMIT
- FlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to read, edit, and generate real Final Cut Pro timelines from exported FCPXML, covering trimming, splitting, silence removal, markers, transcript-based editing, keyframes and speed ramps, cross-NLE export, and pushing edits into a running Final Cut Pro. Every write is journaled with its sha256 and reversible, and timelines can be rendered visually for review before delivery.-
- FlicenseNot gradedqualityAmaintenanceEnables Claude to read, edit, and generate real Final Cut Pro timelines from exported project XML, handling cut detection, markers, roles, silence removal, rough cuts, keyframes, speed ramps, and transcript-based editing. Every write is sha256-journaled and reversible, with quote-then-confirm generation and optional pushes straight into a running Final Cut Pro.-