Skip to main content
Glama
Premiere Pro MCP Server

Premiere Pro MCP Server

by Siddhant704

Premiere Pro MCP Server

Lets Claude (or any MCP client) drive Adobe Premiere Pro directly — import media, build and edit timelines, add markers, apply effects/transitions, and export — through natural-language requests.

Why this needs a "bridge" instead of a normal API

Premiere Pro doesn't expose a network API. The only supported way to script it is Adobe's CEP (Common Extensibility Platform) panel system, which runs a small web view inside Premiere and can execute ExtendScript (an ES3-era JavaScript dialect) against Premiere's scripting DOM. So the pieces are:

Claude Desktop ──stdio──▶ MCP Server (Node, this repo's src/)
                                │
                          WebSocket :8085
                                │
                    CEP Panel (inside Premiere, Node-enabled)
                                │
                     CSInterface.evalScript()
                                │
                  ExtendScript (.jsx) ──▶ Premiere Pro DOM / QE DOM
  • MCP server (src/) — a normal Node/TypeScript process that Claude Desktop launches over stdio. It exposes ~25 tools (import, timeline editing, markers, effects, transitions, export, plus a raw ExtendScript escape hatch).

  • CEP panel (cep-plugin/) — loads inside Premiere via Window > Extensions > MCP Bridge. With Node integration enabled it runs a small WebSocket server that the MCP server connects to, dispatches each request into ExtendScript via CSInterface.evalScript(), and returns the JSON result.

  • ExtendScript libraries (cep-plugin/jsx/) — the actual Premiere automation code: project/sequence queries, timeline manipulation, markers, effects (via the undocumented but widely-used QE DOM), and export.

Related MCP server: Premiere-MCP-BuildX-Exclusive-V3

Requirements

  • Windows, Adobe Premiere Pro (2020+ recommended)

  • Node.js 18+

  • Claude Desktop (or another MCP-compatible client)

Install

install.bat

This will:

  1. Enable CEP debug mode in the registry (required — this panel isn't code-signed by Adobe, so Premiere won't load it otherwise).

  2. Symlink cep-plugin/ into %APPDATA%\Adobe\CEP\extensions\premiere-mcp-bridge.

  3. npm install the CEP panel's dependency (ws).

  4. npm install && npm run build the MCP server.

Then:

  1. Fully quit and reopen Premiere Pro (extensions are only scanned at launch).

  2. In Premiere: Window > Extensions > MCP Bridge. The panel should show "Waiting for MCP server…".

  3. Add the server to your Claude Desktop config (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "premiere-pro": {
      "command": "node",
      "args": ["C:/absolute/path/to/adobe-premiere-mcp/dist/server.js"]
    }
  }
}
  1. Restart Claude Desktop. Open the MCP Bridge panel in Premiere before your Claude session so the WebSocket connection is live.

Tools

Category

Tools

Project

get_project_info, list_project_items, import_media, create_sequence, set_active_sequence, save_project

Timeline

get_timeline_items, insert_clip, overwrite_clip, append_clip, remove_clip, trim_clip, move_clip, add_track, set_clip_disabled

Markers

add_marker, get_markers, clear_markers

Effects/Transitions

list_video_effects, apply_effect, apply_transition

Export

export_sequence

Escape hatch

execute_extendscript — runs arbitrary ExtendScript for anything not covered above

Try: "Import the clips in C:/footage, create a new sequence called Rough Cut, append them all to V1 in order, add a cross dissolve between each, and drop a marker at the start of every clip."

