CutSmith
Integrates with Final Cut Pro via FCPXML and AppleScript, enabling timeline analysis, rough-cut assembly, glitch detection/fixing, FCP XML import/export, and DTD validation against Apple's FCPXML schema.
Uses ffmpeg audio analysis for silence detection and loudness measurement, supporting silence removal, loudness normalization, and gain correction when assembling Final Cut Pro timelines.
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.
CutSmith
Workflow-level MCP server for Final Cut Pro. Lets any MCP-capable LLM (Claude, Hermes, Cursor, …) assemble rough cuts, clean up edit artifacts, distribute captions, and QC timelines — on stock Final Cut Pro, no patched builds or kernel injection.
The idea is not "another wrapper around FCP menus" (see Prior art). The primitive tools already exist; CutSmith sits a level above: it does the workflows that turn raw recordings into a finished timeline, built directly on Apple's FCPXML interchange format and ffmpeg audio analysis.
Phase 1 focuses on the four pain points podcast/video editors complain about most: per-source sync drift, invisible loudness decisions, glitch frames left by silence removal, and captioning. Each maps to a tool below.
Tools (9)
Tool | What it does |
| Parse any |
| Find micro-clip flash frames (clips shorter than N frames), unintended gaps, overlaps |
| ffmpeg |
| ffmpeg |
| The core builder: kept regions + per-source sync offsets + measured gain corrections + SRT captions → a new FCPXML project. Originals are never modified |
| SRT/VTT → FCPXML-caption preview, with N-word chunking for social-style captions |
| Probe whether Final Cut Pro is running and scriptable on this Mac |
| Open a generated |
| Ask FCP to export the front project as XML |
| Certify an |
| One call: ffprobe → silencedetect → kept regions (padded, frame-snapped) → loudness-normalized NEW project |
| Drop or absorb micro-clips in a NEW file; refuses to flatten nested structures unless forced |
| Speech-informed music ducking plan with explicit dials (duckVolume / padding / threshold); output feeds |
All tools page or cap their output, so hour-long episodes analyze without flooding model context. Every generated file in the test suite validates against Apple's official FCPXML v1.11 DTD.
Related MCP server: fcp-mcp-server
The sync-offset fix
Riverside/podcast recordings drift per guest. Instead of manually nudging clips every
session, CutSmith turns the fix into data: each asset carries a syncOffsetSecs, and
assemble_rough_cut applies it mathematically to every in-point. Set it once per guest.
Why not inject into FCP?
Bottom line: splice-in works in other tools; here it is out of scope. CutSmith only reads and writes documented, forward-compatible formats (FCPXML 1.11) plus AppleScript that Apple ships. It cannot break your libraries or get your FCP version bricked by an macOS update — a real consideration for production machines.
Install
Requirements: macOS, Node 18+, Final Cut Pro 10.6+ (only for the FCP roundtrip tools; analysis/assembly work without it), ffmpeg on PATH (audio tools).
git clone https://github.com/msfbeast/cutsmith.git
cd cutsmith
npm install && npm run build
npm test && npm run smoke # 20 unit tests + 8 end-to-end checksClaude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"cutsmith": {
"command": "node",
"args": ["/absolute/path/to/cutsmith/dist/index.js"]
}
}
}Claude Code
claude mcp add cutsmith -- node /absolute/path/to/cutsmith/dist/index.jsHermes Agent (~/.hermes/config.yaml)
mcp_servers:
cutsmith:
command: "node"
args: ["/absolute/path/to/cutsmith/dist/index.js"]Example flow
You: "Here are yesterday's Riverside files for Ep 43. Build a rough cut."
LLM: analyze_silence on each guest track
→ assemble_rough_cut with keptRegions you approve, syncOffset for the
cohost, targetLufs -16 with normalize: true
→ import_xml_into_fcp
→ detect_glitches on the import, fix, re-import
You: review the timeline in FCP, tweak, ship.Roundtrip notes
FCP's AppleScript dictionary is limited. XML export timing varies by FCP version —
export_project_xml does its best via AppleScript and falls back with instructions
(File > Export XML… → re-run analyze_timeline on the file). Import of generated XML
is reliable: File > Import XML… or import_xml_into_fcp. Read
FCPXML on Apple's docs for the format.
Prior art
SpliceKit — the deepest FCP MCP (~200 tools via ObjC runtime, requires patched FCP build)
fcp-mcp — 30 safe FCPXML/QC/roundtrip tools
CutSmith is the workflow layer: assemble-from-scratch, audio-measured gain, sync offsets, caption chunking — with tests that verify the actual written timelines.
Verifying on a FCP machine
The whole run is one command — every check that can only pass with Final Cut Pro present:
node test/acceptance.mjsexit
10+ install instructions → FCP missing/unusable (nothing else tested)PASS list + exit
0→ AppleScript roundtrip live, DTD-certified project imported into real FCP
The 90-day free FCP trial (Mac App Store) is enough; remove it after testing if you don't own it.
Manual depth-checks after a pass:
npm install && npm run build && npm test && npm run smoke— all 20 unit tests + 12 smoke checks must pass.Launch FCP once by hand first (first-run dialogs out of the way); grant macOS Automation permission when the acceptance run asks.
In FCP, confirm the imported event ("Cutsmith Acceptance"): clips land, titles render, audio present.
validate_dtdon any FCP-exported XML — must pass both ways.
Known limitations (read before trusting it with a master timeline)
Roundtripping complex timelines is lossy. The parser reads compound clips, attached audio sub-clips and effect payloads raw; the generator writes flat spines. Analyze-and-assemble-new is the safe path; in-place regeneration of an editor's intricate project will flatten structure (tools warn and refuse unless
force=true).Captions ship as Basic Text titles (universal), not native
<caption>elements; word timings in chunked captions are evenly distributed, not word-accurate.Volume ducking is stepped per region (FCPXML has no editable crossfade automation in 1.11); keep duck levels moderate.
Drop-frame timecode (29.97 DF) and >2-channel audio layouts are not yet mapped.
import_xml_into_fcp/export_project_xmlbehavior varies across FCP versions; validated import path is FCP's own File > Import XML. Apple's DTD ships inside FCP and cannot be redistributed here.
Credits
DTD verification uses Apple's FCPXML DTDs, discovered at runtime from your FCP install; the DTD forms matched against OpenFCPXMLKit's published copies during development.
License
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
AI video editor for agents and humans: timeline, captions, color, audio and generation as MCP tools.
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.
Autonomous AI video editor over MCP: viral clips, captions, reframe, chroma key, MP4 export
Compose, edit and render video with your AI agent. Turn footage into finished edits with content-aware reframing, word-timed captions and motion graphics. Hosted MCP with OAuth sign-in; cloud processing uses credits.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables Claude to read, edit, and generate real Final Cut Pro timelines through FCPXML, covering cut detection, markers, role assignment, silence removal, keyframes, speed ramps, and transcript-based editing, with journaled undo, sha256 verification, and a push straight into a running Final Cut Pro. Timelines can be rendered inline as rational-time JSON so every write is visible as it happens, and cross-NLE export is supported.-
- FlicenseNot gradedqualityAmaintenanceEnables Claude and other MCP clients to read, edit, and generate real Final Cut Pro timelines from FCPXML, including cut detection, markers, roles, silence removal, transcript-based editing, cross-NLE export, and pushing changes into a running Final Cut Pro. Every write is journaled and undoable, with validation and safety checks for reliable timeline edits.-
- FlicenseNot gradedqualityAmaintenanceEnables an MCP client like Claude to read, edit, and generate real Final Cut Pro timelines from exported FCPXML, covering cut and flash-frame detection, silence and gap removal, markers, keyframes, speed ramps, transcript-based editing, cross-NLE export, and pushing the result into a running Final Cut Pro. Every write is journaled with its sha256 so changes can be undone and unreviewed cuts refused.-
- FlicenseNot gradedqualityAmaintenanceEnables Claude and other MCP clients to read, edit, and generate real Final Cut Pro timelines from exported FCPXML: cut detection, silence and flash-frame removal, markers from transcripts and beats, role assignment, rough cuts, keyframes, speed ramps, and cross-NLE export, with every write journaled, hash-verified, and undoable. It can also push a generated timeline straight into a running Final Cut Pro via Apple's Open Document event, so edits can be reviewed and re-imported without manual XML handling.-