{"name":"io.github.dreliq9/fcp-mcp","slug":"dreliq9-fcp-mcp","title":"fcp-mcp — Final Cut Pro MCP Server","description":"Final Cut Pro MCP — 88 tools: FCPXML engine, live FCP control, media analysis, puppets.","url":"https://mcp.market/server/dreliq9-fcp-mcp","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":29,"stars":10,"forks":3,"downloads_week":59,"last_push_at":"2026-08-13T05:39:57.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/dreliq9/fcp-mcp","website":null,"version":"0.2.0","remotes":[],"packages":[{"registryType":"pypi","identifier":"fcp-mcp","version":"0.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Directory for modified FCPXML outputs (default: alongside input with _modified suffix)","format":"string","name":"FCP_MCP_OUTPUT_DIR"}]}],"tools":[{"name":"compressor_encode","description":"Encode a file using Compressor CLI.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compressor_list_settings","description":"List available Compressor encoding presets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_discover_effects","description":"List available FCP effects and transitions by scanning known locations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_export_xml","description":"Trigger XML export in FCP via menu automation (requires Accessibility permissions).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_get_app_state","description":"Get FCP application state — version, frontmost status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_get_events","description":"Get events in a library (or all libraries if name not specified).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_get_libraries","description":"Get all open libraries in Final Cut Pro (requires FCP to be running).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_get_projects","description":"Get projects in an event (or all events if name not specified).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_get_timeline_info","description":"Get info about the current/first timeline in FCP.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_import_xml","description":"Import an FCPXML file into Final Cut Pro.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_is_running","description":"Check if Final Cut Pro is currently running.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_keyboard_shortcut","description":"Send a keyboard shortcut to FCP.","write_action":true,"price_micros":0,"input_schema":null},{"name":"fcp_list_motion_templates","description":"List installed Motion templates (titles, transitions, generators, effects).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_list_share_destinations","description":"List configured FCP share destinations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_menu_command","description":"Execute any FCP menu command by path.","write_action":true,"price_micros":0,"input_schema":null},{"name":"fcp_navigate","description":"Navigate to a specific timecode in FCP.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_open_library","description":"Open a FCP library file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_playback","description":"Control FCP playback.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_redo","description":"Redo the last undone action in FCP.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_select_tool","description":"Switch FCP editing tool.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_share","description":"Trigger a share/export from FCP.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcp_undo","description":"Undo the last action in FCP.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_add_audio","description":"Add an audio clip to the timeline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_add_keyword","description":"Add a keyword to a clip.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_add_marker","description":"Add a marker to a clip.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_add_title","description":"Add a title clip to the timeline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_add_transition","description":"Insert a transition after a clip.","write_action":true,"price_micros":0,"input_schema":null},{"name":"fcpxml_analyze_pacing","description":"Analyze shot pacing — average/median shot length, distribution histogram.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_apply_template","description":"Apply an FCPXML template to a set of clips.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_assign_role","description":"Set the role on a clip (e.g., \"Dialogue\", \"Video\", \"Music\", \"Effects\").","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_auto_rough_cut","description":"Auto-assemble clips into a rough cut timeline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_batch_add_markers","description":"Add multiple markers at once.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_batch_apply_transition","description":"Add transitions between all adjacent clips in the timeline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_batch_assign_roles","description":"Assign roles to clips based on name matching rules.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_batch_rename_clips","description":"Rename clips matching a pattern (substring replacement).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_change_speed","description":"Change clip playback speed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_check_audio_levels","description":"Flag clips with potential audio issues (volume adjustments, missing audio).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_check_duration","description":"Verify the timeline fits a target duration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_check_frame_rates","description":"Detect mixed frame rate issues in the timeline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_check_media_links","description":"Verify all referenced media files exist on disk.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_check_safe_zones","description":"Check for clips with transforms that might push content outside safe zones.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_create_project","description":"Create a new empty FCPXML project file.","write_action":true,"price_micros":0,"input_schema":null},{"name":"fcpxml_create_timeline","description":"Build a timeline from a list of clip definitions.","write_action":true,"price_micros":0,"input_schema":null},{"name":"fcpxml_delete_clips","description":"Remove clips from the timeline by name.","write_action":true,"price_micros":0,"input_schema":null},{"name":"fcpxml_detect_duplicates","description":"Find clips that use the same source media.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_detect_flash_frames","description":"Find clips shorter than max_frames (potential flash frames / accidental edits).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_detect_gaps","description":"Find all gaps in the timeline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_diff","description":"Compare two FCPXML files and show differences.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_export_edl","description":"Export timeline as EDL (Edit Decision List).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_export_fcp7","description":"Convert FCPXML to FCP7 XML format (compatible with Premiere Pro and Avid).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_export_resolve","description":"Convert FCPXML to DaVinci Resolve-compatible format (FCPXML v1.9).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_fill_gaps","description":"Replace all gaps in the timeline with clips from a specified asset.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_fix_flash_frames","description":"Auto-fix flash frames by extending very short clips to minimum duration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_generate_montage","description":"Generate a montage/highlight reel with uniform clip durations and transitions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_import_edl","description":"Convert an EDL (Edit Decision List) to FCPXML.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_import_srt","description":"Convert SRT subtitles to title clips and add to timeline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_list_clips","description":"List all clips in the timeline with timecodes, durations, and roles.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_list_effects","description":"List all effects and transitions applied to clips.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_list_markers","description":"List all markers, chapter markers, and keywords across all clips.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_list_roles","description":"List all roles and subroles used in the timeline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_list_templates","description":"List available FCPXML template files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_parse","description":"Parse an FCPXML file and return a structure summary.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_qc_report","description":"Generate a comprehensive quality check report for the timeline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_reformat","description":"Reformat a timeline for a different aspect ratio (e.g., 16:9 → 9:16 for vertical).","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_remove_silence","description":"Remove gaps longer than the threshold from the timeline.","write_action":true,"price_micros":0,"input_schema":null},{"name":"fcpxml_reorder_clips","description":"Reorder clips in the primary spine to match the given name order.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_save_template","description":"Save the current FCPXML structure as a reusable template.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_split_clip","description":"Split a clip at a given offset within the clip.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_timeline_stats","description":"Get comprehensive timeline statistics — duration, clip count, resolution, pacing, etc.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_trim_clip","description":"Trim a clip's source in/out points.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fcpxml_validate","description":"Validate FCPXML structure and report errors/warnings.","write_action":false,"price_micros":0,"input_schema":null},{"name":"media_audio_to_midi","description":"Transcribe audio to MIDI using basic-pitch (ML audio transcription).","write_action":false,"price_micros":0,"input_schema":null},{"name":"media_detect_beats","description":"Detect beat positions in audio/music files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"media_detect_silence","description":"Detect silent sections in audio/video files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"media_extract_audio","description":"Extract audio track from a video file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"media_extract_thumbnail","description":"Extract a frame thumbnail from video at a specific time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"media_extract_thumbnails","description":"Extract thumbnails at regular intervals (contact sheet / storyboard).","write_action":false,"price_micros":0,"input_schema":null},{"name":"media_info","description":"Get detailed media file info (codec, resolution, duration, bitrate, etc.).","write_action":false,"price_micros":0,"input_schema":null},{"name":"media_list_streams","description":"List all audio, video, and subtitle streams in a media file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"media_loudness","description":"Analyze audio loudness (EBU R128 / LUFS).","write_action":false,"price_micros":0,"input_schema":null},{"name":"media_scene_detect","description":"Detect scene changes in video.","write_action":false,"price_micros":0,"input_schema":null},{"name":"puppet_animate","description":"Build a puppet scene with custom keyframe animations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"puppet_build_scene","description":"Build an FCPXML timeline from one or more puppet rigs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"puppet_create_humanoid_rig","description":"Create a standard 6-part humanoid rig from a folder of images.","write_action":true,"price_micros":0,"input_schema":null},{"name":"puppet_create_rig","description":"Define a puppet character rig from body parts.","write_action":true,"price_micros":0,"input_schema":null},{"name":"puppet_list_presets","description":"List all available puppet animation presets with descriptions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"puppet_multi_scene","description":"Build a multi-scene puppet animation with different presets per scene.","write_action":false,"price_micros":0,"input_schema":null},{"name":"puppet_preset_motion","description":"Build a puppet scene with a preset motion applied.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-27T21:52:37.732Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T21:52:37.667Z","components":{"code":{"score":25,"max":25,"notes":["21 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 46 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"fcp-mcp","version":"0.2.0","found":true,"weeklyDownloads":59,"license":"MIT","dependencyCount":8,"publishedAt":"2026-04-23T16:28:06.064787Z","repositoryUrl":"https://github.com/dreliq9/fcp-mcp"}],"repo":{"found":true,"owner":"dreliq9","repo":"fcp-mcp","archived":false,"pushedAt":"2026-08-13T05:39:57Z","stars":10,"forks":3,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/108751318?v=4","ownerCreatedAt":"2022-07-05T16:06:01Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/108751318?v=4&s=128","source":"github"},"presence":{"stars":10,"forks":3,"downloadsWeek":59,"license":"MIT","lastPushAt":"2026-08-13T05:39:57.000Z","score":29}}}},"grade_history":[],"reviews":[]}