Premiere Pro MCP Server
The Premiere Pro MCP Server enables AI assistants to directly control Adobe Premiere Pro through 278 tools across 31 modules. Here's what it supports:
Project & Media Management
Create, open, save, and close projects; import media files, folders, After Effects comps, FCP XML
Manage bins (create, rename, delete, smart bins); relink offline media, attach/detach proxies
Set scratch disk paths, override frame rates and pixel aspect ratios
Sequence Management
Create, duplicate, delete, and modify sequences; apply auto-reframe for different aspect ratios
Unnest nested sequences, create subsequences, set the active sequence
Timeline & Editing
Add, remove, move, trim, split, duplicate, enable/disable, and replace clips
Change clip speed/direction; set opacity, scale, rotation, and position
Ripple delete, roll, slide, and slip edits via QE DOM
Effects & Color
Apply/remove video and audio effects; color correct with Lumetri Color; apply LUTs; stabilize with Warp Stabilizer
Transitions
Add video/audio transitions at cut points or clip edges; batch-add transitions across a track
Audio
Adjust clip audio levels, add keyframe fades, mute/unmute tracks
Keyframes
Add, update, and delete keyframes on clip properties; set interpolation (Linear, Hold, Bezier)
Markers
Add, update, delete, and list markers on sequences or clips, with name, color, comments, and duration
Tracks
Add/delete video and audio tracks; lock/unlock; toggle visibility
Text, Captions & MOGRTs
Add subtitle-style text overlays; import and place Motion Graphics Templates (
.mogrt)
Export & Encoding
Export sequences via Adobe Media Encoder; validate presets; capture frames as PNG; export to FCP XML, AAF, OMF; start batch encoding
Discovery & Inspection
Get project info, sequence details, track/clip data; find items by name or path; get playhead position and work area
Metadata & Properties
Read/write XMP metadata; add custom metadata fields; manage HDR and panel settings
Scripting
Execute arbitrary ExtendScript for custom operations (requires
unsafe-scriptauthority); access QE DOM for advanced operations
Connectivity
Supports local stdio and remote HTTP/SSE deployment (e.g., Fly.io)
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 Pro MCP ServerAdd a cross dissolve between all clips on the 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 Pro MCP
Give AI full control over Adobe Premiere Pro.
280 core tools across 31 modules, 3 resources, and 4 guided workflows. A connected UXP host adds 19 capability-gated tools.
What is this?
An MCP (Model Context Protocol) server that lets AI assistants like Claude, Windsurf, Cursor, GitHub Copilot, or any MCP-compatible client directly control Adobe Premiere Pro — importing media, editing timelines, applying effects, managing keyframes, exporting, and more.
"Add the B-roll clips to V2, apply a cross dissolve between each, color correct them to match the A-roll, and export a 1080p ProRes."The AI handles the entire workflow through 280 core tools spanning the supported ExtendScript, QE DOM, local media analysis, safe edit-planning, and connection-verification surfaces. A compatible, authenticated UXP panel adds 19 documented, capability-gated workflows without replacing the production CEP bridge.
What's new in 1.9.1
Production browser hardening: every HTTP response now includes CSP, HSTS, MIME sniffing protection, frame denial, bounded permissions, and explicit referrer and cross-origin policies.
Previous release: 1.9.0
Assistant-first setup: Claude Desktop users start with a validated MCPB bundle, while npm and manual JSON configuration stay under Advanced setup.
Safe connection help:
verify_premiere_connection,--doctor, the CEP Connection Center, and sanitized support bundles explain exactly what is installed, configured, connected, and live-verified.Distribution foundations: MCPB v0.4, deterministic direct/Marketplace CCX packaging, and native Windows/macOS CEP installer pipelines make the supported routes easier to package without overstating signing or Marketplace approval.
Canonical tool surface: 280 registered tools, 278 in the default profile, and 297 while the 19 capability-gated UXP tools are connected.
Previous release: 1.8.0
Native transcript planning: compatible UXP hosts can export and search the transcript Premiere generated for a clip, then preview a revision-locked set of source-time deletion ranges.
No false edit promise: previews return a deterministic confirmation token and never modify a clip or timeline. Automated application remains withheld until the documented source-to-sequence reconstruction path passes real-host validation.
19 connected UXP tools: the capability-gated UXP surface grows from 16 to 19 without changing the 279 core-tool surface.
Earlier release: 1.7.0
Six documented workflows: compatible 26.3+ hosts can expose UXP track renaming, subclip creation, stable marker IDs, Source Monitor seeking, transcript presence checks, and AAF export.
Capability first: a tool is discoverable only with the authenticated local panel; the panel's live
capabilities.getresponse—not package metadata—decides whether the current host supports it.Evidence boundary: automated tests validate schemas, routing, capability declarations, transactions, and result envelopes. They do not verify a specific Premiere installation. See Adobe UXP 26.3 coverage for the exact host gate and the stable-versus-beta policy.
Adobe-aligned validation: the official Premiere 26.3 declarations and ESLint rules now enforce supported signatures and lock/transaction boundaries in CI.
Added in 1.2.0
Safe edit plans: preview compound insert/remove operations, bind approval to a SHA-256 plan token, then apply the validated plan in one bridge command.
Capability profiles: unsafe scripting is disabled by default and requires explicit
unsafe-scriptauthority.Modern MCP responses: tools expose safety annotations and structured results; four workflow prompts and a machine-readable workflow resource guide common edits.
UXP bridge preview: a packaged Premiere 25.6+ panel adds capability discovery, event-driven state notifications with a deduplicated polling fallback, correlated operation lifecycle events, reconnecting WebSocket transport, and supported frame export with file verification. Cancellation is cooperative before non-cancellable host calls; no atomic rollback is claimed. Live host verification is still required.
Related MCP server: Kdenlive MCP Server
Quick Start
Easiest supported path: Claude Desktop
Download the current Claude Desktop bundle (
.mcpb).In Claude Desktop, open Settings > Extensions > Advanced settings > Install Extension, select the downloaded bundle, and restart Claude Desktop.
Download the separate signed Premiere connector (
.zxp). Open it with your trusted ZXP installer. If your computer has no ZXP installer, use the npm connector installer in Advanced setup below.Restart Premiere, open a project, then open Window > Extensions > MCP Bridge.
In Claude, enter:
Safely check my Premiere connection with verify_premiere_connection. Make no changes.
The Claude bundle contains the local MCP server, so this route does not require Node.js. The Premiere connector is a separate required install. The first prompt is read-only and reports whether the server is installed, configured, connected, and live-verified.
Other AI assistants
Cursor, VS Code/Copilot, Windsurf, and other MCP clients do not currently have a project-provided one-click installer. Use their MCP settings with the advanced npm route below. Keep the assistant, server, connector, and Premiere on the same computer.
Before you begin
Node.js 20.19 or newer on Windows or macOS.
Adobe Premiere Pro 2020–2026. Keep Premiere, the CEP bridge, and your MCP client on the same computer for the recommended local setup.
Optional: ffmpeg on
PATHfordetect_silence(brew install ffmpegon macOS orwinget install Gyan.FFmpegon Windows). The production Docker image already includes it.
1. Install
Option A — npm:
npm install -g premiere-pro-mcpOption B — Clone from source:
git clone https://github.com/leancoderkavy/premiere-pro-mcp.git
cd premiere-pro-mcp
npm install
npm run build2. Install the CEP plugin
If installed via npm:
premiere-pro-mcp --install-cepIf cloned from source:
npm run install-cepThis installs the plugin into Premiere Pro's per-user extensions folder and enables debug mode.
3. Check the setup
premiere-pro-mcp --doctorThen ask your MCP client to run verify_premiere_connection. The check is read-only.
Publishing to npm
The easiest repeatable path is the token-free GitHub Actions workflow:
In the npm package settings, configure GitHub Actions as the trusted publisher for
leancoderkavy/premiere-pro-mcpand workflow filenpm-publish.yml.Allow the
npm publishaction.Open Actions -> Publish npm -> Run workflow and keep the default
latesttag.
The workflow installs dependencies, builds, runs tests, verifies the packed files, refuses to republish an existing version, then publishes through short-lived OIDC credentials with automatic provenance. No npm token or recurring OTP is required.
For local publishing, use the guided helper:
npm run publish:npmUseful local variants:
npm run publish:npm:dry-run
NPM_OTP=123456 npm run publish:npm
NPM_TOKEN=npm_xxx npm run publish:npmmkdir -p ~/Library/Application\ Support/Adobe/CEP/extensions
ln -s "$(pwd)/cep-plugin" ~/Library/Application\ Support/Adobe/CEP/extensions/MCPBridgeCEP
# Enable unsigned extensions (CSXS 9–14)
for v in 9 10 11 12 13 14; do
defaults write com.adobe.CSXS.$v PlayerDebugMode 1
doneCopy the
cep-pluginfolder to%APPDATA%\Adobe\CEP\extensions\MCPBridgeCEPOpen Registry Editor and set these String (
REG_SZ) values to1(not DWORD):HKEY_CURRENT_USER\Software\Adobe\CSXS.12\PlayerDebugMode(repeat for CSXS.9 through CSXS.14)
3. Configure your MCP client
If you installed from npm, configure the client to run the global command:
{
"mcpServers": {
"premiere-pro": {
"command": "premiere-pro-mcp"
}
}
}If you cloned the repository instead, use the source-build configuration shown below for your client.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"premiere-pro": {
"command": "node",
"args": ["/absolute/path/to/premiere-pro-mcp/dist/index.js"]
}
}
}Add to your MCP server configuration:
{
"premiere-pro": {
"command": "node",
"args": ["/absolute/path/to/premiere-pro-mcp/dist/index.js"]
}
}Add to .cursor/mcp.json in your project or global config:
{
"mcpServers": {
"premiere-pro": {
"command": "node",
"args": ["/absolute/path/to/premiere-pro-mcp/dist/index.js"]
}
}
}Add to your VS Code MCP server configuration:
{
"mcpServers": {
"premiere-pro": {
"command": "node",
"args": ["/absolute/path/to/premiere-pro-mcp/dist/index.js"]
}
}
}4. Verify the bridge in Premiere Pro
Open (or restart) Premiere Pro
The bridge starts automatically using the default temp directory (or its previously saved setting)
Optionally go to Window > Extensions > MCP Bridge to confirm the green "Running" status or change the Temp Directory to match your MCP client config
Ask your AI assistant to run
get_capabilities, thenping, with Premiere open.For a safe first request, ask: "What is my current Premiere Pro project and active sequence? Do not make changes."
The default bridge directory is derived from the operating system on both sides, so most local setups should not set PREMIERE_TEMP_DIR. If you override it, use the same absolute path in the MCP server and CEP panel; Windows and macOS paths are not interchangeable.
Codex plugin
This repository includes an installable Codex plugin that bundles the local MCP server with a safety-oriented Premiere editing skill.
From a clone of this repository:
codex plugin marketplace add .
codex plugin add premiere-pro@premiere-pro-mcp
npx -y premiere-pro-mcp@1.9.1 --install-cepRestart Premiere Pro and start a new Codex session after installation. The plugin
launches premiere-pro-mcp@1.9.1 through npx; the separate CEP installation is
required because the MCP server communicates with the running Premiere host through
the local bridge.
The plugin source lives in plugins/premiere-pro, and the
repository marketplace manifest lives in
.agents/plugins/marketplace.json.
Claude
For Claude Code, add this repository as a marketplace and install the plugin:
/plugin marketplace add leancoderkavy/premiere-pro-mcp
/plugin install premiere-pro@premiere-pro-mcpThen install the Premiere bridge and start a new Claude Code session:
npx -y premiere-pro-mcp@1.9.1 --install-cepThe Claude Code package lives in
claude-plugins/premiere-pro, with its marketplace
at .claude-plugin/marketplace.json.
Claude Desktop uses the self-contained MCP Bundle (.mcpb) format. Build and
validate the current bundle with:
npm run build:claudeInstall the resulting file from artifacts/ through Settings > Extensions >
Advanced settings > Install Extension. The Premiere CEP bridge must still be
installed separately.
Windows and macOS capability coverage
Surface | Windows | macOS | Verification boundary |
CEP production bridge | Premiere Pro 2020–2026 | Premiere Pro 2020–2026 | Run |
UXP preview bridge | Premiere Pro 25.6+ | Premiere Pro 25.6+ | Live loopback WebSocket and host API verification required |
npm CEP installer | Copies plugin and verifies | Copies plugin and verifies the installed manifest/debug settings | Restart Premiere after installation |
CI build and unit tests | Node 20, 22, and 24 | Node 20, 22, and 24 | GitHub-hosted OS runners; no Adobe host is available in CI |
get_capabilities reports the current operating system, temp directory, CEP/UXP coverage, enabled authority profile, and any live-host verification still required. It also includes the full tools catalog generated from the tools registered by the server, including tools disabled by the active profile. Every entry identifies:
the execution backend (
local, CEP/ExtendScript, QE, or orchestrator);static support status (
supported,limited,experimental, orunsupported);the minimum Premiere version known to the server;
the required authority and whether the current profile enables it;
the verification boundary and whether a live Premiere host is required; and
relevant operational notes.
QE-backed tools are reported as experimental because QE is undocumented and can vary between Premiere builds. Authority availability is reported separately from implementation support, so disabling edit, for example, does not incorrectly label editing tools as unsupported. Static metadata never claims that a Premiere operation succeeded; use ping and inspect each tool result for runtime evidence.
MCP tools/list is filtered to the active authority profile. The default
inspect,edit,export,filesystem profile advertises 278 of the 280 registered
tools and omits execute_extendscript and evaluate_expression, which require
explicit unsafe-script authority. ping and get_capabilities remain visible
under every profile so a restricted or misconfigured server can still explain
its state. The call-time capability guard remains authoritative even if listing
metadata is wrong.
The MCP handshake reads serverInfo.version from the installed package.json,
so clients receive the package version that is actually running rather than a
separately maintained literal.
Tools with mixed execution boundaries can provide explicit operational metadata at registration. This is used for local file verification, static feature-support reports, and hybrid local-plus-Premiere validation so the capability catalog does not infer a host dependency from naming alone.
Collaboration and AI feature boundaries
get_advanced_feature_support returns a machine-readable matrix for Productions,
Team Projects, Frame.io, Media Intelligence, Generative Extend, Object Mask,
caption translation, Speech-to-Text, Enhance Speech, and Remix. Pass an optional
Premiere version, intended backend, confirmed entitlements, and network state to
evaluate prerequisites without conflating them with API availability. It
distinguishes documented APIs from entitlements, network prerequisites, separate
service APIs, and user-assisted operations without using menu automation or
private APIs.
The report tool itself is local: it does not contact Premiere and is callable through the current MCP server. Each feature entry separately reports whether its operations are callable through the production CEP transport. Productions reports only static backend/version eligibility until a UXP host performs live capability negotiation.
Productions exposes documented read-only state through UXP, but the production MCP transport is still CEP.
Frame.io needs a separately authenticated Frame.io API integration; an account entitlement alone does not make it callable through Premiere's DOM.
Transcript JSON import/export is documented in UXP. Starting Speech-to-Text is not.
The remaining AI operations are user-assisted or unsupported by documented public APIs. The tool explains what can be inspected after a user completes the operation and where artifact provenance cannot be established safely.
The server never uses menu automation, private APIs, clip-name heuristics, or duration changes as proof that an AI operation occurred.
Authenticated UXP connection
The MCP server can accept a local UXP panel connection and invoke the UXP commands that are currently implemented:
PREMIERE_UXP_TOKEN="replace-with-a-long-random-secret" premiere-pro-mcpEnter the same token in the UXP panel. The listener binds only to 127.0.0.1:7777, authenticates the WebSocket upgrade, requires a versioned capability handshake, correlates concurrent requests, and fails pending work on timeout or disconnect. Set PREMIERE_UXP_PORT to use another loopback port.
When enabled, MCP discovery includes get_uxp_capabilities, get_uxp_state, inspect_project_uxp, save_project_uxp, create_sequence_with_preset_uxp, export_interchange_uxp, get_transcript_languages_uxp, get_clip_transcript_uxp, search_clip_transcript_uxp, preview_transcript_edit_uxp, detect_object_masks_uxp, configure_encoder_uxp, export_frame_uxp, rename_track_uxp, create_subclip_uxp, list_markers_uxp, set_source_monitor_position_uxp, has_transcript_uxp, and export_aaf_uxp. Commands are advertised only while the authenticated local UXP bridge is connected; the host capability handshake remains the authority for support in the running Premiere build. A failed UXP command is never silently retried through CEP because the first operation may have partially succeeded.
Native transcript editing starts with a read-only, revision-locked planning flow. Use
get_clip_transcript_uxp to export the transcript Premiere generated for a source
clip, select source-time ranges from that JSON, and pass its SHA-256 revision to
preview_transcript_edit_uxp. The preview sorts and merges ranges and returns a
confirmation token without changing the timeline. Premiere does not expose a
documented operation that directly turns deleted transcript text into timeline cuts,
so automatic application remains withheld until the source-to-sequence mapping and
documented reconstruction path pass live-host validation. search_clip_transcript_uxp
provides read-only discovery without substituting an external transcription engine.
Premiere 26.2-26.3 hosts also expose documented UXP workflows for revisioned project inspection, verified project saves, preset-based sequence creation, OTIO/FCP XML interchange, transcript-language discovery, Object Mask detection, Adobe Media Encoder control, track renaming, subclip creation, stable marker inspection, Source Monitor positioning, and clip transcript detection. Mutations accept optional idempotency keys and return explicit verification outcomes. See the Adobe UXP 26.3 coverage matrix and the UXP capability foundation for the command matrix and live-host validation boundary.
Architecture
Local (stdio):
┌───────────────┐ stdio (MCP) ┌──────────────┐ File-based IPC ┌───────────────┐
│ AI Client │ ◄──────────────► │ MCP Server │ ◄────────────────► │ CEP Plugin │
│ (Claude, │ │ (Node.js / │ .jsx commands │ (runs inside │
│ Windsurf, │ │ TypeScript) │ .json responses │ Premiere) │
│ Cursor, │ └──────────────┘ └──────┬────────┘
│ Copilot) │ │
└───────────────┘ │ evalScript()
▼
┌───────────────┐
│ Premiere Pro │
│ ExtendScript │
│ + QE DOM │
└───────────────┘Remote (HTTP/SSE — Fly.io):
┌───────────────┐ HTTP+SSE (MCP) ┌─────────────────────┐ File-based IPC ┌──────────────┐
│ AI Client │ ◄──────────────► │ MCP Server │ ◄────────────────► │ CEP Plugin │
│ (any MCP │ │ premiere-pro-mcp │ .jsx / .json │ (Premiere) │
│ client) │ │ .fly.dev │ shared volume └──────────────┘
└───────────────┘ └─────────────────────┘AI client invokes an MCP tool (e.g.,
add_to_timeline)MCP server generates ES3-compatible ExtendScript with helper functions prepended
Script is written to a
.jsxcommand file in a shared temp directoryCEP plugin polls for command files, executes via
CSInterface.evalScript()Result JSON is written to a response file and returned to the AI
The file-based IPC bridge is simple, reliable, and works across macOS and Windows without network sockets.
Tools (280 core total; 278 under the default profile; 297 with a connected UXP bridge)
Discovery & Inspection (10 + 10)
Tool | Description |
| Current project name, path, sequences, items |
| Detailed active sequence with all clips |
| All items in the project panel |
| Comprehensive snapshot: bin tree, sequences, media types |
| Exhaustive sequence data: tracks, clips, effects, markers |
| Everything about a clip: effects, keyframes, metadata |
| Human-readable overview: duration, coverage %, effects |
| Filter by name, extension, offline status, color label |
| Full snapshot: project, sequence, playhead, selection |
| Explore any Premiere Pro DOM object interactively |
| Collaboration/AI API support, prerequisites, entitlements, and user-assisted boundaries |
Project Management (26)
Tool | Description |
| File operations |
| Project lifecycle |
| Import media and AE comps |
| Bin management |
| Import from other projects |
| Generate bars & tone media |
| Configure scratch disks |
| Project Manager consolidation |
Timeline & Editing (10 + 27 advanced)
Tool | Description |
| Insert and overwrite edits |
| Remove clip and close gap (QE) |
| Professional trim modes (QE) |
| Move between tracks (QE) |
| Speed/reverse (QE) |
| Basic edits |
| Opacity, scale, rotation, position |
| Link/unlink A/V |
Premiere Pro 26.3 compatibility: some installations silently ignore QE structural edits (
ripple_delete, razor/split) and existing effect-parameter writes. These tools now verify the resulting sequence state and return an error instead of a false success. For structural edits, rebuild the wanted source ranges into a new sequence withcreate_sequenceandadd_to_timeline. Native transitions are unavailable when the host does not exposeqeTrack.addTransition; overlay clips remain a workaround for transitions that do not need to blend adjacent source frames. See issue #21.
Effects & Color (8)
Tool | Description |
| Apply by name (QE) |
| Remove effects |
| Lumetri: exposure, contrast, temperature, etc. |
| Apply LUT files |
| Warp Stabilizer with configurable settings |
Keyframes (8)
Tool | Description |
| Create and read keyframes |
| Delete keyframes |
| Linear / Hold / Bezier |
| Query interpolated value at any time |
| Set color properties on effects |
Export & Encoding (16)
Tool | Description |
| Export via Adobe Media Encoder |
| Validate an |
| Verify output size and calculate SHA-256/SHA-512 checksums |
| Export frame as PNG, return as base64 image |
| Interchange formats |
| Direct encoding |
| Start render queue |
Premiere's documented automation surfaces do not currently expose OTIO or EDL
interchange, Render and Replace, cloud publishing, or Content Credentials export
configuration. get_capabilities reports these delivery gaps explicitly rather
than presenting UI-only operations as available tools.
Source Monitor & Playback (7 + 4)
Tool | Description |
| Source monitor control |
| 3-point editing |
| Playback control (QE) |
| Play in source monitor |
Selection & Clipboard (7 + 6)
Tool | Description |
| Smart selection |
| Copy effects via QE |
| Apply effect to multiple clips |
| 27 blend modes |
Media Properties (16)
Tool | Description |
| Offline/proxy management |
| Override FPS |
| Auto-scale to sequence frame |
| Raw XMP access |
| Color space info |
Sequence Management (11)
Tool | Description |
| Create sequences from |
| Manage sequences |
| Auto-reframe for social media |
| FCP XML custom properties |
| Replace nested sequence with its clips |
Workspace & Captions (2 + 1)
Tool | Description |
| Switch workspace layouts |
| Create caption/subtitle tracks |
Scripting (2)
Tool | Description |
| Run arbitrary ExtendScript (ES3); requires explicit |
| Evaluate a one-line expression; requires explicit |
...and 100+ more
Track targeting, batch operations, markers, audio levels, motion/transform, metadata, sequence settings, navigation, project analysis, and more. Run get_project_info to get started — the AI will discover what it needs.
MCP Resources
The server exposes three LLM context resources and four workflow prompts:
Resource URI | Description |
| Best practices: workflow order, timeline rules, effect tips, error handling |
| Complete ExtendScript API reference for writing custom scripts |
| Machine-readable catalog for rough cuts, dialogue cleanup, captions, and delivery |
These are automatically available to MCP clients that support resources, giving the AI deep context about how to drive Premiere Pro effectively.
Remote Deployment (Fly.io)
The server includes an HTTP/SSE transport (src/http-server.ts) for remote access via mcp-remote or any MCP client that supports Streamable HTTP.
A live instance is running at https://premiere-pro-mcp.fly.dev.
Connect via mcp-remote
{
"mcpServers": {
"premiere-pro": {
"command": "npx",
"args": ["mcp-remote", "https://premiere-pro-mcp.fly.dev/mcp"]
}
}
}Self-host on Fly.io
# Clone and deploy your own instance
git clone https://github.com/leancoderkavy/premiere-pro-mcp.git
cd premiere-pro-mcp
fly apps create your-app-name
# Required: add bearer token auth
fly secrets set MCP_AUTH_TOKEN=your-secret-token
fly deploy --remote-onlyThen connect with:
{
"mcpServers": {
"premiere-pro": {
"command": "npx",
"args": ["mcp-remote", "https://your-app-name.fly.dev/mcp",
"--header", "Authorization: Bearer your-secret-token"]
}
}
}Note: The file bridge still requires the CEP plugin to share the same
PREMIERE_TEMP_DIR. For cloud deployments this means running a sync agent or usingfly proxy/ WireGuard to reach your local machine.detect_silencecan analyze only media paths available inside the server filesystem; a desktop-only path is not automatically available to a remote Fly machine.
Environment Variables
Variable | Description | Default |
| Shared temp directory for MCP ↔ CEP communication | OS temp dir + |
| Command timeout in milliseconds |
|
| Override the auto-discovered | auto-discovered |
| Comma-separated authority profile; add |
|
| Set to | unset |
| HTTP port (HTTP/SSE transport only) |
|
| Bearer token required by the HTTP transport | unset |
| Set to | unset |
| PostHog project token; enables privacy-safe MCP usage telemetry | unset |
| PostHog ingestion host |
|
| Environment property attached to telemetry events |
|
| Optional stable anonymous server identifier | Fly machine ID or random boot ID |
When PostHog is enabled, the server records mcp_connection_attempt,
mcp_request, and mcp_tool_call. Events contain operational fields such as
method, tool name, outcome, status code, and duration. Authentication tokens,
IP addresses, MCP arguments, project paths, media names, and tool results are
never sent. Person profiles are disabled for these events.
Project Structure
premiere-pro-mcp/
├── src/
│ ├── index.ts # Entry point — stdio transport setup
│ ├── http-server.ts # Entry point — HTTP/SSE transport (Fly.io / remote)
│ ├── server.ts # MCP server — registers 280 tools, filtered by authority profile
│ ├── bridge/
│ │ ├── file-bridge.ts # File-based IPC (write .jsx, poll .json)
│ │ └── script-builder.ts # ExtendScript generator with ES3 helpers
│ ├── tools/ # 31 tool modules
│ │ ├── discovery.ts # Project discovery and queries
│ │ ├── recovery.ts # Read-only autosave discovery and private bridge telemetry
│ │ ├── project.ts # Project management and import
│ │ ├── media.ts # Media and proxy management
│ │ ├── sequence.ts # Sequence creation and settings
│ │ ├── timeline.ts # Timeline clip operations
│ │ ├── effects.ts # Effect application and color correction
│ │ ├── transitions.ts # Transition management (QE DOM)
│ │ ├── audio.ts # Audio levels, keyframes, and ffmpeg silence analysis
│ │ ├── av-settings.ts # Documented AV inspection, mapping, and capability boundaries
│ │ ├── text.ts # Text overlays and MOGRTs
│ │ ├── markers.ts # Sequence and clip markers
│ │ ├── tracks.ts # Track add/delete/lock/visibility
│ │ ├── playhead.ts # Playhead, work area, in/out points
│ │ ├── metadata.ts # Metadata, XMP, color labels
│ │ ├── export.ts # Export, frame capture, encoding
│ │ ├── advanced.ts # QE DOM: ripple, roll, slide, slip, speed
│ │ ├── keyframes.ts # Keyframe CRUD and interpolation
│ │ ├── scripting.ts # Execute arbitrary ExtendScript
│ │ ├── inspection.ts # Deep project/sequence/clip inspection
│ │ ├── selection.ts # Clip selection utilities
│ │ ├── clipboard.ts # Copy effects, batch operations
│ │ ├── source-monitor.ts # Source monitor control
│ │ ├── track-targeting.ts # Track targeting, motion, audio props
│ │ ├── utility.ts # Batch ops, analysis, navigation
│ │ ├── health.ts # Connectivity ping
│ │ ├── workspace.ts # Workspace layout switching
│ │ ├── captions.ts # Caption track creation
│ │ ├── playback.ts # Timeline/source playback control
│ │ └── project-manager.ts # Project consolidation/transfer
│ └── resources/
│ └── extendscript-reference.ts # API reference for LLM context
├── cep-plugin/ # CEP panel that runs inside Premiere Pro
│ ├── CSXS/manifest.xml # Extension manifest (PPRO 14.0+)
│ ├── index.html # Panel UI
│ ├── main.js # Bridge polling and script execution
│ ├── host.jsx # ExtendScript entry point
│ └── CSInterface.js # Adobe CEP interface library
├── scripts/
│ ├── install-cep.sh # macOS CEP installer (symlink + debug mode)
│ └── install-cep.ps1 # Windows CEP installer (copy + REG_SZ debug mode)
├── Dockerfile # Multi-stage Docker build for Fly.io
├── fly.toml # Fly.io deployment config
├── RESEARCH.md # API research and implementation status
├── CONTRIBUTING.md # Contribution guidelines
├── CHANGELOG.md # Version history
└── LICENSE # MIT LicenseTechnical Details
CEP and UXP backends
CEP remains the production backend because it provides broad ExtendScript access and the undocumented QE DOM used for effects, ripple deletes, and advanced trims across Premiere Pro 2020–2026. The packaged uxp-plugin is a Premiere 25.6+ preview backend for supported frame export, capability discovery, and state events. It does not silently retry failed UXP mutations through CEP.
ExtendScript Compatibility
All generated scripts use ES3 syntax (var, manual for loops, no arrow functions, no let/const) since ExtendScript is based on ECMAScript 3. The bridge writes a versioned helper library to the shared temp directory and loads it once per ExtendScript engine via $.evalFile; each command then sends only its tool-specific script.
Security
Understand the trust model before deploying this: any client that can reach the MCP
server can control Premiere Pro. execute_extendscript and evaluate_expression are
arbitrary-code-execution tools by design and are omitted from discovery and denied at call time
by default. Enable them only by setting
PREMIERE_MCP_CAPABILITIES=inspect,edit,export,filesystem,unsafe-script.
Run it locally over stdio unless you have a specific reason not to. That's the safe default.
The HTTP transport (
http-server) requiresMCP_AUTH_TOKENand refuses to start without it. It binds0.0.0.0and is remotely reachable, so never expose it publicly without a strong token (setALLOW_UNAUTHENTICATED=1only for a throwaway public instance).The bridge temp directory is created private to your user (mode
0700), and the server refuses to use one owned by another user — relevant on shared machines, where the CEP panel would otherwise execute anycmd_*.jsxstaged there.There is a 500 KB script size limit, and a small regex check that rejects
eval(),new Function(), andSystem.callSystem()in tool-generated scripts. This is a guard rail, not a sandbox — it is trivially bypassable and is not a security boundary. Do not rely on it to contain untrusted input; the real boundary is who can reach the server.
QE DOM
Many tools use the undocumented QE DOM (enabled via app.enableQE()). These tools are marked with "Uses QE DOM" in their descriptions. The QE DOM provides capabilities unavailable through the standard ExtendScript API:
Apply effects and transitions by name
Ripple delete, roll/slide/slip edits
Set clip speed and reverse
Frame blending and time interpolation
Remove all effects from a clip
Troubleshooting
Verify debug mode:
macOS:
defaults read com.adobe.CSXS.12 PlayerDebugModeshould return1Windows:
reg query "HKCU\SOFTWARE\Adobe\CSXS.12" /v PlayerDebugModeshould reportREG_SZ 1(aREG_DWORDvalue is not valid for unsigned CEP discovery)
Check the plugin exists:
macOS:
ls ~/Library/Application\ Support/Adobe/CEP/extensions/MCPBridgeCEPWindows:
dir "%APPDATA%\Adobe\CEP\extensions\MCPBridgeCEP"
Completely restart Premiere Pro (not just close/reopen the project)
Check the CSXS version matches your Premiere Pro version
Run
premiere-pro-mcp --diagnose-cepto check installation metadata and recent Premiere logs.
Version 1.3.0 and newer installs the signed artifacts/MCPBridgeCEP.zxp included in the npm
package on Windows. If diagnostics report Signature verification failed, reinstall the latest
npm version, fully quit every Premiere process, run premiere-pro-mcp --install-cep, and relaunch.
Open the CEP panel and verify it shows "Running" with a green dot (the bridge normally starts automatically)
Ensure temp directories match between MCP client config and CEP panel
Read the timeout error: if it reports an in-flight heartbeat, dismiss any open Premiere modal dialog; without a heartbeat, verify the bridge is running and using the same temp directory
Increase timeout: set
PREMIERE_TIMEOUT_MSto60000or higherTry
pingtool to test basic connectivity
Restart the AI client after editing config
Verify the path to
dist/index.jsis absolute and correctRun
node dist/index.jsin a terminal to check for startup errorsEnsure
npm run buildcompleted without errors
QE tools require an active sequence — open one first
Some QE operations are index-based and can fail if clips have been reordered
Re-query the sequence structure after QE operations
Contributing
Contributions are welcome! See CONTRIBUTING.md for guidelines.
License
MIT — free for personal and commercial use.
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
- Alicense-qualityDmaintenanceEnables 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.Last updated1,16926MIT
- Flicense-qualityCmaintenanceEnables AI models to perform complex video editing tasks on Kdenlive projects through 36 tools for project management, timeline editing, effects, transitions, and export.Last updated1
- AlicenseAqualityBmaintenanceMakes Claude a real operator for Adobe Premiere Pro 2025, providing 59 tools to control projects, timelines, media, exports, and even create cinematic intros with beat detection and style presets.Last updated59MIT
- Alicense-qualityBmaintenanceEnables AI agents to control video editing software (剪映/CapCut and Adobe Premiere Pro) through a unified interface, supporting operations like material import, clip splitting, subtitle addition, effects, transitions, audio mixing, and export.Last updated10MIT
Related MCP Connectors
A real timeline video editor for AI agents: journaled edits, FFmpeg/MLT rendering, exports
15 media & data tools for AI agents: search, transcribe, subtitles, voiceover, translate & more.
Create videos with prompts, and use Rendley’s video editor to adjust anything you need.
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/leancoderkavy/premiere-pro-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server