π¬ The first AI-powered MCP server for Final Cut Pro XML. Control your edits with natural language.
Config is the same across clients β only the file and path differ.
{
"mcpServers": {
"fcpxml": {
"env": {
"FCP_PROJECTS_DIR": "/Users/you/Movies"
},
"args": [
"--directory",
"/path/to/fcp-mcp-server",
"run",
"server.py"
],
"command": "uv"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
The bridge between Final Cut Pro and AI. 53 tools that turn timeline XML into structured data Claude can read, edit, and generate.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories β click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience β it helps other developers decide.
Sign in to write a review.
Others in entertainment / design
MCP server for accessing Figma plugin console logs and screenshots via Cloudflare Workers or local mode
Official Miro MCP server - Supports context to code and creating diagrams, docs, and data tables.
A mcp server to allow LLMS gain context about shadcn ui component structure,usage and installation,compaitable with react,svelte 5,vue & React Native
The official MCP Server for the Mux API
MCP Security Weekly
Get CVE alerts and security updates for Fcpxml Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
The bridge between Final Cut Pro and AI. 53 tools that turn timeline XML into structured data Claude can read, edit, and generate.
After directing 350+ music videos (Chief Keef, Migos, Masicka), I noticed the same editing bottlenecks on every project: counting cuts manually, extracting chapter markers one by one, hunting flash frames by scrubbing, building rough cuts clip by clip.
These are batch operations that don't need visual feedback. Export the XML, let Claude handle the tedium, import the result. That's the entire philosophy.
You: "Run a health check on my wedding edit"
Claude: β Analyzed WeddingFinal.fcpxml
ββ 247 clips Β· 42:18 total Β· 24fps Β· 1920Γ1080
ββ 3 flash frames detected (clips 44, 112, 198)
ββ 2 unintentional gaps at 12:04 and 31:47
ββ 14 duplicate source clips
ββ Health score: 72/100
You: "Fix the flash frames and gaps, then add chapter markers from
this transcript"
Claude: β Extended adjacent clips to cover 3 flash frames
β Filled 2 gaps by extending previous clips
β Added 18 chapter markers from transcript
β Saved: WeddingFinal_modified.fcpxml
Import the modified XML back into Final Cut Pro. Every change is non-destructive β your original file is never touched.
This is the magic trick. When you export XML from Final Cut Pro, your timeline becomes structured data that Claude can reason about:
<!-- What FCP exports -->
<asset-clip ref="r2" offset="342/24s" name="Interview_A"
start="120s" duration="720/24s" format="r1">
<marker start="48/24s" duration="1/24s" value="Key quote"/>
<keyword start="0s" duration="720/24s" value="Interview"/>
</asset-clip>
# What Claude works with (after parsing)
Clip(
name="Interview_A",
offset=TimeValue(342, 24), # timeline position: 14.25s
start=TimeValue(120, 1), # source in-point: 2:00
duration=TimeValue(720, 24), # 30 seconds
markers=[Marker(value="Key quote", start=TimeValue(48, 24))],
keywords=["Interview"]
)
Every time value stays as a rational fraction β 720/24s, not 30.0 β so trim, split, and speed operations have zero rounding error across any frame rate. Comparisons use cross-multiplication (a/b < c/d β a*d < c*b) to stay in integer-land end to end. Denominators are always normalized to positive values at construction, so sign lives on the numerator and cross-multiplication is always correct. Addition and subtraction share a single _binop() code path that handles same-denominator fast paths and LCM alignment in one place.
ββββββββββββ ββββββββββββββββββββββββββββββββ ββββββββββββ
β Final Cutβ β parser.py β Python objects β β Final Cutβ
β Pro ββXMLβ>β writer.py β Modify & save ββXMLβ>β Pro β
β β β rough_cut.pyβ Generate new β β β
ββββββββββββ β diff.py β Compare β ββββββββββββ
β export.py β Resolve / FCP7 β
... [View full README on GitHub](https://github.com/DareDev256/fcpxml-mcp-server#readme)