Premiere Pro MCP Server
# 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
Scored across 23 tools
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).
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.
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.
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.