MCP Premiere Pro
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UV_PATH | No | uv binary, if it is not in ~/.local/bin or Homebrew | |
| MEDIA_DIR | No | Folder of the media engine CLI | |
| FFMPEG_PATH | No | ffmpeg binary, if it is not in Homebrew's location | |
| PR_GUIDE_DIR | No | Knowledge-base folder read by pr_guide | |
| PR_MASTER_EPR | No | Media Encoder preset used for the ProRes master | |
| MCP_QT_GAMMA_LUT | No | The QT Gamma Compensation .cube applied to H.264 deliverables | |
| PREMIERE_TEMP_DIR | No | Bridge folder shared with the CEP panel (default /tmp/premiere-mcp-bridge) | /tmp/premiere-mcp-bridge |
| MCP_ADOBE_BRIDGE_DIR | No | Handoff folder shared with the After Effects MCP |
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 | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_project_itemsA | Lists all media items, bins, and assets in the current Premiere Pro project. Use this to discover available media before performing operations. |
| list_sequencesB | Lists all sequences in the current Premiere Pro project with their IDs, names, and basic properties. |
| list_sequence_tracksB | Lists all video and audio tracks in a specific sequence with their properties and clips. |
| get_project_infoB | Gets comprehensive information about the current project including name, path, settings, and status. |
| verify_premiere_connectionA | Read-only readiness check for the live CEP bridge and Premiere Pro host. Run this before an editing workflow to confirm the bridge responds and report the Premiere version, project, and active sequence without changing the project. |
| get_capabilitiesA | Reports the local MCP runtime, installed bridge status, tool/resource/prompt catalog sizes, and supported versus experimental integration surfaces. Set checkConnection to true to run the read-only live Premiere connection check; otherwise no Premiere request is made. |
| validate_project_for_exportA | Runs a non-destructive export readiness audit for the active or requested sequence. Checks timeline content, offline media, missing export preset/output folder inputs, gaps, markers, and basic audio/video track state before an agent queues an export. |
| get_encoder_presetsA | Discovers readable user Adobe Media Encoder .epr presets from local AME preset folders. Factory preset enumeration is not claimed complete. |
| build_motion_graphics_demoB | Generates clean demo stills, creates a sequence, lays the shots out on the timeline, adds dissolves, and applies subtle scale animation for a polished minimalist ad-style demo. |
| assemble_product_spotA | Builds a production-oriented promo timeline from real media assets. Supports either template defaults or an explicit clipPlan for LLM-directed pacing, transitions, motion, trims, and per-clip effects. |
| build_brand_spot_from_mogrt_and_assetsB | Builds a branded ad assembly from real media assets, supports optional MOGRT overlay, and allows explicit clipPlan control. Default polish is optional so creative direction can come from LLM planning instead of hardcoded passes. |
| create_projectA | Creates a new Adobe Premiere Pro project. Use this when the user wants to start a new video editing project from scratch. |
| open_projectA | Opens an existing Adobe Premiere Pro project from a specified file path. |
| save_projectA | Saves the currently active Adobe Premiere Pro project. |
| save_project_asC | Saves the current project with a new name and location. |
| import_mediaB | Imports a media file (video, audio, image) into the current Premiere Pro project. |
| import_fcp_xmlA | Imports a Final Cut Pro 7 XML (XMEML) file into the current project. Premiere creates a new sequence with the cuts/clips defined in the XML. The import requests Premiere UI suppression, but malformed or unsupported XML can still be rejected by Premiere. Use legacy FCP7 XML, not modern FCPXML 1.x from Final Cut Pro X. |
| import_edlA | Reports that CMX 3600 EDL import is unavailable through this dialog-safe MCP server. Premiere's EDL API opens an interactive sequence/source-media dialog that blocks CEP. Use import_fcp_xml for unattended timeline interchange instead. |
| import_folderA | Imports all media files from a folder into the current Premiere Pro project. |
| create_binB | Creates a new bin (folder) in the project panel to organize media. |
| create_sequenceA | Creates a new sequence from a specific installed .sqpreset file without opening Premiere's New Sequence dialog. For footage-driven edits, prefer create_sequence_from_clips; for an empty copy of an existing sequence, use duplicate_sequence with clearContents=true. |
| duplicate_sequenceA | Creates a copy of an existing sequence with a new name. Set clearContents=true to get an EMPTY copy that inherits the source sequence's exact settings (frame rate, resolution, track layout) — the reliable way to auto-create a correctly-specced blank target, since create_sequence ignores frame rate. |
| delete_sequenceB | Deletes a sequence from the project. |
| add_to_timelineA | Adds a media clip from the project panel to a sequence timeline at a specific track and time. |
| add_to_timeline_batchA | Places MANY clips onto one sequence in a single round-trip — the fast path for rebuilding a whole edit (e.g. a Descript/EDL stringout). Equivalent to calling add_to_timeline (overwrite) once per clip, but ~50x faster because it loops inside one ExtendScript pass instead of one file round-trip per clip. Each clip supports per-clip linkAudio and sourceInPoint/sourceOutPoint (Source-monitor in/out). Returns a per-clip result array so one bad clip does not sink the batch, plus an aggregate status: top-level success is true ONLY when every clip placed; status is "success" | "partial" | "failure" with placed/failed/total counts. |
| remove_from_timelineA | Removes a clip from the timeline. Pass sequenceId when the clip ID came from list_sequence_tracks for a non-active sequence. |
| move_clipA | Moves a clip along the timeline, keeping it on its current track. To move a clip to a different track, use move_clip_to_track: on this Premiere build that is a remove-and-reinsert, which can overwrite whatever occupies the destination and gives the clip a new id, so it is deliberately a separate call rather than an option here. |
| trim_clipA | Adjusts the in and out points of a clip on the timeline, effectively shortening it. |
| split_clipC | Splits a clip at a specific time point, creating two separate clips. |
| razor_timeline_at_timeA | Cuts across multiple tracks in a sequence at an absolute timeline time. If no track arrays are provided, all video and audio tracks are cut. |
| apply_effectA | Applies a visual or audio effect to a clip, identifies the exact newly created component, and verifies parameter readbacks. |
| crop_clipA | Crops a timeline clip using Premiere Pro's built-in Crop video effect. Reuses an existing Crop effect on the clip when present; otherwise adds one. Omitted parameters keep their current/default values. |
| add_transitionB | Adds a transition (e.g., cross dissolve) between two adjacent clips on the timeline. |
| add_transition_to_clipA | Adds a transition to the beginning or end of a single clip. Check status and verified in the result: accepted_unverified means Premiere accepted the command but inspection could not prove the edit, so do not retry automatically. |
| adjust_audio_levelsC | Adjusts the volume (gain) of an audio clip on the timeline. |
| detect_silenceA | Analyzes a media file's audio for silent stretches using ffmpeg's silencedetect filter, run locally via child_process -- NOT via Premiere's scripting API, which has no audio-level/RMS reading capability at all (confirmed: every audio tool in this codebase only writes levels, never reads them). Requires ffmpeg on PATH; returns an explicit error if it is not found rather than failing silently. This is DETECTION ONLY -- it does not cut or modify anything. Use the returned intervals with split_clip/ripple_delete/razor_timeline_at_time if you want to remove the silence. |
| add_audio_keyframesA | Adds keyframes to audio levels for dynamic volume changes. |
| setup_duckingA | High-level wrapper around add_audio_keyframes that builds a ducking curve from a base level + ducking windows. Computes 4 keyframes per window (pre-fade, duck-in, duck-out, post-fade) plus boundary keyframes at clip start/end. Replaces the manual "8 keyframes per video" pattern from Sprint 3. Times are clip-source-time absolute (same convention as add_audio_keyframes). |
| mute_trackB | Mutes or unmutes an entire audio track. |
| add_text_overlayA | Adds a text layer (title) over the video timeline. Requires a MOGRT (.mogrt) template file path. Supports up to 4 text fields (text, text2, text3, text4) — each populates the Nth "AE.ADBE Text" component in the MOGRT (e.g., for Basic Lower Third: text=main title, text2=subtitle). |
| color_correctB | Applies basic color correction adjustments to a video clip. |
| apply_lutB | Applies a Look-Up Table (LUT) to a clip for color grading. |
| export_sequenceB | Renders and exports a sequence to a video file. This is for creating the final video. |
| export_frameB | Exports a single frame from a sequence as an image file. |
| add_markerA | Adds a marker to the specified sequence for navigation or notes. The sequence does not have to be the active one. |
| delete_markerA | Deletes a marker from the specified sequence. The sequence does not have to be the active one. |
| update_markerA | Updates an existing marker's properties in the specified sequence. The sequence does not have to be the active one. |
| list_markersA | Lists all markers in the specified sequence. The sequence does not have to be the active one. |
| add_trackC | Adds a new video or audio track to the sequence. |
| delete_trackA | Deletes a video or audio track from the specified sequence. The sequence does not have to be the active one, but it does have to be open in Premiere: there is no DOM track-deletion API, so this falls through to the QE DOM, which only reaches sequences Premiere has open. A sequence QE cannot address is reported by name rather than deleted from the wrong timeline. Caption track deletion is accepted by the schema but returns an explicit unsupported result because Premiere Pro exposes no caption-track delete/read API to scripting. |
| lock_trackA | Locks or unlocks a track to prevent/allow editing. The sequence does not have to be the active one. |
| toggle_track_visibilityA | Shows or hides a video track by toggling its output (the eye icon) in the specified sequence. The sequence does not have to be the active one. This is track OUTPUT, not track targeting -- use set_target_track for the V1/A1 patch buttons. |
| link_audio_videoA | Links or unlinks audio and video components of a clip. |
| apply_audio_effectC | Applies an audio effect to a clip. |
| apply_audio_effect_to_all_clipsA | Bulk: applies a single audio effect to ALL audio clips of a sequence in one ExtendScript call. Returns per-clip results. Saves N MCP roundtrips when calibrating or applying same chain. |
| duplicate_clipB | Duplicates a clip on the timeline. |
| reverse_clipB | Reverses the playback of a clip. |
| enable_disable_clipB | Enables or disables a clip on the timeline. |
| replace_clipB | Replaces a clip on the timeline with another media item. |
| get_sequence_settingsB | Gets the settings for a sequence (resolution, framerate, etc.). |
| set_sequence_settingsA | Updates sequence settings. Applies width, height, frameRate and pixelAspectRatio, reads the values back afterwards, and reports any field Premiere accepted but did not actually change. Frame size CAN be changed after creation, contrary to an earlier note in this codebase. |
| get_clip_propertiesA | Gets detailed properties of a clip, INCLUDING current Motion values (opacity/scale/rotation/position). Position is returned both normalized (0..1) and in PIXELS ( |
| set_clip_propertiesB | Sets Motion properties of a clip (opacity, scale, rotation, position). |
| set_clip_properties_batchA | Applies Motion properties (opacity/scale/rotation/position) to MANY clips in a single round-trip — the fast path for per-speaker framing across a whole rebuilt edit. ~50x faster than one set_clip_properties call per clip. Returns a per-clip result array; each result carries an |
| add_to_render_queueB | Adds a sequence to the Adobe Media Encoder render queue. |
| get_render_queue_statusA | Reports whether render queue monitoring is available. This currently returns guidance for Adobe Media Encoder rather than live queue telemetry. |
| stabilize_clipB | Applies video stabilization to reduce camera shake. |
| speed_changeC | Changes the playback speed of a clip. |
| get_playhead_positionA | Gets the current playhead (CTI) position in the specified sequence. |
| set_playhead_positionA | Sets the playhead (CTI) position in the specified sequence. |
| get_selected_clipsA | Gets all currently selected clips in the specified sequence. |
| list_available_effectsA | Lists all available video effects in Premiere Pro. |
| list_available_transitionsA | Lists all available video transitions in Premiere Pro. |
| list_available_audio_effectsA | Lists all available audio effects in Premiere Pro. |
| list_available_audio_transitionsB | Lists all available audio transitions in Premiere Pro. |
| add_keyframeB | Adds a keyframe to a clip component parameter at a specific time. |
| remove_keyframeA | Removes a keyframe from a clip component parameter at a specific time. |
| get_keyframesB | Gets all keyframes for a clip component parameter. |
| set_work_areaC | Sets the work area in/out points for a sequence. |
| get_work_areaC | Gets the work area in/out points for a sequence. |
| batch_add_transitionsA | Adds a transition to all clip boundaries on a track. Useful for quickly adding cross dissolves or other transitions between every clip. |
| find_project_item_by_nameB | Searches for project items by name. Useful for finding media files, sequences, or bins. |
| move_item_to_binC | Moves a project item into a different bin (folder). |
| set_active_sequenceC | Sets the active sequence in the project. |
| get_active_sequenceA | Gets information about the currently active sequence. |
| get_clip_at_positionB | Gets the clip at a specific time position on a track. |
| auto_reframe_sequenceB | Automatically reframes a sequence to a new aspect ratio using AI-powered motion tracking. |
| detect_scene_editsB | Detects scene changes in selected clips and optionally adds cuts or markers. |
| create_caption_trackA | Creates a caption track on a sequence from an imported caption/subtitle file (e.g. an .srt imported via import_media). Pass the SRT project item ID directly. |
| read_sequence_captionsA | Reads caption tracks of a sequence, returning each caption clip as { start, end, text } in seconds. IMPORTANT: Premiere Pro exposes no caption-read API in its scripting DOM, so in practice this returns trackCount:0 / captions:[] even when the sequence HAS a working caption track. The response field captionReadSupported:false (plus note) signals this — a 0 result does NOT mean the sequence has no captions. To read cue text/timing, parse the source .srt file directly instead. |
| rename_project_itemA | Renames a project item (sequence, bin, clip) by setting its name. Use this when duplicate_sequence does not propagate the new name to the project panel. |
| create_subclipB | Creates a subclip from a project item with specified in/out points. |
| relink_mediaB | Relinks an offline or moved media file to a new file path. |
| set_color_labelB | Sets the color label on a project item. |
| get_color_labelC | Gets the color label index of a project item. |
| get_metadataB | Gets project metadata and XMP metadata for a project item. |
| set_metadataB | Sets a project metadata value on a project item. |
| get_footage_interpretationA | Gets the footage interpretation settings (frame rate, pixel aspect ratio, field type, etc.) for a project item. |
| set_footage_interpretationB | Sets footage interpretation settings (frame rate, pixel aspect ratio) for a project item. |
| check_offline_mediaA | Checks all project items and returns a list of any that are offline (missing media). |
| export_as_fcp_xmlB | Exports a sequence as Final Cut Pro XML. |
| undoB | Performs an undo operation in Premiere Pro. |
| set_sequence_in_out_pointsA | Sets the in and/or out points on a sequence timeline. |
| get_sequence_in_out_pointsB | Gets the in and out points of a sequence timeline. |
| export_aafB | Exports a sequence as an AAF file for interchange with other editing/audio applications. |
| consolidate_duplicatesC | Consolidates duplicate media items in the project. |
| refresh_mediaA | Refreshes the media for a project item, reloading it from disk. |
| import_sequences_from_projectB | Imports sequences from another Premiere Pro project file. |
| create_subsequenceB | Creates a subsequence from the in/out points of a sequence. |
| import_mogrtB | Imports a Motion Graphics Template (.mogrt) file into a sequence. |
| import_mogrt_from_libraryB | Imports a Motion Graphics Template from a Creative Cloud Library. |
| manage_proxiesB | Checks proxy status, attaches a proxy file, or gets the proxy path for a project item. |
| find_items_by_media_pathD | Premiere Pro expanded operation: find items by media path. |
| get_insertion_binC | Premiere Pro expanded operation: get insertion bin. |
| get_project_panel_metadataD | Premiere Pro expanded operation: get project panel metadata. |
| get_graphics_white_luminanceC | Premiere Pro expanded operation: get graphics white luminance. |
| get_item_infoC | Premiere Pro expanded operation: get item info. |
| is_work_area_enabledD | Premiere Pro expanded operation: is work area enabled. |
| get_xmp_metadataD | Premiere Pro expanded operation: get xmp metadata. |
| get_color_spaceD | Premiere Pro expanded operation: get color space. |
| rename_clipB | Premiere Pro expanded operation: rename clip. |
| get_clip_speedC | Premiere Pro expanded operation: get clip speed. |
| set_clip_selectionD | Premiere Pro expanded operation: set clip selection. |
| link_selectionC | Premiere Pro expanded operation: link selection. |
| unlink_selectionD | Premiere Pro expanded operation: unlink selection. |
| execute_extendscriptD | Premiere Pro expanded operation: execute extendscript. |
| evaluate_expressionD | Premiere Pro expanded operation: evaluate expression. |
| inspect_dom_objectC | Premiere Pro expanded operation: inspect dom object. |
| list_clip_effectsD | Premiere Pro expanded operation: list clip effects. |
| get_sequence_structureC | Premiere Pro expanded operation: get sequence structure. |
| get_premiere_stateC | Premiere Pro expanded operation: get premiere state. |
| get_full_project_overviewC | Premiere Pro expanded operation: get full project overview. |
| get_bin_contentsD | Premiere Pro expanded operation: get bin contents. |
| get_full_sequence_infoC | Premiere Pro expanded operation: get full sequence info. |
| get_full_clip_infoC | Premiere Pro expanded operation: get full clip info. |
| get_project_item_infoC | Premiere Pro expanded operation: get project item info. |
| search_project_itemsC | Premiere Pro expanded operation: search project items. |
| get_timeline_gapsC | Premiere Pro expanded operation: get timeline gaps. |
| get_timeline_summaryC | Premiere Pro expanded operation: get timeline summary. |
| get_offline_mediaD | Premiere Pro expanded operation: get offline media. |
| get_used_media_reportD | Premiere Pro expanded operation: get used media report. |
| select_clips_by_nameD | Premiere Pro expanded operation: select clips by name. |
| select_all_clipsB | Premiere Pro expanded operation: select all clips. |
| deselect_all_clipsB | Premiere Pro expanded operation: deselect all clips. |
| select_clips_in_rangeD | Premiere Pro expanded operation: select clips in range. |
| select_disabled_clipsB | Premiere Pro expanded operation: select disabled clips. |
| open_in_sourceD | Premiere Pro expanded operation: open in source. |
| close_source_monitorC | Premiere Pro expanded operation: close source monitor. |
| close_all_source_clipsC | Premiere Pro expanded operation: close all source clips. |
| set_source_in_outD | Premiere Pro expanded operation: set source in out. |
| insert_from_sourceD | Premiere Pro expanded operation: insert from source. |
| overwrite_from_sourceC | Premiere Pro expanded operation: overwrite from source. |
| get_source_monitor_infoD | Premiere Pro expanded operation: get source monitor info. |
| set_target_trackC | Premiere Pro expanded operation: set target track. |
| get_target_tracksC | Premiere Pro expanded operation: get target tracks. |
| rename_trackC | Premiere Pro expanded operation: rename track. |
| get_track_infoD | Premiere Pro expanded operation: get track info. |
| clear_item_in_outC | Premiere Pro expanded operation: clear item in out. |
| set_item_in_outD | Premiere Pro expanded operation: set item in out. |
| remove_selected_clipsC | Premiere Pro expanded operation: remove selected clips. |
| redoC | Premiere Pro expanded operation: redo. |
| multiple_undoD | Premiere Pro expanded operation: multiple undo. |
| get_version_infoC | Premiere Pro expanded operation: get version info. |
| get_all_project_pathsC | Premiere Pro expanded operation: get all project paths. |
| lift_selectionC | Premiere Pro expanded operation: lift selection. |
| extract_selectionD | Premiere Pro expanded operation: extract selection. |
| get_project_scratch_disksD | Premiere Pro expanded operation: get project scratch disks. |
| get_sequence_countC | Premiere Pro expanded operation: get sequence count. |
| get_total_clip_countB | Premiere Pro expanded operation: get total clip count. |
| match_frameD | Premiere Pro expanded operation: match frame. |
| pingD | Premiere Pro expanded operation: ping. |
| get_workspacesD | Premiere Pro expanded operation: get workspaces. |
| set_workspaceD | Premiere Pro expanded operation: set workspace. |
| play_timelineB | Premiere Pro expanded operation: play timeline. |
| stop_playbackC | Premiere Pro expanded operation: stop playback. |
| play_source_monitorB | Premiere Pro expanded operation: play source monitor. |
| get_source_monitor_positionC | Premiere Pro expanded operation: get source monitor position. |
| close_projectC | Premiere Pro expanded operation: close project. |
| delete_binC | Premiere Pro expanded operation: delete bin. |
| rename_binD | Premiere Pro expanded operation: rename bin. |
| create_smart_binC | Premiere Pro expanded operation: create smart bin. |
| start_batch_encodeD | Premiere Pro expanded operation: start batch encode. |
| add_custom_metadata_fieldD | Premiere Pro expanded operation: add custom metadata field. |
| import_sequencesD | Premiere Pro expanded operation: import sequences. |
| create_bars_and_toneC | Premiere Pro expanded operation: create bars and tone. |
| set_transcode_on_ingestC | Premiere Pro expanded operation: set transcode on ingest. |
| set_project_panel_metadataD | Premiere Pro expanded operation: set project panel metadata. |
| set_graphics_white_luminanceB | Premiere Pro expanded operation: set graphics white luminance. |
| set_scratch_disk_pathC | Premiere Pro expanded operation: set scratch disk path. |
| set_offlineD | Premiere Pro expanded operation: set offline. |
| has_proxyC | Premiere Pro expanded operation: has proxy. |
| detach_proxyD | Premiere Pro expanded operation: detach proxy. |
| set_override_frame_rateC | Premiere Pro expanded operation: set override frame rate. |
| set_override_pixel_aspect_ratioC | Premiere Pro expanded operation: set override pixel aspect ratio. |
| set_scale_to_frame_sizeB | Premiere Pro expanded operation: set scale to frame size. |
| select_itemC | Premiere Pro expanded operation: select item. |
| set_start_timeD | Premiere Pro expanded operation: set start time. |
| unnest_sequenceD | Premiere Pro expanded operation: unnest sequence. |
| create_sequence_from_presetD | Premiere Pro expanded operation: create sequence from preset. |
| attach_custom_propertyD | Premiere Pro expanded operation: attach custom property. |
| get_export_file_extensionD | Premiere Pro expanded operation: get export file extension. |
| remove_effectD | Premiere Pro expanded operation: remove effect. |
| set_xmp_metadataC | Premiere Pro expanded operation: set xmp metadata. |
| capture_frameC | Premiere Pro expanded operation: capture frame. |
| export_omfD | Premiere Pro expanded operation: export omf. |
| encode_project_itemD | Premiere Pro expanded operation: encode project item. |
| encode_fileD | Premiere Pro expanded operation: encode file. |
| ripple_deleteD | Premiere Pro expanded operation: ripple delete. |
| roll_editD | Premiere Pro expanded operation: roll edit. |
| slide_editC | Premiere Pro expanded operation: slide edit. |
| slip_editC | Premiere Pro expanded operation: slip edit. |
| move_clip_to_trackC | Premiere Pro expanded operation: move clip to track. |
| remove_all_effectsD | Premiere Pro expanded operation: remove all effects. |
| set_clip_speed_qeD | Premiere Pro expanded operation: set clip speed qe. |
| set_frame_blendD | Premiere Pro expanded operation: set frame blend. |
| set_time_interpolationC | Premiere Pro expanded operation: set time interpolation. |
| overwrite_clipD | Premiere Pro expanded operation: overwrite clip. |
| create_sequence_from_clipsB | Premiere Pro expanded operation: create sequence from clips. |
| close_sequenceC | Premiere Pro expanded operation: close sequence. |
| export_as_projectC | Premiere Pro expanded operation: export as project. |
| set_zero_pointD | Premiere Pro expanded operation: set zero point. |
| scene_edit_detectionD | Premiere Pro expanded operation: scene edit detection. |
| delete_preview_filesC | Premiere Pro expanded operation: delete preview files. |
| add_tracksC | Premiere Pro expanded operation: add tracks. |
| set_color_valueD | Premiere Pro expanded operation: set color value. |
| get_clip_adjustment_layerC | Premiere Pro expanded operation: get clip adjustment layer. |
| get_linked_itemsD | Premiere Pro expanded operation: get linked items. |
| get_mogrt_componentC | Premiere Pro expanded operation: get mogrt component. |
| get_effect_propertiesC | Premiere Pro expanded operation: get effect properties. |
| set_effect_propertyC | Premiere Pro expanded operation: set effect property. |
| remove_keyframe_rangeC | Premiere Pro expanded operation: remove keyframe range. |
| set_keyframe_interpolationD | Premiere Pro expanded operation: set keyframe interpolation. |
| get_value_at_timeD | Premiere Pro expanded operation: get value at time. |
| select_clips_by_colorB | Premiere Pro expanded operation: select clips by color. |
| invert_selectionC | Premiere Pro expanded operation: invert selection. |
| copy_effects_between_clipsB | Premiere Pro expanded operation: copy effects between clips. |
| copy_effect_valuesD | Premiere Pro expanded operation: copy effect values. |
| replace_clip_mediaC | Premiere Pro expanded operation: replace clip media. |
| batch_apply_effectC | Premiere Pro expanded operation: batch apply effect. |
| remove_effect_by_nameB | Premiere Pro expanded operation: remove effect by name. |
| set_blend_modeD | Premiere Pro expanded operation: set blend mode. |
| set_all_tracks_targetedC | Premiere Pro expanded operation: set all tracks targeted. |
| razor_all_tracksD | Premiere Pro expanded operation: razor all tracks. |
| set_clip_start_timeD | Premiere Pro expanded operation: set clip start time. |
| import_image_sequenceC | Premiere Pro expanded operation: import image sequence. |
| set_clip_positionD | Premiere Pro expanded operation: set clip position. |
| set_clip_scaleC | Premiere Pro expanded operation: set clip scale. |
| set_clip_rotationC | Premiere Pro expanded operation: set clip rotation. |
| set_clip_anchor_pointC | Premiere Pro expanded operation: set clip anchor point. |
| set_clip_opacityD | Premiere Pro expanded operation: set clip opacity. |
| set_clip_volumeC | Premiere Pro expanded operation: set clip volume. |
| set_clip_panD | Premiere Pro expanded operation: set clip pan. |
| batch_rename_clipsD | Premiere Pro expanded operation: batch rename clips. |
| batch_enable_disableD | Premiere Pro expanded operation: batch enable disable. |
| clear_sequence_in_outB | Premiere Pro expanded operation: clear sequence in out. |
| get_qe_clip_infoD | Premiere Pro expanded operation: get qe clip info. |
| set_poster_frameD | Premiere Pro expanded operation: set poster frame. |
| move_items_to_binC | Premiere Pro expanded operation: move items to bin. |
| set_anti_alias_qualityC | Premiere Pro expanded operation: set anti alias quality. |
| set_uniform_scaleD | Premiere Pro expanded operation: set uniform scale. |
| set_scale_width_heightC | Premiere Pro expanded operation: set scale width height. |
| delete_project_itemD | Premiere Pro expanded operation: delete project item. |
| delete_multiple_project_itemsB | Premiere Pro expanded operation: delete multiple project items. |
| add_adjustment_layerC | Premiere Pro expanded operation: add adjustment layer. |
| freeze_frameC | Premiere Pro expanded operation: freeze frame. |
| set_sequence_frame_rateC | Premiere Pro expanded operation: set sequence frame rate. |
| set_sequence_resolutionD | Premiere Pro expanded operation: set sequence resolution. |
| set_sequence_audio_settingsD | Premiere Pro expanded operation: set sequence audio settings. |
| set_sequence_pixel_aspect_ratioC | Premiere Pro expanded operation: set sequence pixel aspect ratio. |
| set_sequence_field_typeD | Premiere Pro expanded operation: set sequence field type. |
| get_unused_mediaC | Premiere Pro expanded operation: get unused media. |
| get_duplicate_mediaD | Premiere Pro expanded operation: get duplicate media. |
| get_clip_linksC | Premiere Pro expanded operation: get clip links. |
| get_sequence_markers_by_typeC | Premiere Pro expanded operation: get sequence markers by type. |
| get_clip_markersD | Premiere Pro expanded operation: get clip markers. |
| add_marker_to_project_itemA | Premiere Pro expanded operation: add marker to project item. |
| set_sequence_display_formatB | Premiere Pro expanded operation: set sequence display format. |
| get_clip_at_playheadC | Premiere Pro expanded operation: get clip at playhead. |
| get_next_edit_pointC | Premiere Pro expanded operation: get next edit point. |
| move_playhead_to_editB | Premiere Pro expanded operation: move playhead to edit. |
| set_project_scratch_diskC | Premiere Pro expanded operation: set project scratch disk. |
| nest_clipsC | Premiere Pro expanded operation: nest clips. |
| consolidate_and_transferD | Premiere Pro expanded operation: consolidate and transfer. |
| compare_framesA | Scriptable Comparison View: exports a reference frame and a target frame (same or different sequences) and writes them side by side into one image, with skin/midtone color measurements for both. Use before and after match_color. |
| measure_frame_colorB | Exports a sequence frame and returns luma (Y) and R/G, B/G ratios of skin tones (or a given region / midtones). |
| match_colorA | Scriptable Apply Match. Matches a target clip to a reference clip by iteratively adjusting Lumetri exposure, temperature and tint (on the clip itself or on the adjustment layer above it) until skin/midtone luma and warmth match. Returns the measurement log. |
| build_scene_adjustment_layersA | Creates one adjustment layer per scene above the source track: consecutive clips from the same source share one layer, a different source/camera gets its own. Each layer gets a Lumetri with (optionally) the clip grade transferred + a base look, and is named after its source so it can be fine-tuned per scene. |
| get_lumetri_basicC | Reads Lumetri Basic Correction values of a clip. |
| set_lumetri_basicA | Sets (or offsets) Lumetri Basic Correction values of a clip; adds Lumetri if missing. |
| rough_cut_by_cuesA | Rough-cut a folder of raw footage by the slate cues called on set ("3, 2, 1", "action", "diễn", "đi" to start; "cắt", "cut", "ok", "được rồi" to end), heard by Whisper in each file's own audio through the MCP Adobe media engine. One source can give many takes. Builds a NEW sequence with every take back to back, a→z by file then time, so the editor can reorder them; each take gets a sequence marker (take id, cue heard, dialogue, confidence) and low-confidence takes a red marker. Files with no cue are kept whole (unless dropNoCue). Analysis is cached next to the footage (.media/); a long first run returns status "running" — call again with the same arguments to pick up the result. |
| describe_sourcesA | Describe every shot (file) in a footage folder through the media engine: one-line description (in Vietnamese), shot size, setting, content labels, sharpness, exposure, shake, faces, a beauty score. mode "fast" needs no download; "deep" adds a local vision model (Qwen3.5 2B MLX) for natural sentences. With writeToProject, the description goes into each imported clip's Comment column and the quality numbers into Log Note, so they can be searched and sorted in the Project panel. |
| find_shotsA | Find shots by what is in the picture, in English or Vietnamese ("close-up of a face", "wide shot of the restaurant", "waiter in a red shirt", or "cô gái cầm menu"), through the media engine (SigLIP 2, local): every second of each clip's proxy is compared with the words, the best stretches come back ranked with in/out and a score. Each hit becomes a marker on the source clip in the Project panel (open the clip in the Source Monitor to see it; searching the same words again replaces those markers). With placeOnTimeline, also builds a sequence "Tìm: " with the hits in rank order. Uses the clips kept in the project with their proxies, like describe_sources. The first search on a folder reads the images (about 30 s for 5 minutes of footage); later searches take a few seconds. |
| send_to_after_effectsA | Send one timeline clip to After Effects for effects work: records the clip (media file, source in/out, handles, timeline position, sequence size and fps, Motion position/scale/rotation) in a handoff JSON and returns its id. Then call the After Effects MCP: ae_do bridge.from_premiere { handoff: } builds a matching comp (same size, fps, framing, handles marked); after the effect work, ae_do bridge.to_premiere { handoff } renders it; finally return_from_after_effects { handoff } puts the render back on the timeline. |
| return_from_after_effectsA | Bring an After Effects render back to the timeline: imports the file rendered by bridge.to_premiere (or refreshes it when it was already brought back once — re-render in AE and call again), lays it on the track above the original at the same time and length (handles hidden but kept for trimming), names it "AE · ", and disables the original underneath (re-enable it to compare). Nothing is deleted. |
| create_aspect_versionsA | Make square and vertical versions of a finished horizontal edit, the way an editor does it by hand: duplicates the sequence as " 1x1" / " 9x16" (cuts, order, tracks, audio, titles unchanged), changes the frame, and re-frames every video clip from the horizontal version as already adjusted (media |
| add_color_layerA | One colour layer over the whole sequence or a time range (a global look). For per-scene grading use add_scene_color_layers. Lays a colour-grading adjustment layer over the whole sequence (or a time range) on its own top track, with Lumetri Color ready to grade — the colour layer an editor puts above the cut. Uses the project's Adjustment Layer item, importing one from Mako's template when the project has none (Premiere has no scripting call that creates one). Optional Lumetri Basic values (temperature, tint, exposure, contrast, highlights, shadows, whites, blacks, saturation, vibrance) and a Lumetri preset/LUT look. |
| makoA | Run a Mako (Basics Studio panel, installed) shortcut on the open sequence, on clips you select first: adjustment_layer (mode "" over the selection/sequence, "clips" one per clip, "cuts" short ones on every cut), staircase / unstaircase (spread clips onto stacked tracks and back), freeze_frame (mode "" whole selected clips, "hold" holdSeconds from the playhead), fit_frame (mode "" fit, "fill" fill the frame), nest / unnest (rebuilds Nest with effects, transitions and markers kept), clear_effects (resetMotion), quality_check (marks gaps red, offline media orange, disabled clips yellow, 1–2 frame leftovers purple; fix closes gaps; mode "clear" removes the markers), delete_empty_tracks, new_sequence, transparency_grid. select: "all" (every clip), "none" (leave the selection as it is) or { track, clips: [indexes] } / { from, to } in seconds on video tracks. Requires the Mako panel to have loaded once in this Premiere session. |
| add_color_matteA | Put a solid colour background on the timeline without Premiere's colour picker (which blocks scripting): white or black by default — the plate a logo sits on — or any #RRGGBB. Made at the sequence frame size, saved next to the project in "MCP mattes" (reused, never in a temp folder that could go offline), imported into a "Nền màu" bin and placed on the given track for the given span (default: the whole sequence on |
| pr_guideA | Premiere knowledge base (folder Premiere/Kiến thức — drop .md files there, no build): which transitions exist and when to use them (Film Impact is built into Premiere 2026), which plugins/panels MCP can drive (Mako) and which are manual (Animation/Premiere Composer), export rules. Call with no topic to list topics, then with a topic name to read it. Read it before choosing transitions or plugins. |
| export_deliverablesA | Export a sequence for delivery: one ProRes 422 HQ master straight from Premiere (exportAsMediaDirect with the built-in "Match Source - Apple ProRes 422 HQ" preset), then every requested deliverable from it — youtube_4k, youtube_1080, reels (1080x1920), feed_4x5, square, led (screen width/height), review (720p, watermark + timecode), master, png_alpha — with sizes, bitrates and -14 LUFS loudness from pr_guide "Xuất file". Files are named " V" (next free version) and logged with the measured LUFS in "Kết quả xuất.md" (export log). Export the 9x16 / 1x1 sequences for vertical and square (create_aspect_versions) — another aspect is letterboxed. |
| export_statusA | Progress of an export_deliverables job: waiting for the Media Encoder master, encoding (which deliverable), done or failed, with the finished files and their measured LUFS. |
| add_scene_color_layersA | Grade per scene: one adjustment layer with Lumetri Color per SOURCE on a new top track, named "Màu ". Neighbouring clips from the same source share one layer; the same source used again elsewhere on the timeline gets a layer with the same name and the same Lumetri values (keep them identical with sync_color_layers after grading one); a different source always gets its own layer. Titles/adjustment layers/graphics are skipped. Optional Lumetri Basic values for all (basic) or per source file name (perSource). |
| sync_color_layersA | Make every colour layer of the same scene identical again after grading one of them: for each "Màu " name, copies ALL Lumetri Color parameters (basic, creative, curves, wheels, HSL, vignette) from the master instance to the other instances of that name. master: a clip name + index or the instance under the playhead; default the first instance of each name. Different sources are never touched by each other. |
| create_proxiesA | FIRST STEP of a job: make edit proxies for every video in a footage folder so Premiere (and the media engine) work on light files instead of 4K. ProRes Proxy with the Mac hardware encoder (VideoToolbox, cool and fast), half resolution by default (4K → 1080p), same fps, duration and audio channels so Premiere accepts them; saved as "/Proxies/_Proxy.mov", one file at a time at low priority so the machine stays cool. Existing proxies are reused. When done, attaches each proxy to its clip in the open project (Toggle Proxies in Premiere switches). Runs in the background: check with proxy_status. |
| proxy_statusB | Progress of a create_proxies job: files done, current file, attached proxies, failures. |
| checkpoint_projectA | Save the project, then copy the .prproj into " checkpoints/ .prproj" next to it. Premiere has no undo group for scripts, so take one before any large automated change (rough cut, aspect versions, colour layers); restore by opening the copy. Lists existing checkpoints with list: true. |
| organize_project_binsA | Tidy the Project panel the way an editor keeps it: bins "01 Footage" (video), "02 Audio" (music, VO, SFX), "03 Graphics" (images, PSD, AI, MOGRT), "04 Sequences", "05 Adjustment" (adjustment layers, mattes), "06 Proxies & renders" (AE renders, exports). Only moves items that sit loose in the root (dryRun to preview); never deletes or renames media. |
| qc_before_exportA | Check a sequence before delivery and report problems with their timecode: offline media, disabled clips, gaps (black frames), 1–2 frame leftover clips, clips still pointing at proxies? (reminder to toggle proxies off), red "low confidence" markers left from the rough cut, empty tracks, audio clips muted, sequence frame vs the intended delivery. Read-only; fix with mako (quality_check fix closes gaps), or by hand. |
| transcribe_to_captionsA | Make captions for a cut from what the media engine already heard (word timings in /.media, written by rough_cut_by_cues or describe_sources): for every clip on the source track, the words inside its in/out are placed at its timeline position, split into lines of at most maxChars, written to "/Phụ đề/.srt" and added as a caption track. Spoken language is whatever was heard (Vietnamese, English…); slate calls outside the takes are not included. Edit the text in Premiere's Text panel afterwards. |
| detect_beatsA | Find the beat of the music: tempo (BPM), every beat and the first beat of each bar. Give a file, or let it read the music already on the timeline (audio-only clips that are not named like a voiceover) and drop cyan markers "Nhịp 1" (bar 1) on each bar (markers: "beats" for every beat, "none" for no markers). Results are cached in /.media. Check by ear: tempo can come out at half or double on sparse music. |
| cut_to_beatsA | Re-time a cut to the music: a copy of the sequence (" (theo nhịp)", i.e. "on the beat") where every clip on the video track keeps its in point and its end moves to the nearest beat (every: 1 = each beat, 2 = every other, 4 = each bar), so all cuts land on the beat. Motion (scale/position/rotation) is carried over; music and other tracks stay. The original sequence is not changed. dryRun shows the plan first. |
| select_best_takesA | Rank the takes of a footage folder from what the media engine heard: ended on a cut call, cue confidence, how clearly the lines were spoken, retake calls ("otra vez", "again", "lại đi"…) in or right after the take, very short takes, later takes slightly preferred. Returns the ranking with reasons per file (groupBy "file") or overall ("none"); with sequenceName it also builds a selects sequence of the best take(s) with the score on each marker. Uses the same cache as rough_cut_by_cues. Always check the picks by eye. |
| place_voiceoverA | Put a voiceover file on the timeline (at the playhead or at seconds) on the first free audio track and duck the music under it: Volume keyframes only where the voice actually speaks (silences longer than 0.35 s let the music back up), with short fades. Music = audio-only clips on other tracks, or the tracks in duckTracks. Keyframes stay editable in Effect Controls. To record a voice first, use a text-to-speech tool or skill. |
| normalize_loudnessA | Even out clip loudness on the timeline: each audio clip is measured (LUFS, only the part used) and its Volume level set so dialogue and voiceover sit at target (default -16) and music sits under the voice (musicTarget, default -26; music alone goes to target). Clips with ducking keyframes keep their shape, the whole curve is shifted. Gains are capped at +15 dB. dryRun shows the measurements first. The final mix is still normalised per platform by export_deliverables. |
| review_cutA | Look over a cut like an editor before showing it: shot count and pacing (average, shortest, longest, first shot for the hook), flash frames, shots held too long (maxShot, default 5 s), gaps, jump cuts inside the same shot, footage used twice, cuts off the music beat (when music is on the timeline), length against targetSeconds. Drops orange "Review:" markers (old ones replaced) and makes a contact sheet of one frame per shot (from proxies when present) in "/Review//contact sheet.jpg". |
| review_unused_mediaA | After delivery: find everything the job no longer uses, without changing anything. Usage is read from the timelines (nested sequences and multicam included): project items on no timeline (video, audio, stills, mattes, captions…), and on disk the unused imported files, their proxies, and media files sitting in the source folders that were never used. Delivery/render folders (Edited, Export, Xuất file, Render, Final, Bàn giao…) and the files in use with their proxies are always kept. keepSequences: only these sequences count as the job (the others are listed for removal too). Writes a report in ~/Library/Application Support/MCP Adobe/Don dep and returns a summary for the user to check. Then clean_unused_media. |
| clean_unused_mediaA | Act on a review_unused_media report after the user has read it: saves a checkpoint of the project, checks usage again right now (anything used since the report is skipped), removes the unused items from the Premiere project (plus bins left empty by it) and saves, then moves the unused files to the macOS Trash with Finder (Put Back works; nothing is deleted for good — the user empties the Trash). confirm must be true. Needs Finder automation permission the first time. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create_video_project | Guide to create a new video project from scratch |
| edit_music_video | Workflow for editing a music video with beat synchronization |
| color_grade_footage | Step-by-step color grading workflow |
| multicam_editing | Guide for multicam editing workflow |
| podcast_editing | Workflow for editing podcast episodes |
| social_media_content | Create content optimized for social media platforms |
| documentary_editing | Workflow for documentary film editing |
| commercial_editing | Guide for editing commercial advertisements |
| optimize_workflow | Tips for optimizing Premiere Pro workflow and performance |
| audio_cleanup | Guide for cleaning up and enhancing audio |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Current Project Information | Information about the currently open Premiere Pro project |
| Project Sequences | List of all sequences in the current project |
| Project Media | List of all media items in the current project |
| Project Bins | Organizational structure of bins in the current project |
| Timeline Clips | All clips currently on the timeline |
| Timeline Tracks | Information about video and audio tracks |
| Timeline Markers | Markers and their positions on the timeline |
| Available Effects | List of all available effects in Premiere Pro |
| Applied Effects | Effects currently applied to clips |
| Available Transitions | List of all available transitions in Premiere Pro |
| Export Presets | Available export presets and their settings |
| Project Metadata | Metadata information for the current project |
| Premiere Operating Instructions | Attach this before editing to give the model workflow and safety guidance for using the Premiere MCP server |
TDQS
Scored across 317 tools
With 317 tools, many overlap heavily: create_sequence, create_sequence_from_clips, create_sequence_from_preset, and duplicate_sequence all create sequences; add_transition, add_transition_to_clip, and batch_add_transitions all add transitions; remove_effect, remove_effect_by_name, and remove_all_effects overlap. Numerous one-line 'expanded operation' tools and get/full/get_properties variants make boundaries hard to infer.
Most names are snake_case, but the verb pattern is inconsistent: set_/get_/list_/add_ mix with noun-only names like mako, pr_guide, checkpoint_project, and qc_before_export. The expanded-operation names are readable but sometimes vague, making the set feel mixed rather than systematically named.
317 tools is an extreme mismatch for any single MCP server surface and far exceeds typical well-scoped ranges. The set includes many low-level, aliased, batch, high-level workflow, and expanded-operation tools that could be consolidated.
The surface covers project/sequence/clip CRUD, media import and bins, effects, transitions, audio keyframes/ducking, captions, markers, proxies, color correction, exports, review, and After Effects handoff. Despite some explicitly unsupported operations, the overall Premiere automation lifecycle is exceptionally complete.