fcpkit-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FCPKIT_LOCK | No | Cooperative lock file used while a tool drives Final Cut Pro (--lock). | ~/Library/Application Support/fcpkit/FCP.lock |
| FCPKIT_FFMPEG | No | Path to the ffmpeg executable, used for filmstrips and loudness. Defaults to 'ffmpeg' on PATH. | ffmpeg |
| FCPKIT_FCP_APP | No | The app fcpkit-import expects to be running (--app). | /Applications/Final Cut Pro.app |
| FCPKIT_FCP_APPS | No | Extra FCP copies to recognise; a ':'-separated list. A SpliceKit copy in ~/Applications/SpliceKit/ is detected automatically. | |
| FCPKIT_SPLICEKIT_PORT | No | Optional SpliceKit bridge port, read only, used for dialog recording. | 9876 |
| FCPKIT_CAPTION_PATTERN | No | Regular expression deciding which title templates fcpkit-diff counts as captions (--caption-pattern). | (?i)caption|subtitle|자막 |
| FCPKIT_MOTION_TEMPLATES | No | Directory of user Motion templates used by fcpkit-effects (--templates-dir). | ~/Movies/Motion Templates.localized |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fcpkit_briefA | Read a timeline as a compact editorial brief instead of raw XML (call this first): symbol table of sources/templates, one line per main-storyline cut (source @time, angle, non-default volume/scale/effects) and under it every caption (with text), title, overlay, sound, transition and marker that starts during that cut; lane table, density, and a coverage line "timed items shown n/n". Typically 15-25x smaller than the XML. |
| fcpkit_brief_applyA | Apply an edited brief (made with fcpkit_brief ids=true from this exact XML) back to a NEW FCPXML: only changed lines are applied — start time, length, lane, caption text, "vol NdB", or a deleted line; main-storyline cuts accept vol only. Anything else is refused and nothing is written. The result is verified (only the edited elements changed, to the requested values) and DTD-validated. Never overwrites the source. |
| fcpkit_handlesA | Check every transition: does each side have the media it needs (multicam, compound and retime aware), and does a dissolve sit on a jump cut (it would show removed material)? Statuses PASS/INFO/REVIEW/FAIL; unknown is REVIEW, never PASS. |
| fcpkit_effects_checkA | Check that every resource resolves: Motion templates (src/uid files), FCP built-in templates, FxPlug UUIDs against FCP's own registry and installed plug-ins. MISSING/REVIEW/OK/INFO per effect. |
| fcpkit_timeline_diffA | What changed between two timelines (e.g. a generated build vs the editor's FCP export): unique-key matching, frame deltas of start/end/source, lane and text changes, added/removed items. |
| fcpkit_relink_previewA | Report each asset's media path, whether it exists (NFC/NFD aware), bookmark presence, and what a whole-segment prefix remap would find. Never rewrites the XML. |
| fcpkit_filmstripB | Pictures of the main storyline around timeline times: evenly spaced frames resolved through multicam angles/compounds, waveform underneath, red ticks at cuts. Writes PNGs to a new folder and returns them as images (max 8 times). |
| fcpkit_librariesA | List the libraries, events and projects open in the running Final Cut Pro (AppleScript, read only). Refuses if FCP is not running or two copies run; never launches FCP. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
The tools cover distinct jobs: listing open FCP state, reading a compact brief, applying brief edits, checking transition handles, checking effects, diffing timelines, previewing relinks, and producing filmstrips. The timeline-inspection and validation tools are related but remain clearly separated by their outputs and descriptions.
All tools use a consistent fcpkit_ prefix and snake_case naming. The suffix grammar varies somewhat (noun, noun_verb, verb_noun), but names remain readable and predictable.
Eight tools is well within an appropriate range for an FCPXML inspection and editing toolkit. Each tool appears to earn its place by covering a distinct workflow step.
The surface covers listing open FCP state, timeline briefing and editing, transition/effect validation, timeline diffing, relink preview, and visual inspection. Minor gaps exist around broader project/media management and more general FCPXML write operations, but core workflows are covered.