Premiere MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Premiere MCPClean up the filler words and pauses on this timeline."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Premiere MCP
An MCP server that lets Claude work inside your open Premiere Pro project.
You stay in Premiere. The agent reads your real timeline, edits it in place, and checks its own work by rendering frames out of the Program Monitor — it is not a renderer, an export pipeline, or a thing that hands you a file at the end.
What you can ask it for
"Take out the filler words and the long pauses." Premiere's own transcript already tags disfluencies; the agent turns them into cuts and applies them.
"Cut a 30-second version out of these interviews." Name the soundbites and the order you want them in;
ppro_apply_cutlistassembles the sequence in one call, roughly 25 seconds of wall time."Find where she says 'it saved my life' and cut just before it." Phrases resolve to word-level timings, and the cut point lands in the silence ahead.
"What is on this timeline?" The whole structure comes back as text — tracks, clips, source ranges, timings — which a model reads far better than any screenshot.
"Did that land where I meant?" It renders the frame and looks at it.
It works on a copy, not on your cut. The composite tools duplicate the
sequence and snapshot the .prproj before touching anything. The primitives
leave that to the caller — start a chain of them with ppro_snapshot_create.
The API underneath has calls that look documented and will corrupt a project
irreversibly. They are catalogued in docs/api-traps.md. The
composite tools route around them — ppro_reorder clones rather than moving,
because moving corrupts — while the primitives that can still reach them
(ppro_move_at, ppro_retrim) say so in their own descriptions. Read the traps
before extending anything.
Status: a working prototype that has been through a production run — a
30-second draft assembled from a transcript on real material, both step by step
(~30 min) and in a single ppro_apply_cutlist call (25 s). Working: timeline
reads, snapshots, splitting, ripple delete, text-based addressing, transcript
cleanup, segment reordering, B-roll on upper tracks, frame verification.
Not verified: ripple cleanup of dialogue underneath existing B-roll (does V1
drift against V0), shiftOverlapping in createRemoveItemsAction, audio
verification of the result.
Document | What's inside |
API traps — read before editing the panel | |
invariants for an agent working in this repository |
Related MCP server: Premiere-MCP-BuildX-Exclusive-V3
Architecture
MCP client (Claude Code)
| stdio
mcp/server.js - MCP server: tools, planning, time mapping
| ws://127.0.0.1:3001
proxy/server.js - broker for commands and responses
| ws (the panel is the client: there is no Node inside UXP)
panel/main.js - UXP panel inside Premiere
|
premierepro APIWhy the layers split this way. The panel holds only primitives over the API, no logic. Planning, time mapping and orchestration live on the MCP side, where they can change without reloading the plugin and be tested without Premiere.
Setting up on a new machine
1. Requirements
Premiere Pro >= 26.3 (the manifest requires
26.3.0; UXP is stable from 25.6)Node.js >= 20 —
brew install nodeUXP Developer Tool — Creative Cloud Desktop -> Marketplace
ffmpeg/ffprobe (for the analysis layer) —
brew install ffmpeg
The UDT CLI (
@adobe/uxp-devtools-cli) does not work on Apple Silicon: the native part,@adobe/uxp-devtools-helper, is built for x86_64 only (its single release, from 2021). Load the plugin through the GUI instead.
The premierepro-*.d.ts TypeScript declarations are not part of this
repository — they are Adobe's proprietary files and cannot be redistributed
here. They are not needed to run anything; if you want API autocompletion, take
them from the UXP Developer Tool (the Premiere plugin template) or from the
Adobe UXP for Premiere Pro documentation and drop them into docs/ —
.gitignore already covers them.
2. Dependencies
npm install3. Proxy
Start it before loading the panel (otherwise the panel spins in a reconnect loop — harmless, it picks the proxy up on its own).
npm run proxy4. The panel inside Premiere
Premiere -> Settings -> Plugins -> Enable Developer Mode
Restart Premiere. Without this Premiere never connects to the UDT service and loading fails with "No applications are connected to the service".
UDT -> Add Plugin ->
panel/manifest.jsonActions -> Load & Watch (Watch reloads the panel on edits by itself)
Premiere -> Window -> Extensions -> Premiere MCP Agent
The panel should light up green:
connected
When the panel needs a reload
What you changed | What to do |
| Watch reloads it; otherwise Reload in UDT |
| Unload -> Load (Watch does not cover the manifest) |
| depends on how you call it — see below |
A registered MCP server is a persistent process. It starts once, when the client session starts, and keeps running: editing
mcp/server.jsdoes NOT affect the tools your client already has. Restart the client session, or call throughnode scripts/call.mjs, which spawns a fresh server per call. Three debugging runs were once spent on code that was never executing.
Watch misfires sometimes. If a new command answers
unknown command: ..., hit Reload by hand.
5. Connecting to Claude Code
claude mcp add premiere -- node "$(pwd)/mcp/server.js"The default scope is local (this project, this user). -s user gives you the
server in every project; -s project writes it into .mcp.json next to the
code. Check with claude mcp list -> premiere: ✓ Connected. The panel is not
required for registration: without it the server still starts and lists its
tools, only the calls fail.
Checking the install
node scripts/call.mjs ppro_echo '{"message":"hi"}'Expect version: "26.3.2". Then:
node scripts/call.mjs ppro_env '{}'
node scripts/call.mjs ppro_timeline_dump '{}'Without Premiere only the plumbing can be tested:
npm run fake-panel # in a separate terminal
npm run smokeLinting
npm run lintAdobe's own rules (@adobe/eslint-plugin-premierepro) for the premierepro API:
actions built outside lockedAccess, actions escaping their lock scope, async
callbacks where the API demands synchronous ones. These are the failures
api-traps §1 and §3 describe, caught statically. One entry in that file (§10)
turned out to be a lint error rather than the API trap it was recorded as.
MCP tools
Reading
Tool | Purpose |
| round trip to the panel |
| version, project, sequence, feature detection |
| tracks, clips, timings, synthesized keys |
| selection + playhead |
| sequences with frame size |
| a clip's transcript (JSON) |
| phrase -> timing + cut point |
| cleanup plan, changes nothing |
Assembly — composite, they snapshot for you
Tool | Purpose |
| keep spans in the desired final order -> finished sequence in one call: duplicate, rename, cuts right to left, orphan-clone sweep, close gaps, reorder, verification against the plan |
| full transcript cleanup in a duplicate of the sequence |
| rearranges segments by cloning through a parking zone past the timeline end (moving clips past neighbours corrupts the project irreversibly — api-traps §5a) |
Primitives — the caller owns the snapshot
Tool | Purpose |
| copy of a sequence with all its settings |
| rename a sequence (via |
| delete a sequence |
| split (clone into free space + trim + move) |
| remove the clips at a time, optionally with ripple; |
| clone clips into free space; |
| shift clips by an offset — only where their relative order is preserved (§5a) |
| one clip's boundaries: timeline start/end and source in/out |
| trim the tail (with the linked audio) |
| drop the head and close the gap |
| close the gaps left by ripple |
| delete project items by name prefix ( |
| save the project so a snapshot captures the on-screen state |
| a frame from the Program Monitor as PNG |
Rollback
Tool | Purpose |
| save the project and copy the |
| list the snapshots |
| restore one (the project must be closed in Premiere) |
Debugging
Tool | Purpose |
| reflective API method call without committing |
| arity of the |
| what this host actually has at runtime — declarations are not evidence |
Markers, tracks, detection
Tool | Purpose |
| markers on the active sequence |
| add a marker, verified by re-reading |
| remove markers by guid, or all of them |
| mute/unmute a track |
| Premiere's own scene-edit detection: cuts, markers or subclips. Video only, not aimable, not idempotent, not undoable — read api-traps §6 first |
Typical scenarios
Transcript cleanup
# 1. what is said on camera, and where
node scripts/call.mjs ppro_find_phrase '{"phrase":"so what we did next"}'
# 2. look at the plan without touching anything
node scripts/call.mjs ppro_cleanup_plan '{}'
# 3. dry run — where the cuts would land
node scripts/call.mjs ppro_cleanup_apply '{"dryRun":true}'
# 4. apply, in a duplicate of the sequence
node scripts/call.mjs ppro_cleanup_apply '{}'Assembling a draft from soundbites
Spans are in seconds of the sequence as it stands at call time, listed in the desired final order (the tool does the reordering itself).
node scripts/call.mjs ppro_apply_cutlist '{"dryRun":true,"name":"draft-v1","keeps":[
{"start":41.2,"end":47.9,"label":"hook"},
{"start":3.4,"end":9.8,"label":"intro"},
{"start":62.0,"end":71.5,"label":"payoff"}
]}'Drop dryRun and about 25 s later the assembled sequence is in the project. The
snapshot before editing is taken automatically.
Environment variables
Variable | Default |
|
|
|
|
|
|
|
|
|
|
Before editing the panel
Read docs/api-traps.md. Fifteen entries, each one paid for with a separate debugging session: stale handles, non-atomic transactions, unlinked audio, the missing razor, gaps after ripple.
The two most expensive — read them before touching any editing logic:
§5a —
createMoveActionpast neighbours commits cleanly and corrupts the project irreversibly (UI, renderer and API model diverge; the damage survives saving and reopening). Reorder segments only by cloning.§5b —
createSetInPointAction/createSetOutPointActionon a track item behave non-deterministically and poison the getters. Set the source window only throughcreateSetStartAction/createSetEndAction.
Author and licence
Max Sebastian — MIT, see LICENSE.
Premiere Pro, Adobe and UXP are trademarks of Adobe Inc. This project is not affiliated with Adobe and does not redistribute its files.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Edit video by talking to your AI — search footage, cut timelines, apply effects, add captions.
Transcript-based audio editing: transcribe audio, edit by word ID, export edited audio.
Agentic video editing on real footage: cut, caption, reframe, score, and export at full quality.
A real timeline video editor for AI agents: journaled edits, FFmpeg/MLT rendering, exports
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables control of Adobe Premiere Pro through Claude using over 170 tools for editing, effects, and timeline management. It supports advanced project operations, automated captions, and AI-generated voiceovers via ElevenLabs integration.2,02632MIT
- FlicenseNot gradedqualityBmaintenanceEnables prompt-driven video editing in Adobe Premiere Pro, allowing Claude to transcribe footage, decide cuts, build motion graphics, and assemble timelines via natural language.-
- AlicenseDqualityAmaintenanceOperates local Adobe Premiere Pro projects through MCP, exposing 284 tools for AI-driven video editing including timeline editing, effects, exports, and guided assembly workflows.28432MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents and MCP clients to programmatically edit video projects on a local desktop editor, with 119 tools for multitrack editing, effects, captions, audio, and batch auto-editing, producing reviewable and reversible real timeline edits.AGPL 3.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/quadlzzz/premiere-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server