Local Final Cut Pro MCP server with FCPXML tools, opt-in live control, media analysis, and parametric puppets
FCP-MCP has 37 tools with basic schemas and descriptions, but significant quality gaps limit production readiness. All tools have input schemas with type definitions and descriptions present, meeting minimum requirements. However, descriptions are often generic (10-50 chars) and lack actionable context for LLM selection. Parameter descriptions are minimal. Output schemas are not visible in the provided source. Tool naming follows verb_noun convention (fcpxml_validate, detect_gaps, fcp_undo) but lacks clarity in distinguishing similar operations (e.g., puppet_preset_* tools are repetitive). No error handling guidance, no pagination support for list-like tools, and no documented output structures. Security concerns: tools like fcp_keyboard_shortcut and fcp_menu_command accept free-form strings without validation, inviting injection attacks. The server mixes read-only and write operations without clear permission boundaries.
Analyze loudness of audio media
Analyze pacing and timing of clips in timeline
Analyze timeline statistics
Get Compressor settings
Submit job to Compressor
Detect beats in audio media
Detect duplicate clips in FCPXML
Detect flash frames in timeline
Detect gaps in timeline sequences
Output schemas not documented. Tools return unstructured results; LLMs cannot plan downstream calls or extract typed fields. Violates pattern:tool and pattern:response-shaper.
Free-form string parameters without validation or enum constraints. fcp_keyboard_shortcut, fcp_menu_command, fcp_select_tool accept arbitrary strings, inviting injection attacks and hallucinated values. Violates pattern:constrained-input and pattern:tool-gateway.
Descriptions too generic and short (35-50 chars). Lack WHEN to use, prerequisites, and side effects. Examples: 'Get current Final Cut Pro application state' (45 chars), 'Diagnostic tool for Final Cut Pro environment' (45 chars). LLMs cannot distinguish similar tools. Violates pattern:tool-description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Detect scene changes in video media
Detect silence in audio media
Diagnostic tool for Final Cut Pro environment and configuration
Export current project as FCPXML
Get current Final Cut Pro application state
Import FCPXML into Final Cut Pro
Check if Final Cut Pro is currently running
Execute a keyboard shortcut in Final Cut Pro
Execute a menu command in Final Cut Pro
Navigate in Final Cut Pro timeline
Open a library in Final Cut Pro
Control playback in Final Cut Pro
Redo the last undone action in Final Cut Pro
Select a tool in Final Cut Pro
Share project from Final Cut Pro
Undo the last action in Final Cut Pro
Compare two FCPXML files and report differences
Generate FCPXML from structured parameters
Generate a summary of FCPXML document contents
Validate FCPXML document structure and content
Get information about media file
Build a puppet animation scene
Get bounce animation preset for puppet
Get idle animation preset for puppet
Get talk animation preset for puppet
Get walk animation preset for puppet
Get wave animation preset for puppet
Create a standard humanoid puppet rig
Repetitive puppet preset tools (puppet_preset_idle, puppet_preset_talk, puppet_preset_walk, puppet_preset_wave, puppet_preset_bounce) lack differentiation. No descriptions explain when to use each. Consider consolidating into a single parameterized tool or adding enum-based selection. Violates pattern:tool composition.
No error handling guidance. Tools do not document retryable vs fatal errors, recovery steps, or actionable error messages. Violates pattern:recovery-guide and pattern:error-classification.