Edit Twin MCP
Edit Twin MCP is a Final Cut Pro automation server that lets Claude inspect, edit, clean up, and review FCP timelines, then save/send a new project back to Final Cut Pro.
Control Final Cut Pro: check status/launch, list libraries/projects, export/import XML, click menus/shortcuts, move playhead, screenshot.
Open and inspect timelines: find recent FCPXML, open/select a project, read clips/connected items/markers, probe media metadata.
Edit the primary storyline: cut or keep ranges, split/delete/trim/move clips, add/remove markers, insert/connect media, add/edit titles, set volume, enable/mute clips, copy/remove effects.
Speech and audio cleanup: transcribe with word timestamps, find repeats/stutters/fillers, find and remove silences, normalize audio, measure loudness.
Personal style: get/update style settings, save/apply color looks, save/apply audio chains, fit looks/adjustment clips to the timeline, learn from a hand-finished edit.
Review and finish: undo/redo, validate timeline, preview frames, render low-res preview, save as new FCPXML, send new project to Final Cut Pro.
Scope note: edits target the primary storyline; live app controls are macOS/Final Cut Pro dependent. This schema does not expose caption-specific tools such as add_captions/export_srt.
Provides integration with Final Cut Pro on macOS: exports and imports FCPXML timelines, controls Final Cut Pro menus and shortcuts via AppleScript/System Events, performs cuts, trims, markers, titles, media insertion, colour and audio adjustments, and sends the result back as a new Final Cut Pro project.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Edit Twin MCP Rough cut my open project and show me the plan first."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
✂️ Edit Twin MCP
Your editing twin for Final Cut Pro. Edit Twin lets Claude Code rough-cut your Final Cut Pro projects for you: it cuts retakes, "um"s and dead air, adds your colour look and dialogue sound, and hands you back a new project to finish. Then it learns from how you finish it, so each rough cut gets closer to how you'd have cut it yourself.
Note: Currently tracking what best ASR model for transcripts, captioning via this dashboard
Edit Twin is an independent, free, open-source project. It is not affiliated with, endorsed by, or sponsored by Apple Inc. Final Cut Pro is a trademark of Apple Inc.
What it does
Open a project in Final Cut Pro, then in Claude Code say:
rough cut my open project
Reads your edit. It exports the project and transcribes the speech on your Mac. Your video and audio never leave your Mac; Claude sees the transcript and timeline details it needs to plan the cut (see Privacy).
Finds what to cut: retakes where you said a line twice (it keeps the better take), stutters ("to new to new tech"), um/uh fillers and pauses.
Shows you the plan and waits. Nothing changes until you say OK.
Cuts it, then adds your style: your saved colour look on an adjustment clip over the whole edit, and your dialogue sound (gain plus Final Cut's Loudness effect).
Sends it back to Final Cut Pro as a new project. Your original is never touched.
It adapts to the format. Reels and shorts get tight jump cuts and a check that the first 3 seconds work as a hook. Landscape vlogs get their own pacing (looser at first, then learned from your hand edits separately from reels), and quiet B-roll, scenery and music moments are never cut as "silence".
Related MCP server: fcp-mcp-server
Captions 💬
caption my open project
Captions are timed to every word on your edit and added as Final Cut Pro titles, in your caption styles:
Short form: one word (or a few) pops on as you say it, e.g. in a display font at the top of a vertical reel.
Long form: subtitle lines near the bottom, measured in your font so each line fits the frame and stays comfortable to read.
Set a style up once, either by styling one title by hand in Final Cut (Edit Twin copies its font, size, colour, position and any animation exactly), or by describing it ("one word at a time, Futura, lowercase, near the top, for my reels"). Any font installed on your Mac works; Edit Twin reads the real font names from the font files and remembers the fonts you use, so next time "caption it" is enough. Misheard words are fixed before anything is added, and export_srt writes an .srt for YouTube closed captions.
How it learns your style ✨
After you polish an Edit Twin rough cut by hand, say:
learn from my edit
Edit Twin compares its version with yours, frame by frame against the original footage, and tells you what you did differently:
which words or retakes you removed or put back,
how much breathing room you leave before and after words,
your audio chain (gain, Loudness, Noise Removal, EQ),
the look on your adjustment clip,
the fonts in your titles.
It then calibrates its pause detection to match your own trims and saves everything as your style. On the reel Edit Twin was developed with, the calibrated settings overlapped with the creator's own hand trims 72%, compared with 13% for the old loose settings. The rest were creative word-level choices, and those you keep making yourself.
Your style (including caption styles and fonts) lives on your Mac in ~/Movies/Edit Twin/style.json and ~/Movies/Edit Twin/looks/.
Install
You need:
a Mac with Final Cut Pro (developed on 11.2; FCPXML 1.11 or newer). Apple Silicon is recommended; Intel Macs work but transcribe more slowly,
Claude Code (needs a Claude subscription or API key),
Homebrew, which the installer uses to get ffmpeg and Python 3.10+ if they're missing,
git (macOS offers to install it the first time you run
git),about 3 GB of free disk space (Python packages plus the speech model).
Then, in Terminal:
git clone https://github.com/alyssasworld/edit-twin-mcp.git
cd edit-twin-mcp
./install.shThe installer:
installs ffmpeg and Python 3.12 with Homebrew, only if they're missing,
sets everything up in a private folder (
.venvinside the cloned folder), so it won't touch your other Python stuff,installs the Python packages there: the MCP SDK, plus the speech-to-text engines for your Mac (Apple Silicon:
parakeet-mlxandmlx-whisper; Intel:faster-whisper) and their dependencies (on Apple Silicon these include PyTorch, NumPy and SciPy, roughly 1 GB),prints which speech-to-text engine it will use and why, e.g.
Speech-to-text: parakeet (auto: Apple Silicon with Parakeet installed),registers Edit Twin with Claude Code for all your projects (
claude mcp add --scope user),copies the
/edit-twin-rough-cutskill to~/.claude/skills/edit-twin-rough-cut(re-running the installer updates it),creates the working folder
~/Movies/Edit Twin.
The first transcription downloads a free speech model from Hugging Face, once, for the engine in use: mlx-community/parakeet-tdt-0.6b-v3 on Apple Silicon, or Whisper large-v3-turbo (about 1.5 GB) where Parakeet isn't used.
Choosing the speech-to-text engine
You don't have to choose: by default (auto) Edit Twin uses Parakeet on Apple Silicon Macs for the languages it knows (English and 24 other European languages), and Whisper on Intel Macs and for any other language. On the author's footage Parakeet caught 80% of um/uh against Whisper's 35%, made fewer word errors and ran ~3.6× faster (benchmark); Whisper punctuates slightly better and knows ~99 languages.
You want | Do |
Whisper, even though Parakeet would run | ask Claude to switch ("use Whisper for transcription"); it saves |
to film in another language | ask Claude to set your language ( |
to never install Parakeet, or to fix the engine for everyone on a machine |
|
to compare them on your own video | ask Claude to |
get_style (and the server's log in /mcp) says which engine will run and why.
Names and jargon
Parakeet takes no spelling hints, so names are corrected after transcription, for both engines. Tell Claude the names you say ("Navier-Stokes, POPMART") and it saves them (update_style add_vocabulary): close misspellings ("Popma") and spacing ("Skull Panda") are corrected to them in every transcript, while real words that only look similar are left alone. Corrections that are always right can be saved as exact fixes (add_fixes, or remember_fixes when captioning). Both live in style.json under transcription.
One-time Mac permissions
Open System Settings → Privacy & Security and allow the app you run Claude Code in (Terminal, iTerm, VS Code…):
Setting | Why |
Accessibility | so Edit Twin can click Final Cut Pro's menus (Export / Import XML) |
Automation → Final Cut Pro, System Events | macOS asks the first time; click Allow |
Screen & System Audio Recording (optional) | only for the screenshot tool |
Quit and reopen that app, start claude, and type /mcp. You should see edit-twin connected.
If your footage is on an external drive, keep it plugged in while editing. macOS may also ask to let Terminal access removable volumes; click Allow.
Things to ask
"Rough cut my open project. Show me the cuts first."
"Find my retakes and tell me which take is better."
"Remove the pauses but keep it a bit looser, it's a vlog."
"Save the look on my adjustment clip as
warm_vlogand use it by default.""Put coffee.mov over 0:42 for 3 seconds and add music.m4a under everything at −18 dB."
"Add chapter markers at each topic change."
"Caption this reel one word at a time in Futura, lowercase, near the top. Make that my reel style."
"Save the title at 0:03 as my vlog subtitle style."
"Caption it" (uses your saved style for the format) · "Export an SRT for YouTube."
"How loud is this edit?"
"Learn from my edit."
How it works (for the curious)
Final Cut Pro doesn't let other apps edit a timeline directly, so Edit Twin uses Apple's official interchange format, FCPXML:
Final Cut Pro ──Export XML──▶ Edit Twin edits the timeline ──Import XML──▶ new project in Final Cut ProFrame-accurate. All maths uses exact rational time, the same way FCPXML stores it, so cuts never drift.
Non-destructive. Effects, keyframes, colour, roles and metadata Edit Twin doesn't touch are carried through as they are. Connected clips (B-roll, titles, music) survive cuts underneath them.
Checked. Every result is validated against Apple's FCPXML DTD (from inside Final Cut Pro) before import, and every edit can be undone.
Local speech-to-text with Parakeet (
parakeet-mlx, Apple Silicon) or Whisper (mlx-whisper/faster-whisper, prompted to transcribe verbatim), keeping the fillers and repeats you want to cut, with your saved names corrected afterwards.Style learning compares the kept source ranges of the two versions, uses the audio to tell pauses from words, and grid-searches pause settings to match your trims.
Live control of the app (menus, shortcuts, playhead) uses AppleScript / System Events.
Area | Tools |
Final Cut Pro app |
|
Open & read |
|
Speech & sound |
|
Your style |
|
Captions |
|
Edit |
|
Check & finish |
|
Limits (honest list)
Beta. So far it's been used on one creator's Mac (Final Cut Pro 11.2, Apple Silicon) with single-camera talking-head footage. I will refine this as I go, so please report what breaks!
Mac only, and the live app controls need the permissions above. If menu automation fails on your setup, export with File → Export XML… yourself and give Claude the file path.
Edits apply to the primary storyline. Speed-changed (retimed) clips aren't cut inside. Multicam, compound and synced clips are skipped by pause and silence detection.
A look is saved as the effects stack on an adjustment clip. Paid plugins (e.g. colour plugins) and LUT files must be installed on the Mac that uses it.
render_previewis a rough preview (straight cuts, no effects or titles). The real result is in Final Cut Pro.Captions are regular titles (one per caption), so they're easy to tweak but a long video can have hundreds of them. A caption style described in words uses Final Cut's Basic Title; copy a title you styled yourself for animation or effects. A style copied from a title keeps that title's exact size and position, so check it when using it on a project with a different resolution.
Speech-to-text word timings are approximate (Whisper occasionally stretches them over pauses; Parakeet's word ends are within 100 ms about half the time), so always check the plan before approving.
Parakeet's punctuation and capitals are a little weaker than Whisper's; the captions skill checks them in the dry run. Names it mishears badly (not just a close spelling) need an exact fix once.
Files and disk space
Edit Twin never changes your Final Cut Pro library or media directly. It writes:
Where | What | Safe to delete? |
| exports of your project, and each rough cut it sends to Final Cut Pro | yes |
| low-res previews from | yes |
| cached transcripts, so a clip is only transcribed once | yes (they're redone when needed) |
| your learned style and saved looks | only to reset your style |
| which rough cut was sent for which project, used by | yes |
macOS temp folder | screenshots and preview frames ( | macOS clears these |
| the speech model (~1.5 GB) | yes (it's downloaded again when needed) |
| Python and packages (~1 GB) | removes Edit Twin |
| the rough-cut and captions skills | yes |
| subtitle files from | yes |
Settings you can pass as environment variables when registering:
Variable | Default | What it does |
|
| working folder |
|
| where the speech model is stored |
|
| speech-to-text engine: |
| see above | a different Whisper model (e.g. a smaller one for older Macs) |
|
| a different Parakeet model |
| inside Final Cut Pro | folder with Apple's |
For example, to keep everything on an external drive, run this from the cloned folder:
claude mcp remove edit-twin --scope user
claude mcp add --scope user -e EDIT_TWIN_DIR="/Volumes/MyDrive/Edit Twin" -e HF_HOME="/Volumes/MyDrive/.huggingface" edit-twin -- "$PWD/.venv/bin/edit-twin-mcp"Privacy
Transcription, pause detection, loudness and previews run on your Mac. Your video and audio files are never uploaded.
To plan and make edits, Claude receives what the tools return: transcripts, timeline details (clip names, timings, effects and media file paths), and the screenshots or preview frames you ask for. That goes to Anthropic like the rest of your Claude Code conversation.
Edit Twin itself sends nothing anywhere. The only network access is the one-time model download from Hugging Face.
Uninstall
claude mcp remove edit-twin --scope user
rm -rf ~/.claude/skills/edit-twin-rough-cut ~/.claude/skills/edit-twin-captions
rm -rf /path/to/edit-twin-mcp # the cloned folder, including .venv
rm -rf ~/.cache/huggingface/hub/models--mlx-community--parakeet-tdt-0.6b-v3 # Apple Silicon models
rm -rf ~/.cache/huggingface/hub/models--mlx-community--whisper-large-v3-turboDelete ~/Movies/Edit Twin too if you don't want to keep your style and exports.
Development
python3 -m venv .venv && .venv/bin/pip install -e '.[transcribe,parakeet]' pytest
.venv/bin/pytest -q tests # self-contained: generates its own footage, no Final Cut Pro neededThe same tests run on GitHub Actions for every pull request (.github/workflows/tests.yml), on macOS and Linux. Apple's DTD check only runs locally on a Mac with Final Cut Pro.
Support
Edit Twin is a free, as-is side project. Issues and pull requests are welcome, but I can't promise to fix every setup. If it saves you editing time, a ⭐ or a tag on socials (@loveaction) would be nice!
License
Available Tools
50 toolsadd_markerC
Add a marker. kind="chapter" makes YouTube-style chapter markers; "todo" a to-do.
Inputs: name (required), time (required), kind, note.
add_titleC
Connect a Basic Title above the storyline. color is hex (#ff6fb5) or a name. y_offset moves it vertically in pixels from centre (e.g. -380 for a lower third).
Inputs: text (required), time (required), bold, font, +6 more.
apply_audio_styleA
Apply the saved dialogue sound (see save_audio_style) to every dialogue clip in the storyline, or to the given refs. Use instead of normalize_audio when a style is saved.
Inputs: refs.
apply_lookA
Add an adjustment clip with a saved look (default: the style's default look) over the whole timeline. Replaces an existing empty/same-named adjustment clip. Run after cutting (or run fit_to_timeline after later cuts).
Inputs: name, replace_existing.
copy_effectsB
Copy video/audio effects from one clip to others, e.g. a colour grade or LUT. to_refs=["all"] applies to every clip in the storyline. name_contains limits which effects are copied. Only effects already used in this project can be copied.
Inputs: to_refs (required), from_ref (required), name_contains, replace_existing.
cut_rangesA
Ripple-delete time ranges from the primary storyline, e.g. [[12.5, 15], [40, 41.2]]. Later clips slide left. connected="keep" re-attaches B-roll/titles anchored inside a removed range at the cut point; "delete" removes them like FCP does.
Inputs: ranges (required), connected.
delete_clipA
Delete a clip by ref ("3" or connected "3.0"). ripple=True closes the gap; ripple=False leaves a gap so timing is unchanged.
Inputs: ref (required), ripple.
edit_titleB
Change an existing title's text, colour or size (ref like "2.0").
Inputs: ref (required), size, text, color.
enable_clipB
Enable or disable (mute/hide) a clip without deleting it.
Inputs: ref (required), enabled.
fcp_export_projectB
Export the project currently open in Final Cut Pro's timeline as FCPXML (drives File > Export XML…), then open it for editing. The user should have the project open in the timeline first.
Inputs: filename, open_after.
fcp_go_toB
Move Final Cut Pro's playhead to a time (seconds or timecode) in the open project.
Inputs: time (required), fps.
fcp_import_xmlC
Import an .fcpxml / .fcpxmld into Final Cut Pro (File > Import > XML).
Inputs: path (required).
fcp_launchA
Open Final Cut Pro (or bring it to the front).
Inputs: no named parameters.
fcp_library_overviewB
List open libraries, their events and projects (read from Final Cut Pro).
Inputs: no named parameters.
fcp_screenshotB
Screenshot of the screen, to see what Final Cut Pro is showing.
Inputs: no named parameters.
fcp_shortcutB
Press a Final Cut Pro shortcut in the app. Either a named action
(play_pause, blade, blade_all, add_marker, undo, redo, next_edit, previous_edit,
select_clip_under_playhead, set_range_start, set_range_end, trim_start_to_playhead,
trim_end_to_playhead, zoom_to_fit, render_all, detach_audio, add_default_transition,
connect_title_basic, focus_timeline, ...) or a raw key + modifiers
(command/option/control/shift). Acts on whatever is selected in FCP.
Inputs: key, action, modifiers.
fcp_statusA
Is Final Cut Pro installed/running, its version, and whether it is frontmost.
Inputs: no named parameters.
find_fcpxml_filesB
Find recent FCPXML exports (.fcpxml/.fcpxmld) in the working folder, Movies, Desktop, Downloads and Documents (or a given folder).
Inputs: days, folder.
find_repeatsA
Find stutters ("to new to new tech"), retakes (a phrase or sentence started again) and filler sounds (um/uh) in the transcript. Each result proposes removing the FIRST take and keeping the later one; times are on the current timeline, ready for cut_ranges. Nothing is changed. Review them: when the first take is clearly better, keep it instead.
Inputs: window_seconds.
find_silencesA
Dry run for remove_silences: list pauses in the storyline clips' audio. Nothing is changed. Settings default to the user's saved style (get_style), which is calibrated from their own hand trims; pass values only to override. threshold_db: how quiet counts as a pause (-30 catches breaths, -40 only near-silence); min_silence: shortest pause to cut; keep_after_speech / keep_before_speech: air left after a word / before the next.
Inputs: min_silence, threshold_db, keep_after_speech, keep_before_speech.
fit_to_timelineA
Stretch/shrink a connected item — e.g. the Adjustment Clip carrying a look like your colour preset, or a watermark title — so it starts at 0 and covers the whole edit. Identify it by ref ("0.1") or by part of its name or effect name. Run after cuts.
Inputs: ref, name_contains.
get_styleA
The user's saved editing style: pause-cut tightness, audio chain, default look, saved looks and notes learned from their edits. Read this before a rough cut.
Inputs: no named parameters.
get_timelineA
Clips in the primary storyline with refs, times, source media, effects, volume and their connected items (B-roll, titles, audio). Optionally only those overlapping start..end seconds.
Inputs: end, start.
insert_mediaA
Add a media file to the timeline. mode="connect" puts it above (video, lane 1) or below
(audio, lane -1) the storyline at time — B-roll or music; "insert" splits the storyline
and pushes later clips right; "append" adds to the end. source_in/duration pick the part
of the file. role e.g. "music" for audio.
Inputs: path (required), lane, mode, role, +3 more.
keep_rangesB
Keep only these time ranges (in order) and remove everything else — handy for building a short/teaser from a longer edit.
Inputs: ranges (required).
learn_from_editA
Compare Claude's rough cut with the user's hand-finished version and learn their style. your_version: their exported .fcpxml/.fcpxmld (default: export the project open in Final Cut now). claude_version: what Claude sent (default: the last one sent for that project). Reports what they removed or restored (with the words), how tight they trim pauses, their audio chain and adjustment-clip look, and pause settings calibrated to match them. save=True stores the pause settings, audio chain and look (named look_name, e.g. the preset they used, e.g. "warm_vlog") as their defaults.
Inputs: save, look_name, your_version, claude_version.
list_markersB
All markers (standard, to-do, chapter) with their times.
Inputs: no named parameters.
measure_loudnessA
Measure the edit's dialogue loudness (integrated LUFS, true peak) from the storyline clips with their clip volume applied. Final Cut's Loudness enhancement isn't simulated, so treat it as the level BEFORE that effect. Reels usually sit around -14 LUFS.
Inputs: end, start.
move_clipC
Reorder the primary storyline: move clip at index to position to_index.
Inputs: index (required), to_index (required).
normalize_audioA
Set dialogue gain so the loudest peak of the edit sits at target_peak_db (default −2 dB). One shared gain by default so takes stay balanced; per_clip=True levels each clip separately. Measures only the parts used in the edit. Music/connected audio is left alone unless listed in refs.
Inputs: refs, per_clip, target_peak_db.
open_timelineA
Load an exported FCPXML file or .fcpxmld bundle for editing. If the file holds several projects, pick one by name. Returns a summary and the clip list.
Inputs: path (required), project.
preview_frameA
Image of the storyline's main clip at a time (ignores titles/effects/B-roll), for checking what's on screen at a cut.
Inputs: time (required), width.
probe_mediaC
Media file info: duration, resolution, frame rate, audio, timecode.
Inputs: path (required).
redoA
Redo the last undone timeline edit.
Inputs: no named parameters.
remove_effectsB
Remove effects from a clip (all, or those whose name contains text).
Inputs: ref (required), name_contains.
remove_markersC
Remove markers, optionally only those whose name contains text or of one kind.
Inputs: kind, name_contains.
remove_silencesA
Jump-cut edit: ripple-delete pauses from the storyline clips, using the user's saved style unless overridden (see find_silences). Connected B-roll, titles, music and the adjustment clip are kept. Run find_silences first to show the user what will go.
Inputs: min_silence, threshold_db, keep_after_speech, keep_before_speech.
render_previewA
Render a quick low-res MP4 of the primary storyline (straight cuts, no effects, titles or connected clips) so the user can review an edit before importing. Optional start/end seconds render only part of it.
Inputs: end, start, height, output_path.
save_audio_styleB
Save a clip's audio chain (volume, Loudness / Noise Removal / EQ enhancements, audio effects) as the user's default dialogue sound, from a clip they set up by hand.
Inputs: ref.
save_lookA
Save the effects on an adjustment clip in the open timeline (e.g. the one you made with your colour preset) as a reusable look, so future rough cuts can add it automatically with apply_look — no more Option-A by hand. ref defaults to the only adjustment clip.
Inputs: name (required), ref, make_default.
save_timelineA
Save the edited timeline to a new .fcpxml (or .fcpxmld) without importing it. The project is renamed (default: " (Claude edit)") so it won't clash.
Inputs: output_path, project_name.
send_to_final_cutB
Save the edited timeline as a new project and import it into Final Cut Pro. The original project is untouched; the new one appears in the same event.
Inputs: output_path, project_name.
set_volumeC
Set a clip's volume in dB (0 = unchanged, -6 = quieter, -20 = background music).
Inputs: db (required), ref (required).
split_clipC
Blade the primary storyline at a time (seconds or timecode).
Inputs: time (required).
transcribeA
Transcribe what's said in the storyline (local Whisper, word timestamps), with times on the CURRENT timeline (they update after cuts). Use it to find repeated takes, flubs and filler. include_words=True adds per-word times for precise cuts — best with start/end to limit the window. vocabulary: names/jargon to help spelling (e.g. product names, places, people). First run per file takes a while and may download the model; later calls are instant.
Inputs: end, start, refresh, language, +2 more.
trim_clipA
Shorten a clip: remove trim_start seconds from its beginning and trim_end
from its end (ripples the storyline).
Inputs: ref (required), trim_end, trim_start.
undoB
Undo the last timeline edit.
Inputs: no named parameters.
update_styleB
Change saved style defaults, e.g. when the user says cuts feel too tight (raise keep_after_speech) or too loose (lower min_silence). add_note stores a preference in words (e.g. "keep 'So' at the start of the hook").
Inputs: add_note, min_silence, default_look, threshold_db, +3 more.
validate_timelineA
Check the edited timeline: references, gaps/overlaps, frame alignment, and Apple's FCPXML DTD (when Final Cut Pro is installed).
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 50 tools
Most tools target clearly distinct resources or workflow stages: app control, FCPXML import/export, timeline surgery, audio, transcription, and style learning are well separated. The main ambiguity comes from broad escape hatches like fcp_menu and fcp_shortcut overlapping dedicated tools such as undo/redo, split_clip, trim_clip, and add_default_transition, though descriptions mostly clarify when to use which.
Nearly all names are snake_case and follow a predictable verb_noun pattern (open_timeline, cut_ranges, trim_clip, save_look), with fcp_ used consistently for direct Final Cut Pro app control. Minor deviations exist in noun-only fcp_ names (fcp_status, fcp_menu, fcp_shortcut) and plain undo/redo, but nothing confusing.
Fifty tools is heavy for a single MCP surface, even for a rich Final Cut Pro editing assistant. The tools are generally meaningful within subdomains, but the sheer count raises selection and context burden well beyond a practical focused toolset.
The server covers a full rough-cut editing lifecycle: inspecting FCP, importing/exporting FCPXML, analyzing timelines, cutting/trimming/moving clips, markers, titles, effects, audio, transcription, repeat detection, validation, preview, rendering, and sending back to Final Cut. Gaps are minor and mostly higher-end NLE features such as direct project/event creation, multicam, or fine-grained effect application, which can often be reached via fcp_menu or fcp_shortcut.
Maintenance
Related MCP Connectors
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.
Video editing skills, motion design prompts and studio concepts for creators who edit with Claude.
Edit your own videos by chatting in Claude or ChatGPT: cut, caption, add music and export.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables Claude to read, edit, and generate real Final Cut Pro timelines from exported FCPXML, covering cut detection, silence removal, markers from transcripts and beats, role assignment, rough cuts, keyframes and speed ramps, cross-NLE export, and pushes straight into a running Final Cut Pro. Every write is journaled with its SHA-256 and can be undone, so edits stay non-destructive and reviewable.-
- FlicenseNot gradedqualityAmaintenanceEnables Claude to read, edit, generate, and quality-check Final Cut Pro timelines from exported FCPXML, covering cuts, markers, roles, silence removal, rough cuts, keyframes, speed ramps, and transcript-based editing. It can also push edits into a running Final Cut Pro and export to other NLEs, with journaled writes that can be undone.-
- FlicenseNot gradedqualityAmaintenanceEnables Claude to read, edit, and generate real Final Cut Pro timelines from exported FCPXML — trimming and splitting clips, removing silence, placing markers from transcripts or beats, assigning roles, building rough cuts, and inspecting timeline health. Writes are journaled and reversible, and finished edits can be exported to other NLEs or pushed directly into a running Final Cut Pro.-
- FlicenseNot gradedqualityAmaintenanceEnables Claude to read, edit, and generate real Final Cut Pro timelines from exported FCPXML — trimming, splitting, silence removal, markers, roles, keyframes, transcript-based editing, and cross-NLE export — with journaled, undoable writes. It can also push an FCPXML straight into a running Final Cut Pro with zero clicks and render the timeline inline as structured data.-