Skip to content
Agentmart
Submit a tool

fcp-mcp — Final Cut Pro MCP Server

Final Cut Pro MCP — 88 tools: FCPXML engine, live FCP control, media analysis, puppets.

Connector by dreliq9 · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 11
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/dreliq9-fcp-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Final Cut Pro MCP — 88 tools: FCPXML engine, live FCP control, media analysis, puppets.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
42 read · 35 write · 2 delete · 18 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Tools by what they do 97

Read from the source code; the running server may list different tools.

Read 42 · Look things up without changing anything.

  • compressor_list_settings
  • fcp_discover_effects
  • fcp_get_app_state
  • fcp_get_events
  • fcp_get_libraries
  • fcp_get_projects
  • fcp_get_timeline_info
  • fcp_is_running
  • fcp_list_motion_templates
  • fcp_list_share_destinations
  • fcpxml_analyze_pacing
  • fcpxml_check_audio_levels
Show 30 more tools
  • fcpxml_check_duration
  • fcpxml_check_frame_rates
  • fcpxml_check_media_links
  • fcpxml_check_safe_zones
  • fcpxml_detect_duplicates
  • fcpxml_detect_flash_frames
  • fcpxml_detect_gaps
  • fcpxml_diff
  • fcpxml_export_fcp7
  • fcpxml_export_resolve
  • fcpxml_generate_from_clip_plan
  • fcpxml_list_clips
  • fcpxml_list_effects
  • fcpxml_list_markers
  • fcpxml_list_roles
  • fcpxml_list_templates
  • fcpxml_parse
  • fcpxml_timeline_stats
  • fcpxml_validate
  • fcpxml_workflow_status
  • media_detect_beats
  • media_detect_silence
  • media_extract_audio
  • media_extract_thumbnail
  • media_extract_thumbnails
  • media_info
  • media_list_streams
  • media_loudness
  • media_scene_detect
  • puppet_list_presets

Write 35 · Create, change, send or run things.

  • fcp_export_xml
  • fcp_import_xml
  • fcp_keyboard_shortcut
  • fcp_menu_command
  • fcp_navigate
  • fcp_reconcile_import
  • fcp_request_import
  • fcp_select_tool
  • fcp_share
  • fcpxml_add_audio
  • fcpxml_add_keyword
  • fcpxml_add_marker
Show 23 more tools
  • fcpxml_add_title
  • fcpxml_add_transition
  • fcpxml_apply_template
  • fcpxml_assign_role
  • fcpxml_batch_add_markers
  • fcpxml_batch_apply_transition
  • fcpxml_batch_assign_roles
  • fcpxml_batch_rename_clips
  • fcpxml_create_project
  • fcpxml_create_timeline
  • fcpxml_fill_gaps
  • fcpxml_import_edl
  • fcpxml_import_srt
  • fcpxml_prepare_import
  • fcpxml_save_template
  • fcpxml_workflow_cancel
  • fcpxml_workflow_commit
  • puppet_animate
  • puppet_build_scene
  • puppet_create_humanoid_rig
  • puppet_create_rig
  • puppet_multi_scene
  • puppet_preset_motion

Delete 2 · Delete, drop, revoke or wipe things.

  • fcpxml_delete_clips
  • fcpxml_remove_silence

Not yet classified 18 · We could not tell from the name and description.

  • compressor_encode
  • fcp_doctor
  • fcp_open_library
  • fcp_playback
  • fcp_redo
  • fcp_undo
  • fcpxml_auto_rough_cut
  • fcpxml_change_speed
  • fcpxml_export_edl
  • fcpxml_fix_flash_frames
  • fcpxml_generate_montage
  • fcpxml_qc_report
Show 6 more tools
  • fcpxml_reformat
  • fcpxml_reorder_clips
  • fcpxml_split_clip
  • fcpxml_trim_clip
  • fcpxml_workflow_prepare
  • media_audio_to_midi

Secrets and settings it asks for

Other settings (environment variables or headers).

  • FCP_MCP_OUTPUT_DIR

Network hosts it talks to 2

  • api.github.com · found in code
  • github.com · found in code

