fcp-mcp — Claude Code MCP server: FCPXML and Final Cut Pro work
An MCP server that reads, builds and edits FCPXML, then hands verified files to Final Cut Pro. Useful when you want timeline changes driven from a chat.
claude mcp add --env FCP_MCP_OUTPUT_DIR=<FCP_MCP_OUTPUT_DIR> --transport stdio fcp-mcp-final-cut-pro-mcp-server -- uvx fcp-mcpWhat fcp-mcp — Final Cut Pro MCP Server does
In the full profile fcp-mcp exposes 97 tools across 14 categories. Under the hood sits an FCPXML parser that turns files into an object tree, a transactional XML writer, rational-arithmetic timecode handling, pacing and flash-frame analysis, a project generator, a character puppet system and an A/B timeline diff. Live Final Cut Pro control runs through a separate AppleScript bridge, and media inspection goes through an ffprobe wrapper.
Pick a profile with FCP_MCP_PROFILE. The default is workflow — 34 tools that keep edits on the inspect, prepare, review, hash-approval, commit path. inspect gives 30 read-only tools, edit gives 76 with direct offline mutation, full gives 97. Live control stays off unless you set FCP_MCP_ENABLE_LIVE_CONTROL=1; choosing full does not turn it on.
You need Python 3.10+ and macOS 15.6 or later with Final Cut Pro installed. The media_* tools require FFmpeg on $PATH and will not run without it. Apple Compressor matters only for compressor_*. Run fcp-mcp doctor to check readiness: exit 0 means ready, 1 means optional capabilities are degraded, 2 means configuration blocks required runtime behavior.
What it helps with
- find and repair flash frames in
hero.fcpxml - generate a project and timeline programmatically
- compare two timeline versions and spot the differences
- validate FCPXML structure before handing it to an editor
- produce a QC report on clips, roles and markers
Example prompts for the agent
- Find flash frames in
hero.fcpxmland prepare a fix - Show me the diff between the two timeline versions
- Generate a project from the clip plan and validate its structure
How to install fcp-mcp — Final Cut Pro MCP Server
Platform CLI
claude mcp add --env FCP_MCP_OUTPUT_DIR=<FCP_MCP_OUTPUT_DIR> --transport stdio fcp-mcp-final-cut-pro-mcp-server -- uvx fcp-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from fcp-mcp <command>
Platform CLI
codex mcp add fcp-mcp-final-cut-pro-mcp-server --env FCP_MCP_OUTPUT_DIR=<FCP_MCP_OUTPUT_DIR> -- uvx fcp-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from fcp-mcp <command>
Config file
{
"mcpServers": {
"fcp-mcp-final-cut-pro-mcp-server": {
"command": "uvx",
"args": [
"fcp-mcp"
],
"env": {
"FCP_MCP_OUTPUT_DIR": "<FCP_MCP_OUTPUT_DIR>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from fcp-mcp <command>
Config file
{
"servers": {
"fcp-mcp-final-cut-pro-mcp-server": {
"type": "stdio",
"command": "uvx",
"args": [
"fcp-mcp"
],
"env": {
"FCP_MCP_OUTPUT_DIR": "<FCP_MCP_OUTPUT_DIR>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from fcp-mcp <command>
Platform CLI
gemini mcp add -e FCP_MCP_OUTPUT_DIR=<FCP_MCP_OUTPUT_DIR> fcp-mcp-final-cut-pro-mcp-server uvx fcp-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from fcp-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about fcp-mcp — Final Cut Pro MCP Server
How do I install fcp-mcp in Claude Code?
Add the server with claude mcp add fcp-mcp -- uvx fcp-mcp, then confirm the connection with claude mcp list or /mcp inside Claude.
What does fcp-mcp do?
It parses, generates and transactionally edits FCPXML, analyses media, and can hand verified artifacts to Final Cut Pro. Direct mutation is off by default.
What does fcp-mcp need to run?
Python 3.10+ and macOS 15.6 or later with Final Cut Pro. The media_* tools need FFmpeg on $PATH, and compressor_* needs Apple Compressor.