MCP Hub
Back to servers

fcpxml-mcp-server

🎬 The first AI-powered MCP server for Final Cut Pro XML. Control your edits with natural language.

GitHub
Stars
3
Updated
Jan 20, 2026
Validated
Feb 10, 2026

FCPXML MCP

Batch operations and analysis for Final Cut Pro XML files via Claude.

License: MIT Python 3.10+ MCP Compatible Final Cut Pro


What This Is

A Model Context Protocol (MCP) server that reads and writes FCPXML files. Claude can analyze your timelines, make batch edits, and generate new sequences.

What This Is NOT

  • Not a plugin that runs inside Final Cut Pro
  • Not real-time editing β€” you export XML, modify it, then reimport
  • Not a replacement for manual editing when you need visual feedback

The Workflow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Final Cut Pro  │────▢│   Claude +      │────▢│  Final Cut Pro  β”‚
β”‚  Export XML     β”‚     β”‚   MCP Server    β”‚     β”‚  Import XML     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. Export from FCP: File β†’ Export XML...
  2. Run MCP tools: Analyze, modify, generate via Claude
  3. Import back to FCP: File β†’ Import β†’ XML

This is a roundtrip workflow. Each edit cycle requires an export and import.


When To Use This

Good For

Use CaseWhy It Works
Batch marker insertionAdd 100 chapter markers from a transcript in one operation
QC before deliveryFind flash frames, gaps, duplicates programmatically
Data extractionExport EDL, CSV, chapter markers for handoffs
Template generationCreate rough cuts from tagged clips automatically
Automated assemblyBuild montages from keywords and pacing rules
Timeline health checksValidate timing, find issues, get stats

Not Ideal For

Use CaseWhy Not
Creative editing decisionsNo visual feedback β€” you can't see results until reimport
Real-time adjustmentsExport/import cycle is slow for iterative changes
Fine-tuning cutsAdjusting by a few frames is faster in FCP directly
Anything visualColor, framing, motion β€” need to see it

Quick Start

1. Clone & Install

git clone https://github.com/DareDev256/fcp-mcp-server.git
cd fcp-mcp-server
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

2. Configure Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "fcp": {
      "command": "python",
      "args": ["/path/to/fcp-mcp-server/server.py"],
      "env": {
        "FCP_PROJECTS_DIR": "/Users/you/Movies"
      }
    }
  }
}

3. Export from Final Cut Pro

File β†’ Export XML... (saves as .fcpxml)

4. Use the Tools

Open Claude Desktop and start working with your timeline.


All 32 Tools

Analysis (Read) β€” 11 tools

ToolDescription
list_projectsFind all FCPXML files in a directory
analyze_timelineGet stats on duration, resolution, pacing
list_clipsList all clips with timecodes, durations, keywords
list_library_clipsList all source clips available in the library
list_markersExtract markers with timestamps (YouTube chapter format)
find_short_cutsFind potential flash frames (< threshold)
find_long_clipsFind clips that might need trimming
list_keywordsExtract all keywords/tags from project
export_edlGenerate EDL for color/audio handoffs
export_csvExport timeline data to CSV
analyze_pacingGet pacing metrics with suggestions

QC & Validation β€” 4 tools

ToolDescription
detect_flash_framesFind ultra-short clips with severity (critical/warning)
detect_duplicatesFind clips using same source media
detect_gapsFind unintentional gaps in timeline
validate_timelineHealth check with score (0-100%)

Editing (Write) β€” 9 tools

ToolDescription
add_markerAdd a single marker at a timecode
batch_add_markersAdd multiple markers, or auto-generate at cuts/intervals
insert_clipInsert a library clip onto the timeline at any position
trim_clipAdjust in/out points with optional ripple
reorder_clipsMove clips to new timeline positions
add_transitionAdd cross-dissolve, fade, wipe between clips
change_speedSlow motion or speed up clips
delete_clipsRemove clips with optional ripple
split_clipSplit a clip at specified timecodes

Batch Fixes β€” 3 tools

ToolDescription
fix_flash_framesAuto-fix flash frames (extend neighbors or delete)
rapid_trimBatch trim clips to max duration
fill_gapsClose gaps by extending adjacent clips

Generation β€” 3 tools

ToolDescription
auto_rough_cutGenerate timeline from keywords, duration, pacing
generate_montageCreate montages with pacing curves (accelerating/decelerating/pyramid)
generate_ab_rollDocumentary-style A/B roll alternating edits

Beat Sync β€” 2 tools

ToolDescription
import_beat_markersImport beat markers from JSON audio analysis
snap_to_beatsAlign cuts to nearest beat markers