Files it touches

  • /opt/homebrew/Cellar/python@3.12/3.12.13/Frameworks/Python.framework/Versions/3.12/bin/python3.12
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/dist/fcp_mcp-0.3.0-py3-none-any.whl
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/dist/fcp_mcp-0.3.0.tar.gz
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/inventory-dist/fcp_mcp-0.3.0-py3-none-any.whl
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/inventory-dist/fcp_mcp-0.3.0.tar.gz
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/inventory-source
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/live
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/live/v0.3-final-head-installed.fcpxml
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/output4/documented-first-run-marked.fcpxml
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/output4/documented-first-run.fcpxml
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/records/dtd-validation.json
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/records/fcp-final-head-full.jpeg
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/records/first-run-trajectory.json
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/records/installed-generation.json
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/records/pre-attestation-snapshot.sha256
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/records/site-packages-source.sha256
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/records/wheel-smoke-final.json
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/run-venv/bin/fcp-mcp
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/run-venv/bin/python
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/run-venv/lib/python3.12/site-packages/fcp_mcp-0.3.0.dist-info/direct_url.json
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/run-venv/lib/python3.12/site-packages/fcp_mcp/__init__.py
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/source
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/state4/artifacts/22cda729-9d77-4708-bc13-f68fa9a1066d/candidate.fcpxml
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/state4/artifacts/22cda729-9d77-4708-bc13-f68fa9a1066d/diff.json
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/state4/artifacts/22cda729-9d77-4708-bc13-f68fa9a1066d/receipt.json
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/state4/runs.sqlite3
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/state5
  • /private/tmp/fcp-mcp-v030-final-20260811T051833Z-69610/v0.3-final-head-evidence.fcpbundle
  • /proc/self/fd
  • /Users/adamsteen/fcp-mcp/.worktrees/v0.3-product-polish/.superpowers/sdd/2026-08-09-v0.3-product-launch/task-7d-invoke-installed-timeline.py
  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (97)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • compressor_encode

    Encode a file using Compressor CLI. Args: input_path: Path to input media file setting_path: Path to Compressor preset (.cmprstng) output_dir: Output directory batch_name: Batch name for Compressor

  • compressor_list_settings

    List available Compressor encoding presets.

  • fcp_discover_effects

    List available FCP effects and transitions by scanning known locations.

  • fcp_doctor

    Report structured runtime readiness without prompting or mutating user data.

  • fcp_export_xml

    Trigger XML export in FCP via menu automation (requires Accessibility permissions).

  • fcp_get_app_state

    Get FCP application state — version, frontmost status.

  • fcp_get_events

    Get events in a library (or all libraries if name not specified). Args: library_name: Library name to filter (optional)

  • fcp_get_libraries

    Get all open libraries in Final Cut Pro (requires FCP to be running).

  • fcp_get_projects

    Get projects in an event (or all events if name not specified). Args: event_name: Event name to filter (optional)

  • fcp_get_timeline_info

    Get info about the current/first timeline in FCP.

  • fcp_import_xml

    Import an FCPXML file into Final Cut Pro. Final Cut Pro controls destination selection. Select and confirm the intended library in its import dialog; this tool does not target a library. Args: fcpxml_path: Path to .fcpxml file

  • fcp_is_running

    Check if Final Cut Pro is currently running.

  • fcp_keyboard_shortcut

    Send a keyboard shortcut to FCP. Args: keys: Shortcut description like "cmd+c", "cmd+shift+e", "option+w"

  • fcp_list_motion_templates

    List installed Motion templates (titles, transitions, generators, effects).

  • fcp_list_share_destinations

    List configured FCP share destinations.