Notes & limitations

  • Effects/transitions use the QE DOM. This is an undocumented Adobe API that ships with Premiere and is what nearly every Premiere automation tool relies on for effect/transition-by-name operations, since the public DOM doesn't expose them. It's stable in practice but not officially documented, and exact effect/transition names can vary slightly by Premiere version — use list_video_effects as a starting point, or right-click an effect in Premiere and check its name if apply_effect can't find it.

  • execute_extendscript is a full escape hatch — treat access to this MCP server like shell access to the machine running Premiere. Don't expose it over an untrusted network.

  • Not code-signed. Loading it requires CEP debug mode (which install.bat enables). This is normal for community/dev CEP panels.

  • This ships with ~25 solid tools covering the core editing workflow rather than every possible Premiere operation (color grading presets, captions, MOGRT graphics, audio ducking, etc. aren't wired up yet). The architecture (cep-plugin/jsx/*.jsx + src/tools/*.ts) is built so adding more is just adding another cmd_* ExtendScript function and matching MCP tool — happy to add more if you tell me which workflows matter most to you.

Available Tools

23 tools
add_markerC

Add a marker to the sequence timeline at a given time (seconds).

Inputs: time (required), name, comment, colorIndex, +1 more.

add_trackC

Add a new video or audio track to a sequence.

Inputs: trackType (required), sequenceName.

append_clipB

Append a project item to the end of a track (after the last clip on it).

Inputs: itemName (required), trackType (required), trackIndex (required), sequenceName.

apply_effectC

Apply a video effect (by name) to a clip already on the timeline. Requires Premiere's QE DOM.

Inputs: clipIndex (required), trackType (required), effectName (required), trackIndex (required), +1 more.

apply_transitionB

Apply a video transition (by name) to a clip edge on the timeline. Requires Premiere's QE DOM.

Inputs: clipIndex (required), trackType (required), trackIndex (required), transitionName (required), +2 more.

clear_markersC

Delete all markers on a sequence.

Inputs: sequenceName.

create_sequenceC

Create a new sequence in the project.

Inputs: name (required), presetPath.

execute_extendscriptA

Run arbitrary ExtendScript (ES3 JavaScript) inside Premiere Pro for anything the other tools don't cover. Has full access to the app/qe DOM. Use sparingly and only when a dedicated tool doesn't exist — this is effectively a shell into the running Premiere Pro instance.

Inputs: script (required).

export_sequenceB

Queue/export a sequence to a media file using an Adobe Media Encoder preset (.epr).

Inputs: outputPath (required), presetPath (required), sequenceName.

get_markersC

List all markers on a sequence.

Inputs: sequenceName.

get_project_infoA

Get info about the currently open Premiere Pro project: name, path, and list of sequences.

Inputs: no named parameters.

get_timeline_itemsB

List all clips on every track of a sequence, with their start/end/duration/in/out times in seconds.

Inputs: sequenceName.

import_mediaA

Import one or more media files (video/audio/image) into the project panel by absolute file path.

Inputs: paths (required).

insert_clipA

Insert a project item onto a track at a given time (in seconds), rippling later clips forward.

Inputs: time (required), itemName (required), trackType (required), trackIndex (required), +1 more.

list_project_itemsA

List all media items (clips, files, sequences) in the project panel, including their bin path.

Inputs: no named parameters.

list_video_effectsA

List commonly available video effect names that can be passed to apply_effect.

Inputs: no named parameters.

move_clipB

Move a timeline clip to a new start time on the same track (does not ripple other clips).

Inputs: clipIndex (required), trackType (required), trackIndex (required), newStartSeconds (required), +1 more.

overwrite_clipC

Place a project item onto a track at a given time, overwriting whatever is already there (no ripple).

Inputs: time (required), itemName (required), trackType (required), trackIndex (required), +1 more.

remove_clipB

Remove a clip from the timeline by its track and clip index (see get_timeline_items for indices).

Inputs: clipIndex (required), trackType (required), trackIndex (required), ripple, +1 more.

save_projectB

Save the currently open project.

Inputs: no named parameters.

set_active_sequenceA

Make an existing sequence the active sequence (the one shown in the timeline panel).

Inputs: name (required).

set_clip_disabledC

Enable or disable (mute/hide) a clip on the timeline without removing it.

Inputs: disabled (required), clipIndex (required), trackType (required), trackIndex (required), +1 more.

trim_clipB

Change a timeline clip's source in/out points (trim its head/tail), in seconds of source media time.

Inputs: clipIndex (required), trackType (required), trackIndex (required), inSeconds, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 23 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no overlap. Even closely related tools like append_clip, insert_clip, and overwrite_clip are differentiated by their editing behavior (append vs. ripple vs. overwrite).

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., add_marker, create_sequence, list_project_items). No mixing of conventions or ambiguous verbs.

    Tool Count4/5

    23 tools is slightly above the typical 3-15 range, but given the complexity of video editing in Premiere Pro, the count is reasonable and each tool serves a specific function. It's not excessive enough to cause confusion.

    Completeness4/5

    The tool set covers most core workflows: import, sequence creation, timeline editing, effects/transitions, markers, and export. Minor gaps exist, such as no tool to remove a track or handle audio transitions, but the execute_extendscript escape hatch mitigates these.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      A
      maintenance
      Connects Claude to a running Adobe Premiere Pro via a CEP bridge, exposing hundreds of low-level project, sequence, clip, effect and export tools plus studio-grade workflows such as proxy generation, rough cuts from slate calls, text-based shot search, beat-driven cuts, per-scene colour, captions, aspect versions and delivery exports. All processing stays on the local Mac, with speech, vision and beat analysis handled by a companion media engine.
      317
      MIT