PremierePilot
Click on "Deploy 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., "@PremierePilotImport the clip at https://example.com/video.mp4 and add it to a new Premiere sequence"
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.
PremierePilot by Shotbyx
Product name: PremierePilot (technical repo name: premiere-mcp-server — to
rename the product, search-replace "PremierePilot" across site/, docs/, and
this README).
Created by Shotbyx.
A Windows-first MCP server that lets an AI chat client drive Adobe Premiere Pro and Adobe After Effects with natural-language prompts: open projects, import footage, build timelines and compositions, animate, apply effects, and export — from anywhere.
ChatGPT / Muse ---> HTTPS ---> Cloudflare Tunnel ---> 127.0.0.1:8787/mcp
(this server, bearer auth)
+-- file queue --> Premiere CEP panel --> ExtendScript
+-- file queue --> AE ScriptUI panel --> ExtendScriptVideo generation: no paid APIs, no API keys. The assistant generates video
itself (e.g. media.generate_video), uploads it to a share URL, and the server
downloads + imports it via import_media_from_url / ae_import_media_from_url.
Architecture
Piece | What it is |
| Streamable-HTTP MCP server. |
| 35 curated Premiere Pro tools (ExtendScript via the CEP bridge). |
| 23 curated After Effects tools (ScriptUI panel bridge + |
| CEP panel ("MCP Bridge") — adapted from |
| ScriptUI panel ("MCP Bridge Auto") — adapted from |
| Windows installer: Node, deps, panels, PlayerDebugMode, token, logon task, cloudflared. |
See THIRD-PARTY-NOTICES.md for upstream attribution.
Related MCP server: Media-Editor-MCP
Quick start (on the Windows PC)
Prerequisites: Windows 10/11, Premiere Pro + After Effects installed, Adobe CC signed in, PC set to never sleep (see below).
Clone + install (PowerShell, from the repo root):
.\scripts\install-windows.ps1With a Cloudflare Tunnel token for remote access:
.\scripts\install-windows.ps1 -TunnelToken "<token>" -PublicHostname "mcp.example.com"The installer: installs Node 20+ (winget) if needed,
npm install+ build, copies both bridge panels, enablesPlayerDebugMode, creates the bridge folders, generatesPREMIERE_MCP_TOKENin.env, and registers a logon scheduled task so the server starts with Windows.Open the bridge panels (once per Adobe app launch):
Premiere:
Window > Extensions > MCP Bridge(bridge starts automatically).After Effects:
Window > MCP Bridge Auto.jsx— keep auto-run ON.
Connect your AI client. Give it:
the public MCP URL:
https://<your-host>/mcpthe bearer token from the repo's
.env(PREMIERE_MCP_TOKEN)
Run the live remote test (in this order):
verify_premiere_connection→connected: trueimport_media_from_urlwith a generated clip URL → returns a local pathcreate_sequence+add_to_timeline→ clip on the timelineexport_sequence→ MP4 on disk(AE)
ae_verify_connection→ae_create_composition→ae_import_media_from_url→ae_render_comp
Meta Muse (recommended): PremierePilot is being submitted to the public
connector platform at muse.ai/platform as an
"Existing MCP" connector. Until it's listed, connect today via Muse's
custom-connector path (paste your server URL in chat — about a minute, no
review). A bundled skill also ships in ~/workspace/skills/premiere-mcp/
(SKILL.md), whose CLI posts JSON-RPC to the public URL with
Authorization: Bearer <PREMIERE_MCP_TOKEN>.
ChatGPT: there is no public app-directory path for a self-hosted product (OpenAI's directory requires one fixed URL for all users; every user runs their own server). ChatGPT users connect via developer-mode manual setup: paid plan → Settings → enable Developer mode → chatgpt.com/plugins → + → paste your server URL → choose OAuth → create. The server speaks OAuth 2.1 with Dynamic Client Registration, so ChatGPT registers itself, you approve the scopes on the owner's consent page, and it connects — no token to copy.
Claude: connects through a custom connector with OAuth
(https://claude.ai/api/mcp/auth_callback is an allowed redirect).
Any other client that can send an Authorization: Bearer header works with the
current build.
Authentication (OAuth 2.1)
The server co-hosts its own authorization server — no third-party identity provider, no accounts. Two ways to authenticate:
Method | Identity in audit log | Scope |
|
|
|
OAuth 2.1 access token (ChatGPT / Claude connector) |
| granted at consent time |
Endpoints
Endpoint | Purpose |
| RFC 9728 discovery — unauthenticated |
| RFC 8414 authorization-server metadata, served dynamically so the issuer matches the tunnel origin |
| RFC 7591 Dynamic Client Registration — public clients only (no secrets); redirect URIs are validated against a strict allow-list |
| Validates the request (client, redirect URI, PKCE S256 challenge) and renders the owner consent page |
|
|
| RFC 7009 revocation (always 200) |
How ChatGPT / Claude connect. Paste your public server URL (the tunnel
hostname) as the MCP server URL and pick OAuth. The client discovers the
metadata, registers via DCR (or presents a client-ID metadata document —
supported), and opens /authorize. You (the owner) enter the owner passphrase
and approve the requested scopes on the consent page; the client receives an
authorization code (PKCE S256, single-use, 10 min) and trades it for tokens.
Scope model. Every tool requires a scope, derived from its MCP annotations:
Scope | Grants |
| read-only tools (project info, clip properties, catalog search) |
| non-destructive edits (timeline edits, imports, effects, exports) |
| destructive tools + raw ExtendScript ( |
| permission to issue refresh tokens (30 days; access tokens last 1 h) |
ChatGPT requests mcp + offline_access by default: mcp is treated as
read + write (never admin). A token lacking the required scope gets an
insufficient_scope tool error (audited).
Revocation. POST /revoke with a refresh token kills its whole family
(access tokens included). Refresh tokens rotate on every use: presenting an
already-rotated token is treated as replay and revokes the entire family.
Owner passphrase. PREMIERE_MCP_OWNER_SECRET gates the consent page. If
unset, the server generates one on first start, stores it 0600 in the server
home dir, and prints it to the console once. Rotate it by setting the env var
(or deleting the stored file and restarting). The static
PREMIERE_MCP_TOKEN keeps working as the admin fallback regardless.
Token storage. Clients, codes, and tokens live in
<server-home>/oauth.json (hashes only — raw secrets are never stored), mode
0600. Server home: PREMIERE_MCP_HOME, else %APPDATA%\PremierePilot on
Windows, ~/.premiere-mcp-server elsewhere. Set PREMIERE_MCP_PUBLIC_URL
(e.g. https://mcp.example.com) so the OAuth issuer is stable; it also
allow-lists the tunnel hostname through the server's Host validation.
Configuration (.env)
Var | Required | Default |
| yes (min 16 chars) | — generated by installer |
| no |
|
| no |
|
| no |
|
| no |
|
| no |
|
| no (strongly recommended) | — e.g. |
| no |
|
| no | — generated once on first start if unset |
Copy .env.example to .env and fill in the token.
Keeping the remote rig healthy
Power: Settings → System → Power → never sleep on AC. A sleeping PC kills the tunnel and both apps.
Adobe sign-in: stay signed in to Creative Cloud; sign-out popups wedge the bridge.
Interactive session: Premiere/AE must run in a logged-in desktop session (RDP counts). No headless operation — Adobe apps need a GUI.
Modal dialogs are the #1 unattended failure mode. A native dialog (missing media, save prompts, plugin errors) wedges the bridge until a human dismisses it. Run
probe_modal_dialogwhen tools start timing out; the tool tells you exactly what to dismiss. Prefer workflows that avoid dialogs: relink media first, disable "show save dialog" style prompts, keep plugins licensed.
Audit log
Every tool call is appended to audit.jsonl (JSONL): timestamp, caller, tool,
argument summary, outcome. Tokens and large/base64 payloads are redacted.
Tool catalog
36 Premiere tools: connection + auto-launch, modal probe, version/project info,
create_project, open/save, project items + bins, import_media,
import_media_from_url, sequences (list/activate/create), timeline insert /
overwrite / trim / move / split / remove, playhead, markers, detect_beats
(BPM + beat-grid, optional one-call beat markers), effects +
transitions (QE DOM), keyframes, audio levels/mute, MOGRT text overlays, AME
export, frame export, raw ExtendScript escape hatch, and search_tools.
23 AE tools: connection probe, project/comp/layer info, create comp/text/shape/
solid/camera, layer properties (single + batch), duplicate/delete layer,
keyframes, expressions, effects + templates, import_footage,
import_media_from_url, save_project, ae_render_comp (aerender), raw
command escape hatch.
Beat detection
detect_beats analyzes an audio file on the Windows PC and returns BPM, beat
times (seconds, ms precision), and a 0..1 confidence score — pure TypeScript DSP
(ffmpeg decode → spectral-flux onsets → autocorrelation tempo → beat-grid snap →
time-domain transient refinement), no extra installs beyond ffmpeg (the installer
adds it via winget).
With writeMarkers: true the beats are also written to the active sequence as
"Beat N" markers in a single bridge call — no per-marker round-trips.
Typical "cut to the beat" flow:
detect_beatswithaudioPath: "C:\\Music\\track.mp3",writeMarkers: true→ e.g.{ bpm: 96, beatCount: 214, beats: [0.496, 1.12, ...], confidence: 0.96 }split_clipat each beat time on the video track to razor the footage on the music.Optional:
add_transition/trim_clipbetween the new segments, thenexport_sequencevia Media Encoder.
Tip: point audioPath at the song file in your project assets. Long songs take a
few seconds to analyze; the tool runs locally, so no audio ever leaves the PC.
Roadmap
OAuth 2.1 + Dynamic Client Registration— shipped (see Authentication above).UXP panel port when Adobe stabilizes Premiere's UXP scripting surface.
Program-monitor screenshot tool (frame export exists today).
License
MIT — see LICENSE. Upstream bridge code is MIT with its own copyright —
see THIRD-PARTY-NOTICES.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI video editor for agents and humans: timeline, captions, color, audio and generation as MCP tools.
Plan, compare, price, generate, and recover AI video from compatible MCP clients.
AI image, video, voice and music generation over MCP, routed to Veo 3.1, Seedance 2.5 and more.
Build, run, schedule, and publish AI video pipelines to YouTube and TikTok from any MCP client.
Related MCP Servers
- 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.1514MIT
- AlicenseNot gradedqualityDmaintenanceProvides 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.MIT
- AlicenseCqualityCmaintenanceLocal MCP server to control Adobe After Effects from AI clients like Claude and Cursor, supporting project composition, layer editing, animation, masks, and effects.1386 npmMIT
- AlicenseBqualityBmaintenanceMCP server that lets AI assistants control Adobe After Effects via natural language, enabling composition and layer creation, animation, effects, presets, rendering, and arbitrary ExtendScript execution with Arabic/RTL support.5086 npmMIT