Show 82 more tools
  • fcp_menu_command

    Execute any FCP menu command by path. Args: menu_path: Menu path like "File > Export XML..." or "Edit > Select All"

  • fcp_navigate

    Navigate to a specific timecode in FCP. Args: timecode: Timecode to navigate to (e.g., "00:01:30:00"). Opens timecode entry if provided.

  • fcp_open_library

    Open a FCP library file. Args: library_path: Path to .fcpbundle file

  • fcp_playback

    Control FCP playback. Args: action: "play", "pause", "stop", or "toggle" (space bar)

  • fcp_reconcile_import

    Inspect FCP library/event/project metadata without importing or modifying the app. Updates private pending-request bookkeeping. Matching metadata does not prove full timeline contents or rendering; export/render remain app-dependent.

  • fcp_redo

    Redo the last undone action in FCP.

  • fcp_request_import

    Request one exactly reviewed import using Apple's Open Document AppleEvent. Requires live control, client approval mode and the prepared plan hash. The destination must be uniquely open and event name unused. Acceptance is not completion. Recorded or uncertain dispatches are never automatically resent.

  • fcp_select_tool

    Switch FCP editing tool. Args: tool: "select" (A), "trim" (T), "position" (P), "range" (R), "blade" (B), "zoom" (Z), "hand" (H)

  • fcp_share

    Trigger a share/export from FCP. Args: destination: Share destination name (opens default if empty)

  • fcp_undo

    Undo the last action in FCP.

  • fcpxml_add_audio

    Add an audio clip to the timeline. Args: path: Path to .fcpxml file audio_src: Path to audio file name: Clip name (defaults to filename) duration: Duration in FCPXML time (defaults to asset duration) position: "start", "end", or clip name to insert after output_path: Output file path

  • fcpxml_add_keyword

    Add a keyword to a clip. Args: path: Path to .fcpxml file clip_name: Name of the clip value: Keyword text start: Start time in FCPXML format duration: Duration of keyword range (optional) output_path: Output file path

  • fcpxml_add_marker

    Add a marker to a clip. Args: path: Path to .fcpxml file clip_name: Name of the clip to add the marker to start: Marker position in FCPXML time (e.g., "60060/30000s") value: Marker title/value note: Optional marker note marker_type: "standard" or "chapter" output_path: Output file path (default: adds _modified suffix)

  • fcpxml_add_title

    Add a title clip to the timeline. Args: path: Path to .fcpxml file text: Title text duration: Title duration in FCPXML time position: "start", "end", or clip name to insert after output_path: Output file path

  • fcpxml_add_transition

    Insert a transition after a clip. Args: path: Path to .fcpxml file after_clip_name: Name of the clip to add transition after duration: Transition duration (default: 1 second at 29.97) name: Transition name output_path: Output file path

  • fcpxml_analyze_pacing

    Analyze shot pacing — average/median shot length, distribution histogram. Args: path: Path to .fcpxml file

  • fcpxml_apply_template

    Apply an FCPXML template to a set of clips. Clip substitution is intentionally unavailable until a stable schema exists. Args: template_path: Path to template .fcpxml file clips_json: JSON array of clips to insert project_name: New project name output_path: Where to save

  • fcpxml_assign_role

    Set the audio role on a clip (e.g., "Dialogue", "Music", "Effects"). Args: path: Path to .fcpxml file clip_name: Name of the clip role: Audio role name output_path: Output file path

  • fcpxml_auto_rough_cut

    Auto-assemble clips into a rough cut timeline. Args: clips_json: JSON array of clips: [{"src": str, "name"?: str, "duration": str}, ...] target_duration: Target total duration (optional — uses all clips if empty) max_clip_duration: Maximum clip duration (trims longer clips) transition_duration: If set, adds transitions between clips project_name: Project name output_path: Where to save

  • fcpxml_batch_add_markers

    Add multiple markers at once. Args: path: Path to .fcpxml file markers_json: JSON array of markers, each: {"clip_name": str, "start": str, "value": str, "note"?: str, "type"?: str} output_path: Output file path (default: adds _modified suffix)

  • fcpxml_batch_apply_transition

    Add transitions between all adjacent clips in the timeline. Args: path: Path to .fcpxml file duration: Transition duration name: Transition name output_path: Output file path

  • fcpxml_batch_assign_roles

    Assign roles to clips based on name matching rules. Args: path: Path to .fcpxml file rules_json: JSON array of rules: [{"match": "interview", "role": "Dialogue"}, ...] output_path: Output file path

  • fcpxml_batch_rename_clips

    Rename clips matching a pattern (substring replacement). Args: path: Path to .fcpxml file pattern: Text to find in clip names replacement: Text to replace with output_path: Output file path

  • fcpxml_change_speed

    Change clip playback speed. Args: path: Path to .fcpxml file clip_name: Name of the clip speed_factor: Speed multiplier (2.0 = 2x fast, 0.5 = half speed) output_path: Output file path

  • fcpxml_check_audio_levels

    Flag clips with potential audio issues (volume adjustments, missing audio). Args: path: Path to .fcpxml file

  • fcpxml_check_duration

    Verify the timeline fits a target duration. Args: path: Path to .fcpxml file target_seconds: Target duration in seconds

  • fcpxml_check_frame_rates

    Detect mixed frame rate issues in the timeline. Args: path: Path to .fcpxml file

  • fcpxml_check_media_links

    Verify all referenced media files exist on disk. Args: path: Path to .fcpxml file

  • fcpxml_check_safe_zones

    Check for clips with transforms that might push content outside safe zones. Args: path: Path to .fcpxml file

  • fcpxml_create_project

    Create a new empty FCPXML project file. Args: name: Project name format_name: Video format (e.g., FFVideoFormat1080p2997, FFVideoFormat4Kp24) width: Frame width height: Frame height frame_duration: Frame duration in FCPXML time event_name: Event name output_path: Where to save (default: ~/Movies/<name>.fcpxml)

  • fcpxml_create_timeline

    Build a timeline from a list of clip definitions. Args: clips_json: JSON array of clips, each: {"src": "/path/to/file.mov", "name"?: str, "duration": "FCPXML_time", "start"?: str, "asset_duration"?: "full_source_FCPXML_time", "role"?: str} project_name: Project name format_name: Video format name event_name: Event name output_path: Where to save

  • fcpxml_delete_clips

    Remove clips from the timeline by name. Args: path: Path to .fcpxml file clip_names_json: JSON array of clip names to delete output_path: Output file path

  • fcpxml_detect_duplicates

    Find clips that use the same source media. Args: path: Path to .fcpxml file

  • fcpxml_detect_flash_frames

    Find clips shorter than max_frames (potential flash frames / accidental edits). Args: path: Path to .fcpxml file max_frames: Maximum frame count to flag (default 2)

  • fcpxml_detect_gaps

    Find all gaps in the timeline. Args: path: Path to .fcpxml file

  • fcpxml_diff

    Compare two FCPXML files and show differences. Args: path_a: Path to first .fcpxml file path_b: Path to second .fcpxml file

  • fcpxml_export_edl

    Export timeline as EDL (Edit Decision List). Args: path: Path to .fcpxml file output_path: Output .edl file path

  • fcpxml_export_fcp7

    Convert FCPXML to FCP7 XML format (compatible with Premiere Pro and Avid). Args: path: Path to .fcpxml file output_path: Output file path

  • fcpxml_export_resolve

    Convert FCPXML to DaVinci Resolve-compatible format (FCPXML v1.9). Args: path: Path to .fcpxml file output_path: Output file path

  • fcpxml_fill_gaps

    Replace all gaps in the timeline with clips from a specified asset. Args: path: Path to .fcpxml file fill_asset_ref: Asset resource ID to use as fill (e.g., "r3") fill_name: Name for the fill clips output_path: Output file path

  • fcpxml_fix_flash_frames

    Auto-fix flash frames by extending very short clips to minimum duration. Args: path: Path to .fcpxml file min_frames: Minimum frame count (clips shorter than this get extended) frame_duration: Frame duration for calculating frame count output_path: Output file path

  • fcpxml_generate_from_clip_plan

    Generate FCPXML from a youtube-mcp materialized clip-plan manifest. The source clips must already have been materialized by youtube-mcp. FCP-MCP revalidates every local path through its normal path policy and verifies SHA-256 identity. Clips are placed in manifest order and remain full-duration local assets because youtube-mcp already applied source trims. A `.sources.json` sidecar preserves original YouTube URLs/time ranges.

  • fcpxml_generate_montage

    Generate a montage/highlight reel with uniform clip durations and transitions. Args: clips_json: JSON array of clips: [{"src": str, "name"?: str, "duration": str}, ...] clip_duration: Duration for each clip in the montage transition_duration: Transition duration between clips project_name: Project name output_path: Where to save

  • fcpxml_import_edl

    Convert an EDL (Edit Decision List) to FCPXML. Args: edl_path: Path to .edl file media_dir: Directory containing media files (for resolving reel names) project_name: Project name output_path: Where to save

  • fcpxml_import_srt

    Convert SRT subtitles to title clips and add to timeline. Args: path: Path to .fcpxml file to add subtitles to srt_path: Path to .srt subtitle file output_path: Output file path

  • fcpxml_list_clips

    List all clips in the timeline with timecodes, durations, and roles. Args: path: Path to .fcpxml file project_name: Optional project name filter (uses first project if empty)

  • fcpxml_list_effects

    List all effects and transitions applied to clips. Args: path: Path to .fcpxml file

  • fcpxml_list_markers

    List all markers, chapter markers, and keywords across all clips. Args: path: Path to .fcpxml file

  • fcpxml_list_roles

    List all roles and subroles used in the timeline. Args: path: Path to .fcpxml file

  • fcpxml_list_templates

    List available FCPXML template files. Args: templates_dir: Directory to search (default: FCP_PROJECTS_DIR)

  • fcpxml_parse

    Parse an FCPXML file and return a structure summary. Args: path: Path to .fcpxml file (absolute or relative to FCP_PROJECTS_DIR)

  • fcpxml_prepare_import

    Prepare and Apple-DTD-validate one event/project for an existing destination library. Does not contact Final Cut. Review the returned artifact, target and plan hash before approving fcp_request_import. Media must use scoped local file URLs.

  • fcpxml_qc_report

    Generate a comprehensive quality check report for the timeline. Checks: validation, gaps, flash frames, duplicates, pacing. Args: path: Path to .fcpxml file

  • fcpxml_reformat

    Reformat a timeline for a different aspect ratio (e.g., 16:9 → 9:16 for vertical). Args: path: Path to .fcpxml file target_width: Target width target_height: Target height target_format_name: Target format name output_path: Output file path

  • fcpxml_remove_silence

    Remove gaps longer than the threshold from the timeline. Args: path: Path to .fcpxml file silence_threshold_seconds: Minimum gap duration to remove (seconds) output_path: Output file path

  • fcpxml_reorder_clips

    Reorder clips in the primary spine to match the given name order. Args: path: Path to .fcpxml file clip_names_json: JSON array of clip names in desired order output_path: Output file path

  • fcpxml_save_template

    Save the current FCPXML structure as a reusable template. Args: path: Path to .fcpxml file to use as template template_name: Name for the template output_dir: Directory to save template (default: FCP_PROJECTS_DIR)

  • fcpxml_split_clip

    Split a clip at a given offset within the clip. Args: path: Path to .fcpxml file clip_name: Name of the clip to split split_at: Offset within the clip to split at (FCPXML time) output_path: Output file path

  • fcpxml_timeline_stats

    Get comprehensive timeline statistics — duration, clip count, resolution, pacing, etc. Args: path: Path to .fcpxml file

  • fcpxml_trim_clip

    Trim a clip's source in/out points. Args: path: Path to .fcpxml file clip_name: Name of the clip to trim new_start: New source start time (optional) new_duration: New duration (optional) output_path: Output file path

  • fcpxml_validate

    Validate FCPXML structure and report errors/warnings. Args: path: Path to .fcpxml file

  • fcpxml_workflow_cancel

    Cancel a legal non-committing workflow while preserving evidence.

  • fcpxml_workflow_commit

    Commit one exactly approved transactional FCPXML candidate.

  • fcpxml_workflow_prepare

    Prepare and validate a private transactional FCPXML preview.

  • fcpxml_workflow_status

    Read one workflow's durable state and evidence assessment.

  • media_audio_to_midi

    Transcribe audio to MIDI using basic-pitch (ML audio transcription). Converts audio (from video or standalone) into MIDI note data. Returns the MIDI file path and a summary of detected notes. Requires basic-pitch: pip install basic-pitch Args: path: Path to audio file (wav, mp3, flac) or video file output_path: Where to save MIDI (default: same dir, .mid extension)

  • media_detect_beats

    Detect beat positions in audio/music files. Returns beat timestamps that can be used for music-synced editing. Args: path: Path to audio/video file

  • media_detect_silence

    Detect silent sections in audio/video files. Args: path: Path to media file noise_threshold: Decimal/scientific amplitude or dB scalar (e.g., "-30dB", "0.01", "1e-3"); expressions and filter syntax are rejected min_duration: Finite minimum silence duration in seconds, from 0 through 86400

  • media_extract_audio

    Extract audio track from a video file. Useful for feeding video audio into transcription, analysis, or the sheet-music-maker pipeline (basic-pitch → MIDI → notation). Args: path: Path to video file output_path: Where to save audio (default: same dir, .wav extension) format: Audio format: wav, mp3, flac (default: wav)

  • media_extract_thumbnail

    Extract a frame thumbnail from video at a specific time. Args: path: Path to video file time: Time in seconds to extract frame from output_path: Where to save thumbnail (default: auto-generated) width: Thumbnail width in pixels

  • media_extract_thumbnails

    Extract thumbnails at regular intervals (contact sheet / storyboard). Args: path: Path to video file interval: Seconds between thumbnails output_dir: Directory to save thumbnails width: Thumbnail width in pixels

  • media_info

    Get detailed media file info (codec, resolution, duration, bitrate, etc.). Args: path: Path to media file

  • media_list_streams

    List all audio, video, and subtitle streams in a media file. Args: path: Path to media file

  • media_loudness

    Analyze audio loudness (EBU R128 / LUFS). Returns integrated loudness, loudness range, and true peak. Args: path: Path to audio/video file

  • media_scene_detect

    Detect scene changes in video. Useful for automatic clip segmentation. Args: path: Path to video file threshold: Scene change sensitivity (0.0-1.0, lower = more sensitive)

  • puppet_animate

    Build a puppet scene with custom keyframe animations. Args: rigs_json: JSON array of rig definitions animations_json: JSON array of animations: [ { "part": "head", "property": "position", "keyframes": [ {"time": "0s", "value": [0, 200], "interp": "smooth2"}, {"time": "150150/30000s", "value": [20, 210], "interp": "smooth2"}, {"time": "300300/30000s", "value": [0, 200], "interp": "smooth2"} ] }, { "part":…

  • puppet_build_scene

    Build an FCPXML timeline from one or more puppet rigs. Each rig's parts become layered connected clips with transforms applied. Import the resulting .fcpxml into FCP to see the assembled characters. Args: rigs_json: JSON array of rig definitions (same format as puppet_create_rig). Each rig: {"name": str, "position": [x, y], "parts": [...]} duration: Scene duration in FCPXML time (default 10 seconds at 29.97fps) project_name: Project name output_path: Where to save (default: ~/Movies/<project_name>.fcpxml)

  • puppet_create_humanoid_rig

    Create a standard 6-part humanoid rig from a folder of images. Expects PNG files named: head.png, body.png, left_arm.png, right_arm.png, left_leg.png, right_leg.png in the image directory. Parts are auto-positioned for a standard humanoid layout on a 1080p frame. Args: name: Character name image_dir: Absolute path to folder containing part images position_x: X position on screen (0 = center) position_y: Y position on screen (0 = center) scale: Overall scale multiplier

  • puppet_create_rig

    Define a puppet character rig from body parts. Each part is a separate image (PNG) that gets positioned and layered to form a character. Parts can be animated independently. Args: rig_json: JSON object defining the character: { "name": "my_character", "position": [0, 0], "parts": [ { "name": "head", "image": "/absolute/path/to/head.png", "position": [0, 200], "scale": 1.0, "rotation": 0, "anchor": [0, -50], …

  • puppet_list_presets

    List all available puppet animation presets with descriptions. Returns details on each preset, what body parts it uses, and what parameters it accepts.

  • puppet_multi_scene

    Build a multi-scene puppet animation with different presets per scene. Generates one FCPXML per scene. Useful for storyboarding a sequence. Args: rigs_json: JSON array of rig definitions (shared across scenes) scenes_json: JSON array of scene definitions: [ {"name": "intro", "duration": "300300/30000s", "preset": "idle"}, {"name": "greeting", "duration": "150150/30000s", "preset": "wave"}, {"name": "walking", "duration": "600600/30000s", "preset": "walk", "cycles": 4} ] project_name: Base project name (scenes get suffixed) o…

  • puppet_preset_motion

    Build a puppet scene with a preset motion applied. Available presets: - "idle": Subtle breathing/sway (keeps character alive) - "bounce": Vertical bouncing - "walk": Full walk cycle (arms, legs, body bob) - "talk": Mouth movement + head bob - "wave": Arm waving (applies to left_arm) Args: rig_json: JSON rig definition preset: Motion preset name duration: Scene duration project_name: Project name output_path: Where to save cycles: Number of motion cycles (more = faster movement) intensity: Scale factor for motion amplitude (0.5 = subtle, 2.0 = exaggerated)

Signals

Stars
11
Forks
4
Open issues
1
Weekly downloads
385
Last commit
Oct 12, 2026 (17 days ago)
Last release
Apr 23, 2026 (6 months ago)
Last package publish
Apr 23, 2026 (6 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.dreliq9/fcp-mcp
Version
0.2.0
Auth
No auth
Packages
pypi fcp-mcp
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026

More from dreliq9

Cite this page

fcp-mcp — Final Cut Pro MCP Server. Agent Mart. https://agentmart.dev/connectors/dreliq9-fcp-mcp (last updated 2026-10-25)