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.
Scanned 5/27/2026
Install via CLI
openskills install DareDev256/fcpxml-mcp-server# 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
1. **Never overwrite originals.** All write operations create `_modified`, `_chapters`, etc. suffixed files.
2. **Times are rational fractions.** FCPXML uses `"600/2400s"` format — never convert to floats.
3. **Always analyze before fixing.** Run detection tools first, show the user what was found, then offer batch fixes.
4. **Connected clips use lanes.** Positive lane = above primary storyline (video/titles), negative = below (audio).
5. **Compound clips can be nested.** Use `list_compound_clips` to understand structure before flattening.
6. **Export formats differ.** Resolve XML flattens compounds. FCP7 XML converts spine-based to track-based model.
No comments yet. Be the first to comment!