Usage Examples

Timeline Analysis

"Analyze my latest FCP project"
"List all clips shorter than 1 second"
"Extract chapter markers for YouTube description"
"Run a health check on my timeline"

Batch Edits

"Add chapter markers at these timestamps: [list]"
"Trim 2 seconds off the end of every interview clip"
"Add a cross-dissolve between all clips"
"Fix all flash frames by extending previous clips"

Data Export

"Export an EDL for the colorist"
"Generate a CSV of all clips with timecodes"
"List all clips tagged 'interview' with durations"

Automated Assembly

"Create a 3-minute rough cut using clips tagged 'broll'"
"Generate a montage with accelerating pacing"
"Build an A/B roll: interviews as main, broll as cutaways"

Beat Sync

"Import beat markers from beats.json"
"Snap all cuts to the nearest beat"

Project Structure

fcp-mcp-server/
β”œβ”€β”€ server.py              # MCP server (32 tools)
β”œβ”€β”€ fcpxml/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ parser.py          # Read FCPXML β†’ Python + library clip listing
β”‚   β”œβ”€β”€ writer.py          # Python β†’ FCPXML, batch fixes, gap filling
β”‚   β”œβ”€β”€ rough_cut.py       # Rough cut, montage, A/B roll generation
β”‚   └── models.py          # Timeline, Clip, Marker, TimeValue, PacingCurve
β”œβ”€β”€ docs/
β”‚   └── specs/             # Design specs and schemas
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ test_parser.py     # Parser tests (8 tests)
β”‚   β”œβ”€β”€ test_writer.py     # Writer tests (8 tests)
β”‚   └── test_speed_cutting.py  # Speed cutting & montage tests (22 tests)
β”œβ”€β”€ examples/
β”‚   └── sample.fcpxml      # Sample FCPXML for testing
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ pyproject.toml
└── README.md

Requirements

  • Python 3.10+
  • Final Cut Pro 10.4+ (for FCPXML 1.8+)
  • Claude Desktop (or any MCP-compatible client)
  • mcp package (pip install mcp)

Why This Exists

After directing 350+ music videos, I got tired of repetitive editing tasks:

  • Counting cuts manually
  • Extracting chapter markers one by one
  • Finding flash frames by scrubbing through footage
  • Building rough cuts clip by clip

These are batch operations that don't need visual feedback. Export the XML, let Claude handle it, import the result.


Releases

v0.3.0 β€” Batch Operations & Generation (Latest)

  • QC Tools: detect_flash_frames, detect_duplicates, detect_gaps, validate_timeline
  • Batch Fixes: fix_flash_frames, rapid_trim, fill_gaps
  • Generation: generate_montage with pacing curves, generate_ab_roll for documentary-style edits
  • Beat Sync: import_beat_markers, snap_to_beats
  • Timeline health scoring (0-100%)
  • Flash frame severity levels (critical < 2 frames, warning < 6 frames)
  • 32 tools total

v0.2.1 β€” Library Clip Insertion

  • New: list_library_clips β€” See all source media available for insertion
  • New: insert_clip β€” Add library clips at any position with subclip support
  • 21 tools total

v0.2.0 β€” Timeline Editing

  • Write tools: trim_clip, reorder_clips, add_transition, change_speed, delete_clips, split_clip, batch_add_markers
  • Generation: auto_rough_cut β€” Generate rough cuts from keywords
  • 19 tools total

v0.1.0 β€” Initial Release

  • Core FCPXML parsing (v1.8 - v1.11)
  • Timeline analysis and clip listing
  • Marker extraction (chapters, TODOs, standard)
  • EDL/CSV export
  • 10 tools total

Roadmap

  • Core FCPXML parsing
  • Timeline analysis tools
  • Marker extraction & insertion
  • Clip trimming & reordering
  • Transition insertion
  • Speed changes
  • Auto rough cut generation
  • EDL/CSV export
  • Library clip listing & insertion
  • Flash frame detection & auto-fix
  • Gap detection & filling
  • Timeline validation with health scoring
  • Montage generation with pacing curves
  • A/B roll documentary-style editing
  • Beat marker import & snap-to-beat
  • Audio sync detection
  • Multi-timeline comparison
  • Premiere Pro XML support

Contributing

PRs welcome. If you're a video editor who codes (or a coder who edits), let's build this together.


Credits

Built by @DareDev256 β€” Former music video director (350+ videos for Chief Keef, Migos, Masicka), now building tools for creators.


License

MIT License β€” see LICENSE for details.

Reviews

No reviews yet

Sign in to write a review