6.3 KiB
Executable File
FCPXML MCP — Agent Skill
Use when working with Final Cut Pro XML files (.fcpxml) — timeline analysis, quality control, batch editing, rough cut generation, marker management, cross-NLE export, and multi-track workflows.
TRIGGER when: user mentions FCPXML, Final Cut Pro, FCP, timeline analysis, video editing XML, markers, rough cuts, or any post-production workflow involving XML files.
Tool Categories
Read & Analyze (non-destructive)
| Tool | Use when... |
|---|---|
list_projects |
Finding FCPXML files in a directory (default: ~/Movies) |
analyze_timeline |
Getting stats — duration, resolution, clip count, frame rate, pacing metrics |
analyze_pacing |
Evaluating edit rhythm — cuts/min, pacing curve, suggestions |
list_clips |
Listing all clips with timecodes, durations, metadata |
list_markers |
Extracting markers (chapter, todo, standard). Use format: "youtube" for YouTube chapters |
list_keywords |
Showing keyword tags applied to clips |
list_library_clips |
Showing source clips available in the library (for rough cut planning) |
list_connected_clips |
Showing clips on connected lanes (B-roll, titles, SFX) |
list_compound_clips |
Showing compound clip structure |
list_roles |
Showing audio/video role assignments |
list_effects |
Showing applied effects and filters |
list_templates |
Showing available timeline templates |
QC & Detection (non-destructive)
| Tool | Use when... |
|---|---|
validate_timeline |
Getting a 0-100 health score with issue breakdown |
detect_flash_frames |
Finding ultra-short clips (accidental 1-2 frame cuts) |
detect_gaps |
Finding unintentional gaps in the timeline |
detect_duplicates |
Finding repeated source clips |
detect_silence_candidates |
Finding dead air / silence regions |
diff_timelines |
Comparing two versions of a timeline (added/removed/moved/trimmed) |
Edit & Fix (creates _modified output files, never overwrites originals)
| Tool | Use when... |
|---|---|
add_marker |
Adding a single marker (chapter, todo, standard) at a timecode |
batch_add_markers |
Adding multiple markers at once (chapter lists, beat markers) |
trim_clip |
Adjusting in/out points of a clip |
split_clip |
Splitting a clip at a specific timecode |
delete_clips |
Removing clips by index or name |
insert_clip |
Inserting a clip at a position in the timeline |
reorder_clips |
Rearranging clip order |
add_transition |
Adding cross-dissolve or other transitions between clips |
change_speed |
Applying speed changes (slow-mo, fast-forward, reverse) |
add_connected_clip |
Adding a clip to a connected lane (B-roll, titles) |
add_audio |
Adding audio clips to the timeline |
create_compound_clip |
Grouping clips into a compound clip |
flatten_compound_clip |
Expanding a compound clip back to individual clips |
assign_role |
Setting audio/video roles on clips |
apply_template |
Applying a timeline template |
Auto-Fix (batch operations)
| Tool | Use when... |
|---|---|
fix_flash_frames |
Automatically extending adjacent clips to cover flash frames |
rapid_trim |
Quick batch trim operations |
fill_gaps |
Closing gaps by extending adjacent clips |
remove_silence_candidates |
Removing or marking detected silence regions |
Generate (creates new FCPXML files)
| Tool | Use when... |
|---|---|
auto_rough_cut |
Building a rough cut from library clips with keyword filters and target duration |
generate_montage |
Creating a montage from tagged clips with pacing control |
generate_ab_roll |
Creating documentary-style A/B roll edits |
Music & Markers
| Tool | Use when... |
|---|---|
import_beat_markers |
Importing beat timestamps from JSON for music-synced editing |
snap_to_beats |
Snapping all cuts to the nearest beat marker |
import_srt_markers |
Importing markers from SRT/VTT subtitle files |
import_transcript_markers |
Importing markers from transcript text |
Export & Reformat
| Tool | Use when... |
|---|---|
export_edl |
Exporting an EDL (Edit Decision List) |
export_csv |
Exporting timeline data as CSV |
export_resolve_xml |
Exporting FCPXML v1.9 for DaVinci Resolve |
export_fcp7_xml |
Exporting FCP7 XMEML v5 for Premiere / legacy NLEs |
export_role_stems |
Exporting separate XMLs per audio role (dialogue, music, SFX) |
filter_by_role |
Filtering timeline to only show clips with a specific role |
reformat_timeline |
Changing format — presets: 9:16, 1:1, 4:5, 4:3, 16:9, or custom |
Workflow Chains
When the user describes a high-level intent, chain tools in this order:
QC Pipeline
analyze_timeline → detect_flash_frames → detect_gaps → detect_duplicates → validate_timeline
Then offer fixes: fix_flash_frames → fill_gaps
YouTube Chapter Export
list_markers (format: "youtube") → format output for copy-paste
If no chapters exist: analyze_pacing → suggest chapter points → batch_add_markers
Rough Cut Assembly
list_library_clips → list_keywords → discuss structure → auto_rough_cut or generate_montage
Beat-Synced Music Video
import_beat_markers → auto_rough_cut or generate_montage → snap_to_beats
Cross-NLE Handoff
export_resolve_xml (for Resolve) + export_fcp7_xml (for Premiere/Pro Tools)
Silence Cleanup
detect_silence_candidates → review results → remove_silence_candidates
Timeline Comparison
diff_timelines → summarize changes for revision log
Social Reformat
reformat_timeline with preset → note that framing adjustments still needed in FCP
Key Rules
- Never overwrite originals. All write operations create
_modified,_chapters, etc. suffixed files. - Times are rational fractions. FCPXML uses
"600/2400s"format — never convert to floats. - Always analyze before fixing. Run detection tools first, show the user what was found, then offer batch fixes.
- Connected clips use lanes. Positive lane = above primary storyline (video/titles), negative = below (audio).
- Compound clips can be nested. Use
list_compound_clipsto understand structure before flattening. - Export formats differ. Resolve XML flattens compounds. FCP7 XML converts spine-based to track-based model.