Skip to main content
Glama
Siddhant704

Premiere Pro MCP Server

by Siddhant704
README.md
# 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.

## 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`):

```json
{
  "mcpServers": {
    "premiere-pro": {
      "command": "node",
      "args": ["C:/absolute/path/to/adobe-premiere-mcp/dist/server.js"]
    }
  }
}
```

4. 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.

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

ActivityStale
ResponsivenessNo issues