fcpxml-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENAI_BASE_URL | No | Route LLM calls through any OpenAI-compatible proxy (LiteLLM, OpenRouter, Ollama, vLLM) | |
| FCP_PROJECTS_DIR | No | Root directory for FCPXML file discovery via list_projects | ~/Movies |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projectsA | List all FCPXML projects in directory |
| analyze_timelineB | Get comprehensive timeline statistics including duration, resolution, clip count, pacing metrics |
| list_clipsC | List all clips with timecodes, durations, and metadata |
| list_markersC | Extract markers (chapter, todo, standard) with timestamps |
| find_short_cutsB | Find clips shorter than threshold (flash frame detection) |
| find_long_clipsC | Find clips longer than threshold |
| list_keywordsC | Extract all keywords/tags from project |
| export_edlC | Generate EDL (Edit Decision List) from timeline |
| export_csvC | Export timeline data to CSV format |
| analyze_pacingC | Analyze edit pacing with suggestions for improvements |
| list_library_clipsB | List all available clips in the library (source media, not yet on timeline) |
| detect_flash_framesB | Find ultra-short clips (flash frames) that are likely errors, with severity categorization |
| detect_duplicatesB | Find clips using the same source media (potential duplicates) |
| detect_gapsB | Find unintentional gaps in the timeline |
| add_markerB | Add a marker at a specific timecode |
| batch_add_markersA | Add multiple markers at once, or auto-generate at cuts/intervals |
| trim_clipC | Trim a clip's in-point and/or out-point |
| reorder_clipsC | Move clips to a new position in the timeline |
| add_transitionC | Add a transition between clips |
| change_speedC | Change clip playback speed (slow motion or speed up) |
| delete_clipsC | Delete clips from timeline |
| split_clipB | Split a clip at specified timecodes |
| insert_clipB | Insert a library clip onto the timeline at a specific position |
| fix_flash_framesA | Automatically fix detected flash frames by extending neighbors or deleting |
| rapid_trimB | Batch trim clips to a maximum duration for fast-paced montages |
| fill_gapsB | Automatically fill gaps in the timeline by extending adjacent clips |
| validate_timelineB | Comprehensive timeline health check for flash frames, gaps, duplicates, and issues |
| auto_rough_cutB | Generate a rough cut from source clips based on keywords, duration, and pacing |
| generate_montageB | Create rapid-fire montages with pacing curves (accelerating, decelerating, pyramid) |
| generate_ab_rollC | Create documentary-style A/B roll edits alternating between main content and cutaways |
| import_beat_markersB | Import beat markers from external audio analysis (JSON format) |
| snap_to_beatsB | Align cuts to nearest beat markers for music-synced edits |
| import_srt_markersC | Import SRT or VTT subtitles as chapter markers on the timeline |
| import_transcript_markersA | Import timestamped transcript (YouTube chapter format) as markers. Supports '0:00 Title' and 'HH:MM:SS Title' formats |
| list_connected_clipsA | List all connected clips (B-roll, titles, audio) with their lanes and parent clips |
| add_connected_clipB | Connect a library clip to an existing timeline clip (B-roll overlay, audio, title) |
| list_compound_clipsA | List compound clips (ref-clips) and their nested content |
| list_rolesA | List all audio/video roles used in the timeline with clip counts |
| assign_roleB | Set the audio or video role on a clip (dialogue, music, effects, titles, etc.) |
| filter_by_roleA | List all clips matching a specific audio or video role |
| export_role_stemsB | Export clip list grouped by role for audio mixing stem planning |
| diff_timelinesB | Compare two FCPXML files and report differences in clips, markers, transitions, and format |
| reformat_timelineB | Create new FCPXML with different resolution/aspect ratio (9:16 for TikTok, 1:1 for Instagram, etc.) |
| detect_silence_candidatesB | Detect potential silence/dead air using timeline heuristics (gaps, ultra-short clips, name patterns, duration anomalies) |
| remove_silence_candidatesB | Remove or mark detected silence candidates from timeline |
| export_resolve_xmlB | Export timeline as DaVinci Resolve compatible FCPXML (simplified v1.9) |
| export_fcp7_xmlA | Export timeline as FCP7 XML (XMEML) for Premiere Pro, DaVinci Resolve, and Avid compatibility |
| list_effectsA | List all available FCP transition effects with slugs and UUIDs |
| add_audioB | Add an audio clip or music bed to the timeline |
| create_compound_clipB | Group spine clips into a compound clip |
| flatten_compound_clipB | Flatten a compound clip back into individual clips in the spine |
| list_templatesA | List available timeline templates with slot definitions |
| apply_templateC | Fill a timeline template with clips and generate FCPXML |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| qc-check | Run a full quality control check on your timeline — flash frames, gaps, duplicates, and health score |
| youtube-chapters | Extract chapter markers formatted for YouTube descriptions |
| rough-cut | Guided rough cut generation — choose keywords, pacing, and duration |
| timeline-summary | Quick overview of a timeline — stats, pacing, and potential issues |
| cleanup | Find and fix common timeline issues — flash frames, gaps, and duplicates |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DareDev256/fcpxml-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server