Premiere Pro MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | WebSocket port for CEP bridge. Default is 8097. | 8097 |
| elevenlabs_api_key | No | ElevenLabs API key for AI voiceover. | |
| elevenlabs_default_model | No | TTS model. Default is eleven_multilingual_v2. | eleven_multilingual_v2 |
| elevenlabs_default_voice_id | No | Default voice (Rachel). Default is 21m00Tcm4TlvDq8ikWAM. | 21m00Tcm4TlvDq8ikWAM |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_connection_statusB | Check if Premiere Pro is connected to the MCP bridge |
| get_project_infoA | Get information about the currently open Premiere Pro project (name, path, sequences count, items count, scratch disk paths) |
| save_projectC | Save the current Premiere Pro project |
| save_project_asC | Save the current project to a new location |
| open_projectC | Open an existing Premiere Pro project |
| close_projectC | Close the current project (with optional save) |
| import_mediaC | Import media files into the project |
| import_sequencesC | Import sequences from another Premiere Pro project |
| get_project_itemsB | List all items (clips, bins, sequences) in the project panel |
| get_project_item_infoA | Get detailed info about a specific project item (duration, frame rate, codec, dimensions, media path, etc.) |
| create_binC | Create a new bin (folder) in the project panel |
| rename_project_itemB | Rename a project item (clip, bin, sequence) |
| delete_project_itemsC | Delete project items from the project panel |
| move_project_itemC | Move a project item to a different bin |
| set_project_item_in_outB | Set in and out points on a project item (source clip) |
| clear_project_item_in_outC | Clear in/out points on a project item |
| create_proxyC | Create proxy media for a project item |
| attach_proxyB | Attach existing proxy media to a project item |
| toggle_proxy_modeB | Toggle between proxy and full-resolution media globally |
| refresh_mediaB | Refresh/relink media for a project item (useful after media files are updated on disk) |
| find_project_itemsC | Search project items by name pattern |
| set_project_settingsC | Modify project settings (scratch disks, etc.) |
| create_sub_clipC | Create a sub-clip from a project item with specific in/out points |
| relink_mediaB | Relink a project item to a different media file on disk |
| import_ae_compsC | Import After Effects compositions into the project |
| consolidate_duplicatesC | Consolidate duplicate media in the project |
| get_project_item_type_infoB | Check if a project item is an adjustment layer, sequence, merged clip, or multicam clip |
| set_scale_to_frame_sizeB | Enable 'Scale to Frame Size' on a project item |
| flush_cacheA | Flush the media cache (useful to free disk space or resolve cache issues) |
| get_sequencesB | List all sequences in the current project with their properties |
| get_active_sequenceA | Get detailed info about the currently active sequence (tracks, position, settings) |
| set_active_sequenceB | Set a sequence as the active/open sequence by name or index |
| create_sequenceC | Create a new sequence |
| create_sequence_from_clipB | Create a new sequence matching a clip's settings (resolution, frame rate, etc.) |
| clone_sequenceC | Duplicate an existing sequence |
| delete_sequenceC | Delete a sequence from the project |
| get_sequence_settingsA | Get detailed settings of the active sequence (frame rate, resolution, pixel aspect ratio, field type, etc.) |
| set_sequence_in_outB | Set in and out points on the active sequence (for export range, etc.) |
| clear_sequence_in_outB | Clear in and out points on the active sequence |
| nest_clipsC | Nest selected clips into a new nested sequence |
| add_tracksC | Add new video or audio tracks to the active sequence |
| remove_trackB | Remove a track from the active sequence |
| get_track_infoB | Get detailed info about a specific track (name, locked, muted, clips count, target status) |
| set_track_mutedB | Mute or unmute a track |
| set_track_lockedC | Lock or unlock a track |
| rename_trackC | Rename a track |
| auto_reframe_sequenceC | Auto-reframe the active sequence to a new aspect ratio (AI-powered reframing) |
| scene_edit_detectionC | Detect scene changes/cuts in selected clips and optionally apply cuts, create markers, or create subclips |
| create_subsequenceB | Create a subsequence from the in/out range of the active sequence |
| set_work_areaB | Set the work area bar in/out points on the active sequence |
| get_work_areaB | Get the work area bar in/out points of the active sequence |
| get_selectionA | Get all currently selected clips on the timeline |
| get_timeline_clipsB | Get all clips on the active sequence timeline with their properties |
| add_clip_to_timelineC | Add a project item (clip) to the timeline via insert edit |
| overwrite_clip_to_timelineA | Add a clip to the timeline via overwrite edit (replaces existing content) |
| set_clip_positionC | Move a clip to a new position on the timeline |
| set_clip_in_outC | Trim a clip by setting its source in/out points |
| remove_clipB | Remove a clip from the timeline (lift edit) |
| razor_clipB | Split/razor a clip at a specific time |
| razor_all_tracksA | Split all clips on all tracks at a specific time (like pressing C at playhead) |
| set_clip_speedB | Change the speed/duration of a clip (speed ramp, slow-mo, etc.) |
| enable_disable_clipC | Enable or disable a clip on the timeline |
| set_timeline_clip_labelC | Set the label color of a clip on the timeline |
| rename_clipC | Rename a clip on the timeline |
| link_clipsC | Link video and audio clips together |
| unlink_clipB | Unlink a clip from its linked audio/video counterpart |
| get_clip_infoB | Get detailed information about a specific clip on the timeline (effects, properties, linked clips, etc.) |
| add_adjustment_layerC | Add an adjustment layer to a video track |
| select_clipsC | Select specific clips on the timeline (for use with other operations) |
| deselect_allA | Deselect all clips on the timeline |
| slip_clipB | Slip a clip (change its source in/out without moving it on the timeline) |
| slide_clipB | Slide a clip (move it between adjacent clips, adjusting their in/out points) |
| ripple_deleteA | Ripple delete a clip (remove and close the gap) |
| move_clip_to_trackC | Move a clip to a different track |
| duplicate_clipC | Duplicate a clip on the timeline |
| get_clip_speedA | Get the playback speed and reverse status of a clip |
| freeze_frameC | Apply a freeze frame (hold frame) at a specific point in a clip |
| apply_effectC | Apply a video or audio effect to a clip on the timeline |
| remove_effectC | Remove an effect from a clip |
| get_clip_effectsA | List all effects (components) applied to a clip, with their properties |
| set_effect_propertyC | Set a property value on an effect applied to a clip |
| get_effect_propertyC | Get the current value of a specific effect property |
| set_effect_enabledB | Enable or disable (bypass) an effect on a clip |
| get_video_effects_listB | Get a list of all available video effects in Premiere Pro |
| get_audio_effects_listA | Get a list of all available audio effects in Premiere Pro |
| get_video_transitions_listA | Get a list of all available video transitions |
| get_audio_transitions_listB | Get a list of all available audio transitions/crossfades |
| apply_transitionB | Apply a video or audio transition between two adjacent clips or at a clip edge |
| remove_transitionC | Remove a transition from a clip edge |
| set_default_transitionC | Set the default video or audio transition |
| add_keyframeC | Add a keyframe to an effect property at a specific time |
| remove_keyframeC | Remove a keyframe from an effect property |
| get_keyframesC | Get all keyframes for a specific effect property |
| set_keyframe_interpolationC | Set the interpolation type for a keyframe (linear, bezier, hold, etc.) |
| set_clip_transformC | Set the motion/transform properties of a video clip (position, scale, rotation, opacity, anchor point) |
| get_clip_transformB | Get the current motion/transform properties of a video clip |
| add_markerB | Add a marker to the active sequence |
| get_markersA | Get all markers on the active sequence |
| remove_markerB | Remove a specific marker from the active sequence by index |
| update_markerC | Update properties of an existing marker |
| clear_all_markersA | Remove all markers from the active sequence |
| add_clip_markerC | Add a marker to a specific clip on the timeline |
| get_clip_markersB | Get all markers on a specific clip |
| add_project_item_markerA | Add a marker to a project item (source clip, not timeline) |
| set_clip_volumeA | Set the audio volume (gain) of a clip in decibels |
| get_clip_volumeB | Get the current audio volume (gain) of a clip |
| set_clip_muteB | Mute or unmute a specific audio clip |
| set_audio_channel_mappingC | Set the audio channel mapping for a project item (mono, stereo, 5.1, etc.) |
| get_audio_channel_mappingC | Get the audio channel mapping of a project item |
| set_track_volumeB | Set the volume level of an entire audio track |
| set_track_panC | Set the pan position of an audio track |
| solo_trackB | Solo or unsolo an audio track |
| add_audio_keyframeB | Add an audio volume keyframe to a clip at a specific time |
| apply_audio_crossfadeB | Apply an audio crossfade between two adjacent clips |
| export_sequenceC | Export/render the active sequence via Adobe Media Encoder |
| export_frameB | Export a single frame as an image (JPEG, PNG, TIFF, etc.) |
| export_aafB | Export the active sequence as an AAF file (for Pro Tools, etc.) |
| export_omfC | Export the active sequence as an OMF file |
| export_edlC | Export the active sequence as an EDL file |
| export_final_cut_xmlC | Export the active sequence as Final Cut Pro XML |
| get_encoder_presetsA | List available Adobe Media Encoder presets for export |
| render_sequence_previewB | Render preview files for the active sequence (or a range) |
| export_directA | Export/render the active sequence directly (synchronous, blocks Premiere until done - use for short sequences) |
| get_clip_metadataC | Get all metadata (XMP) properties of a project item |
| set_clip_metadataB | Set a metadata (XMP) property on a project item |
| get_xmp_metadataB | Get the raw XMP metadata XML of a project item |
| set_xmp_metadataC | Set raw XMP metadata XML on a project item |
| get_file_metadataC | Get technical file metadata (codec, resolution, frame rate, duration, file size, etc.) |
| set_clip_descriptionB | Set the description/notes for a project item |
| set_project_item_labelC | Set the label color on a project item |
| get_clip_color_spaceC | Get the color space information of a project item |
| set_override_frame_rateB | Override the interpreted frame rate of a project item |
| set_override_pixel_aspect_ratioC | Override the pixel aspect ratio of a project item |
| get_caption_tracksA | Get all caption/subtitle tracks on the active sequence |
| add_caption_trackB | Add a new caption/subtitle track to the active sequence |
| add_captionC | Add a caption/subtitle segment to a caption track |
| get_captionsC | Get all caption segments from a caption track |
| update_captionA | Update the text or timing of an existing caption segment |
| remove_captionB | Remove a caption segment |
| import_captionsC | Import captions from an SRT, SCC, or MCC file |
| export_captionsC | Export captions to a file (SRT, SCC, MCC, etc.) |
| transcribe_sequenceB | Start automatic speech-to-text transcription of the active sequence (Premiere Pro 2021+) |
| import_mogrtB | Import a Motion Graphics Template (.mogrt) file into the project |
| add_mogrt_to_timelineB | Add a Motion Graphics Template (.mogrt) to the timeline |
| get_mogrt_propertiesB | Get the editable properties of a Motion Graphics clip on the timeline |
| set_mogrt_propertyC | Set an editable property on a Motion Graphics clip (text, colors, etc.) |
| add_text_graphicC | Add a text graphic (Essential Graphics) to the timeline |
| add_color_matteC | Add a color matte (solid color) to the timeline |
| add_bars_and_toneC | Add color bars and tone to the timeline |
| add_black_videoC | Add black video (slug) to the timeline |
| add_universal_counting_leaderC | Add a universal counting leader to the timeline |
| add_tiktok_captionB | Add a TikTok-style text caption to the timeline. Uses built-in Premiere Pro title MOGRTs. Great for adding big bold text overlays, word highlights, or captions. |
| add_caption_sequenceB | Add multiple timed text captions in sequence — perfect for word-by-word TikTok-style captions, lyrics sync, or subtitle-like overlays. Each caption has its own text, start time, and duration. |
| style_text_graphicB | Modify the text, position, scale, and opacity of an existing text/graphic clip on the timeline |
| get_available_mogrtsA | List the built-in MOGRT text templates available for captions and titles |
| set_playheadB | Set the playhead (CTI) position on the active sequence |
| get_playheadB | Get the current playhead position |
| playB | Start playback of the active sequence |
| stopA | Stop playback of the active sequence |
| step_forwardB | Step forward by a number of frames |
| step_backwardB | Step backward by a number of frames |
| go_to_in_pointA | Move the playhead to the sequence in point |
| go_to_out_pointA | Move the playhead to the sequence out point |
| go_to_startB | Move the playhead to the start of the sequence |
| go_to_endB | Move the playhead to the end of the sequence |
| go_to_next_editA | Move the playhead to the next edit point (cut) on the timeline |
| go_to_previous_editA | Move the playhead to the previous edit point (cut) on the timeline |
| open_in_source_monitorC | Open a project item in the Source Monitor |
| get_source_monitor_clipB | Get info about the clip currently loaded in the Source Monitor |
| set_source_in_outB | Set in and out points on the clip in the Source Monitor |
| set_workspaceB | Switch to a specific workspace layout |
| set_label_defaultsD | Get the current zoom level and visible range of the timeline |
| execute_extendscriptB | Execute arbitrary ExtendScript code in Premiere Pro. Use for operations not covered by other tools. Returns the result as JSON. |
| execute_qe_scriptB | Execute ExtendScript code using the QE (Quantum Engine) DOM. Enables access to internal Premiere functions not in the public API. |
| get_app_versionA | Get the Premiere Pro application version and build info |
| undoA | Undo the last action in Premiere Pro |
| redoA | Redo the last undone action |
| elevenlabs_list_voicesA | List available ElevenLabs voices. Requires ELEVENLABS_API_KEY environment variable. |
| elevenlabs_generate_speechA | Generate speech audio from text using ElevenLabs AI. Saves the audio file and optionally imports it into Premiere Pro and places it on the timeline. Requires ELEVENLABS_API_KEY environment variable. |
| elevenlabs_generate_captions_voiceB | Generate AI voiceover for multiple caption texts. Creates individual audio files for each caption and optionally places them on the timeline at the correct times. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 180 tools
Most tools are context-specific, but with 180 tools there is meaningful overlap: export_sequence vs export_direct, several text/caption/MOGRT insertion tools, and multiple in/out setters across project items, source monitor, sequences, and work areas. Descriptions usually clarify the intended context, but an agent can still hesitate among several plausible choices.
The surface is overwhelmingly snake_case and mostly follows a verb_noun pattern (get_clip_info, add_marker, remove_effect). There are minor deviations like razor_clip, slip_clip, play, stop, and go_to_* forms, but the convention remains readable and predictable overall.
180 tools is far beyond a manageable set for a single MCP server and creates severe discoverability and selection overhead. Even for a complex domain like video editing, this should be decomposed into smaller focused servers or heavily consolidated.
The surface is extremely comprehensive for Premiere Pro: project/media management, sequences, timeline editing, effects, audio, markers, captions, MOGRTs, export formats, playback, metadata, proxies, and an ExtendScript escape hatch are all covered. There are few obvious lifecycle gaps for core editing workflows.