adobe-premiere-cc-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., "@adobe-premiere-cc-mcpExport the active sequence to H.264."
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.
adobe-premiere-cc-mcp
An MCP server for driving Adobe Premiere Pro from an AI assistant.
The design goal is narrow: a small set of tools that verify their own work. Every write reads the value back, and the ones that cannot be verified say so rather than reporting a cheerful success. That matters because several Premiere scripting calls return "No Error" while doing nothing at all.
Built and verified against Premiere Pro 26.2 on Windows. Every tool listed below has been run against a real project, not just typechecked, including the destructive ones.
Paths may be passed with forward or backslashes; they are normalised before they
reach Premiere, because exportAsMediaDirect fails with a bare
Error: Unknown Error on forward slashes.
How it works
assistant <--stdio--> MCP server <--temp files--> CEP panel <--evalScript--> PremiereThe server writes cmd_<id>.jsx into a shared temp folder. The CEP panel inside
Premiere claims it with an atomic rename, evaluates it, and writes
res_<id>.json back. Anything slower than two seconds also gets a
busy_<id>.json heartbeat, which is how the server tells "still working" apart
from "the panel is not running".
Related MCP server: Premiere Pro MCP Server
Requirements
Node.js 20.19+
Adobe Premiere Pro with an MCP bridge CEP panel installed and running
Adobe Media Encoder is not required; exports use Premiere's own encoder
Setup
npm install
npm run buildRegister it with your MCP client, for example:
{
"mcpServers": {
"premiere": {
"command": "node",
"args": ["C:/BINUS/SELF/adobe-premiere-cc-mcp/dist/index.js"]
}
}
}Then ask the assistant to call ping.
Tools
41 tools.
Tool | Parameters | What it does |
| — | Check that Premiere is running and the bridge panel is alive. |
| — | Full picture of the active sequence: resolution, frame rate, duration, and every clip on every track with its node ID, timing, effects and Motion scale. |
|
| Everything about one clip: timing, in-point, and every effect with all of its property values and keyframe state. |
| — | List every sequence in the project and say which one is active. |
|
| Make a sequence the active one, so every other tool operates on it. |
|
| Create a new sequence built from one or more project items, and confirm it exists. |
|
| Inspect the whole sequence and report the problems that quietly ruin an edit: clips scaled above 100 percent, stabilisers that were never analysed, audio above unity or with keyframes that spike, disabled clips, gaps on the main video track, muted tracks, and clips missing a grade while their neighbours have one. |
|
| Export one still per clip on a video track, taken from the middle of each clip, and return the file paths. |
| — | Read the Lumetri Basic Correction values of every graded clip in one call, so a grade can be compared across shots without inspecting clips one at a time. |
| — | Current playhead position in the active sequence, in seconds and as timecode. |
|
| Move the playhead to a time in seconds and read the position back. |
|
| Mute or unmute a video or audio track and read the state back. |
| — | List every marker on the active sequence with its time, name and comment. |
|
| Add a marker to the active sequence at a given time, then confirm it exists. |
|
| Delete the marker nearest a given time, within a small tolerance, and report how many remain. |
|
| List the project panel contents: bins and media, with the node ID of each. |
|
| Import one or more media files into the project panel and confirm the item count grew. |
|
| Create a bin in the project panel and confirm it exists. |
|
| Enable or disable a clip. |
|
| Cut every clip on a track at the given time, the same as the razor tool. |
|
| Remove a clip from the timeline. |
|
| Place a project item onto a track at a given time and confirm the clip count grew. |
|
| Move a clip to a new start time on its own track and confirm it landed. |
|
| Change a clip's playback speed. |
|
| Trim a clip's start or end on the timeline and confirm the new duration. |
|
| Set a clip's Motion scale and read it back to confirm. |
|
| Apply the same Lumetri Basic Correction to a group of clips in one pass, then read every value back. |
|
| Set Lumetri Basic Correction values on a clip and read them back. |
|
| Set a clip's audio level in decibels and read it back. |
|
| Put a clean fade in and/or out on a clip: Opacity for video, Volume for audio. |
|
| List every video or audio effect name Premiere can apply. |
|
| Add a video or audio effect to a clip by name and confirm it attached. |
|
| List every video transition name Premiere can apply, for use with add_transition. |
|
| Add a video transition at a clip's head or tail and confirm it appeared on the track. |
| — | Report Warp Stabilizer state for every clip that has it. |
|
| Set Warp Stabilizer to 'no_motion' (locked static frame, what static-camera edits need) or 'smooth_motion' (keeps camera movement, smoothed). |
|
| Write a full resolution still of the sequence at a given time. |
|
| List Adobe .epr export presets on disk, including the ones Premiere ships itself. |
|
| Render the active sequence to a file using Premiere's own encoder; Adobe Media Encoder is not required. |
| — | Save the current project. |
|
| Escape hatch: run raw ExtendScript in Premiere for anything the typed tools do not cover. |
Premiere behaviours worth knowing
These cost real debugging time and are encoded in the tools:
getVideoEffectList()returns an array of name strings, not objects. Entries have no.nameand the array has no.numItems. Effect objects must come fromgetVideoEffectByName().Keyframe times are absolute source time. Stills and graphics sit near 3600s, so a keyframe written at
0.5lands outside the clip and never fires.New keyframes interleave with existing ones rather than replacing them, which is how a fade ends up spiking to full mid-clip. Clear before writing.
getKeys()returnsundefined, not[], when a property has no keyframes.Warp Stabilizer never re-analyses from a script. A clip can report the mode you set while being completely unstabilised. The tell is the auto-scale display name: a percentage means solved, a bare label means not analysed.
QE track item indexes count empty gaps, so they do not match DOM clip indexes. Match on start time.
Creative Looks cannot be set by script. The name property accepts a string but the LUT never loads. Pick looks in the Lumetri panel; only intensity is scriptable.
exportAsMediaDirectreturns "No Error" even when it writes nothing, so the file has to be checked on disk.
Development
npm run dev # tsc --watch
npm test # vitest
npm run check # typecheck + tests, no build
npm run build # emit dist/
npm run verify # run every tool against the open projectnpm run verify covers the read-only tools. Add -- --destructive to also exercise
splitting, removing, importing and speed changes; that edits the open project, so
point it at a scratch one.
Testing against a live Premiere without restarting your assistant
An MCP client loads the server once at startup, so a rebuild does not reach it
until the client restarts. npm run smoke skips the client entirely and drives
the built server over stdio the same way:
npm run build
npm run smoke # read-only sweep
npm run smoke -- --list # tool names
npm run smoke -- ping
npm run smoke -- get_clip '{"node_id":"000f4241"}'
npm run smoke -- export_frame '{"output_path":"C:/tmp/check.png","time_seconds":12}'That is the fast loop: edit, npm run build, npm run smoke -- <tool>. Restart
the assistant only when you want the new tools exposed to it.
License
MIT
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 Servers
- AlicenseCqualityFmaintenanceA Model Context Protocol (MCP) server for Adobe After Effects that enables AI assistants and other applications to control After Effects through a standardized protocol.Last updated1359533MIT
- AlicenseBqualityDmaintenanceAn unofficial MCP-compatible server that enables advanced automation, querying, and remote control of Adobe Premiere Pro projects for power users, workflow automation, and AI integration.Last updated1514MIT
- Alicense-qualityBmaintenanceProvides MCP servers for AI-driven video editing. Enables offline editing of CapCut drafts and remote control of Adobe Premiere Pro via UXP plugin, with shared media analysis for beat detection and transcription.Last updatedMIT
- Alicense-qualityDmaintenanceAn MCP server that exposes the complete DaVinci Resolve scripting API, enabling AI assistants to control DaVinci Resolve programmatically with over 440 tools for project management, timeline editing, color grading, rendering, and more.Last updated5MIT
Related MCP Connectors
MCP server for Google Veo AI video generation
MCP server for Wan AI video generation
MCP server for Hailuo (MiniMax) AI video generation
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/MarvelCollin/adobe-premiere-cc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server