Fcpxml MCP server
Final Cut Pro automation: 13 grouped tools, 88 operations. FCPXML edit, QC, transcript, preview.
109 stars
Reviews
Write oneNobody has reviewed Fcpxml yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Fcpxml tools (63, 9 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
add_audioAdd an audio clip or music bed to the timeline
add_connected_clipConnect a library clip to an existing timeline clip (B-roll overlay, audio, title)
add_markerAdd a marker at a specific timecode
add_transitionAdd a transition between clips
analyze_pacingAnalyze edit pacing with suggestions for improvements
analyze_timelineGet comprehensive timeline statistics including duration, resolution, clip count, pacing metrics
apply_templateFill a timeline template with clips and generate FCPXML
assign_roleSet the audio or video role on a clip (dialogue, music, effects, titles, etc.)
auto_rough_cutGenerate a rough cut from source clips based on keywords, duration, and pacing
batch_add_markersAdd multiple markers at once, or auto-generate at cuts/intervals
change_speedChange clip playback speed (slow motion or speed up)
create_compound_clipwrite actionGroup spine clips into a compound clip
delete_clipswrite actionDelete clips from timeline
detect_beatsDetect musical beats and tempo in an audio/video file (librosa beat tracker). Writes a beats JSON next to the media file that plugs directly into import_beat_markers + snap_to_beats for beat-synced editing. Requires the optional [intelligence] extra (librosa); degrades to an install hint without it.
detect_duplicatesFind clips using the same source media (potential duplicates)
detect_flash_framesFind ultra-short clips (flash frames) that are likely errors, with severity categorization
detect_gapsFind unintentional gaps in the timeline
detect_media_silenceDetect REAL silence by analyzing each clip's source audio with ffmpeg silencedetect, mapped into timeline time. Unlike detect_silence_candidates (XML-only heuristics), this reads the actual media files referenced by the timeline. Requires ffmpeg; clips whose media is missing or unreadable are reported, not failed.
detect_silence_candidatesDetect potential silence/dead air using timeline heuristics (gaps, ultra-short clips, name patterns, duration anomalies)
diff_timelinesCompare two FCPXML files and report differences in clips, markers, transitions, and format
edit_by_transcriptText-based editing: cut timeline content by what was SAID. mode=remove cuts every occurrence of the given phrases (with ripple); mode=keep_only keeps only the matched phrases and cuts everything else in each matched clip (clips with no matches are left untouched). Uses each media file's _transcript.json (auto-transcribes if missing). Non-destructive: writes a _transcript_edit copy.
export_csvExport timeline data to CSV format
export_edlGenerate EDL (Edit Decision List) from timeline
export_fcp7_xmlExport timeline as FCP7 XML (XMEML) for Premiere Pro, DaVinci Resolve, and Avid compatibility
export_resolve_xmlExport timeline as DaVinci Resolve compatible FCPXML (simplified v1.9)
export_role_stemsExport clip list grouped by role for audio mixing stem planning
fill_gapsAutomatically fill gaps in the timeline by extending adjacent clips
filter_by_roleList all clips matching a specific audio or video role
find_long_clipsFind clips longer than threshold
find_short_cutsFind clips shorter than threshold (flash frame detection)
fix_flash_framesAutomatically fix detected flash frames by extending neighbors or deleting
flatten_compound_clipFlatten a compound clip back into individual clips in the spine
generate_ab_rollwrite actionCreate documentary-style A/B roll edits alternating between main content and cutaways
generate_montagewrite actionCreate rapid-fire montages with pacing curves (accelerating, decelerating, pyramid)
import_beat_markersImport beat markers from external audio analysis (JSON format)
import_srt_markersImport SRT or VTT subtitles as chapter markers on the timeline
import_transcript_markersImport timestamped transcript (YouTube chapter format) as markers. Supports '0:00 Title' and 'HH:MM:SS Title' formats
insert_clipwrite actionInsert a library clip onto the timeline at a specific position
list_clipsList all clips with timecodes, durations, and metadata
list_compound_clipsList compound clips (ref-clips) and their nested content
list_connected_clipsList all connected clips (B-roll, titles, audio) with their lanes and parent clips
list_effectsList all available FCP transition effects with slugs and UUIDs
list_fcp_librariesLIVE: enumerate the running Final Cut Pro's open libraries, events, and projects via Apple's read-only scripting dictionary. Refuses to launch FCP unless allow_launch is true. macOS-only.
list_keywordsExtract all keywords/tags from project
list_library_clipsList all available clips in the library (source media, not yet on timeline)
list_markersExtract markers (chapter, todo, standard) with timestamps
list_projectsList all FCPXML projects in directory
list_rolesList all audio/video roles used in the timeline with clip counts
list_templatesList available timeline templates with slot definitions
push_to_fcpLIVE: send an FCPXML file into the running Final Cut Pro with zero clicks (official Open Document Apple event), then VERIFY the import actually landed. macOS-only; first use triggers an Automation permission prompt. Pass library_location ending in .fcpbundle to target a library (a path that does not exist yet is created by FCP). Omit it and the target is inferred only when exactly one library is o
rapid_trimBatch trim clips to a maximum duration for fast-paced montages
reformat_timelinewrite actionCreate new FCPXML with different resolution/aspect ratio (9:16 for TikTok, 1:1 for Instagram, etc.)
relink_mediaBulk-rewrite media source paths (asset/media-rep src URLs) to relink moved or renamed media folders without opening FCP. Prefix-based: find='/Volumes/OldDrive/Media' replace='/Volumes/NewDrive/Media'. Use dry_run to preview.
remove_filler_wordswrite actionCut filler words (um, uh, erm...) out of the timeline with ripple, using word-level transcripts of the real source audio. Conservative default filler list — words like 'like' and 'so' are only cut if you pass them explicitly. Uses each media file's _transcript.json (auto-transcribes if missing). Non-destructive: writes a _defillered copy.
remove_media_silencewrite actionDetect REAL silence in each clip's source audio (ffmpeg) and CUT it out of the timeline with ripple. Clips are split around silence; the silent middles are removed and everything after shifts earlier. Non-destructive: writes a _silence_removed copy. Preview with detect_media_silence first.
remove_silence_candidateswrite actionRemove or mark detected silence candidates from timeline
reorder_clipsMove clips to a new position in the timeline
snap_to_beatsAlign cuts to nearest beat markers for music-synced edits. Works on spine cuts and on connected clips lane by lane (a music video keeps its whole edit on lanes). Moving a connected clip does not ripple the clips after it; a move that would collide with a neighbour in the same lane is skipped and reported.
split_clipSplit a clip at specified timecodes
transcribe_mediaTranscribe each clip's source media locally with word-level timestamps (faster-whisper). Writes a _transcript.json next to each media file (reused by edit_by_transcript / remove_filler_words so media is only transcribed once) and optionally an SRT for captions. Requires the optional [transcribe] extra; degrades to an install hint without it.
transcript_packThe whole shoot on one page: every clip's transcript packed into one document — a header per source, one line per utterance, broken on silence or a speaker change, audio events inline. Built for planning an edit from what was said. Uses each media file's _transcript.json / the index (auto-transcribes if missing). Truncated at 60KB; write=true saves the full pack as <project>_pack.md beside the FCP
trim_clipTrim a clip's in-point and/or out-point
validate_timelineComprehensive timeline health check for flash frames, gaps, duplicates, and issues
Public scan report
scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it
- Code scan42 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 12 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Install directly
claude mcp add fcpxml-mcp-server -- uvx fcp-mcp-server
Fcpxml: common questions
- Is Fcpxml MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the Fcpxml safety report
- How do I install Fcpxml?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Fcpxml need an API key?
- No secret keys are declared. It reads 1 setting from the environment.
- Is Fcpxml maintained?
- The last commit was 12 days ago (2026-09-08). The latest release is v0.25.0.