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 9/1/2026
Install to Claude Code
npx -y skills add DareDev256/fcp-mcp-server --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of FCPXML MCP — Agent Skill?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/daredev256-fcpxml-mcp-agent-skill-fcp-mcp-server)More formats (shields.io, HTML) on the badges page.
# 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.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!