MCP server for controlling Adobe Premiere Pro via CEP/ExtendScript — 269 tools for AI-driven video editing
# Add to your Claude Code skills
git clone https://github.com/leancoderkavy/premiere-pro-mcpGuides for using mcp servers skills like premiere-pro-mcp.
Last scanned: 7/8/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@hono/node-server: @hono/node-server has authorization bypass for protected static paths via encoded slashes in Serve Static Middleware",
"severity": "high"
},
{
"type": "npm-audit",
"message": "esbuild: esbuild allows arbitrary file read when running the development server on Windows",
"severity": "low"
},
{
"type": "npm-audit",
"message": "express-rate-limit: express-rate-limit: IPv4-mapped IPv6 addresses bypass per-client rate limiting on servers with dual-stack network",
"severity": "high"
},
{
"type": "npm-audit",
"message": "fast-uri: fast-uri vulnerable to path traversal via percent-encoded dot segments",
"severity": "high"
},
{
"type": "npm-audit",
"message": "hono: Hono Vulnerable to Cookie Attribute Injection via Unsanitized domain and path in setCookie()",
"severity": "high"
},
{
"type": "npm-audit",
"message": "ip-address: ip-address has XSS in Address6 HTML-emitting methods",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "path-to-regexp: path-to-regexp vulnerable to Denial of Service via sequential optional groups",
"severity": "high"
},
{
"type": "npm-audit",
"message": "picomatch: Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
"severity": "high"
},
{
"type": "npm-audit",
"message": "postcss: PostCSS has XSS via Unescaped </style> in its CSS Stringify Output",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "qs: qs has a remotely triggerable DoS: qs.stringify crashes with TypeError on null/undefined entries in comma-format arrays when encodeValuesOnly is set",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "vite: Vite Vulnerable to Path Traversal in Optimized Deps `.map` Handling",
"severity": "high"
},
{
"type": "npm-audit",
"message": "vitest: When Vitest UI server is listening, arbitrary file can be read and executed",
"severity": "critical"
}
],
"status": "FAILED",
"scannedAt": "2026-07-08T06:28:39.765Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}premiere-pro-mcp is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by leancoderkavy. MCP server for controlling Adobe Premiere Pro via CEP/ExtendScript — 269 tools for AI-driven video editing. It has 101 GitHub stars.
premiere-pro-mcp failed SkillsLLM's automated security scan, which flagged one or more high-severity issues. Review the Security Report section carefully before using it.
Clone the repository with "git clone https://github.com/leancoderkavy/premiere-pro-mcp" and add it to your Claude Code skills directory (see the Installation section above).
premiere-pro-mcp is primarily written in TypeScript. It is open-source under leancoderkavy on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh premiere-pro-mcp against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
Note: This is a temporary fork for a bug fix PR. See the original at leancoderkavy/premiere-pro-mcp.
Give AI full control over Adobe Premiere Pro.
269 tools across 28 modules — the most comprehensive MCP server for video editing.
An MCP (Model Context Protocol) server that lets AI assistants like Claude, Windsurf, Cursor, 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 269 tools that cover nearly every ExtendScript and QE DOM API available in Premiere Pro.
Option A — npm (recommended):
npm install -g premiere-pro-mcp
Option B — Clone from source:
git clone https://github.com/ppmcp/premiere-pro-mcp.git
cd premiere-pro-mcp
npm install
npm run build
If installed via npm:
premiere-pro-mcp --install-cep
If cloned from source:
npm run install-cep
This symlinks the plugin into Premiere Pro's extensions folder and enables debug mode.
mkdir -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
done
cep-plugin folder to %APPDATA%\Adobe\CEP\extensions\MCPBridgeCEP1:
HKEY_CURRENT_USER\Software\Adobe\CSXS.12\PlayerDebugModeEdit ~/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"],
"env": {
"PREMIERE_TEMP_DIR": "/tmp/premiere-mcp-bridge"
}
}
}
}
Add to your MCP server configuration:
{
"premiere-pro": {
"command": "node",
"args": ["/absolute/path/to/premiere-pro-mcp/dist/index.js"],
"env": {
"PREMIERE_TEMP_DIR": "/tmp/premiere-mcp-bridge"
}
}
}
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"],
"env": {
"PREMIERE_TEMP_DIR": "/tmp/premiere-mcp-bridge"
}
}
}
}
/tmp/premiere-mcp-bridge)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) │ └──────────────┘ └──────┬────────┘
└───────────────┘ │ 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 └──────────────┘
└───────────────┘ └─────────────────────┘
add_to_timeline).jsx command file in a shared temp directoryCSInterface.evalScript()The file-based IPC bridge is simple, reliable, and works across macOS and Windows without network sockets.
| Tool | Description |
|---|---|
get_project_info |
Current project name, path, sequences, items |
get_active_sequence |
Detailed active sequence with all clips |
list_project_items |
All items in the project panel |
get_full_project_overview |
Comprehensive snapshot: bin tree, sequences, media types |
get_full_sequence_info |
Exhaustive sequence data: tracks, clips, effects, markers |
get_full_clip_info |
Everything about a clip: effects, keyframes, metadata |
get_timeline_summary |
Human-readable overview: duration, coverage %, effects |
search_project_items |
Filter by name, extension, offline status, color label |
get_premiere_state |
Full snapshot: project, sequence, playhead, selection |
inspect_dom_object |
Explore any Premiere Pro DOM object interactively |
| Tool | Description |
|---|---|
save_project / save_project_as / open_project |
File operations |
create_project / close_project |
Project lifecycle |
import_media / import_folder / import_ae_comps |
Import media and AE comps |
create_bin / delete_bin / rename_bin / create_smart_bin |
Bin management |
import_sequences / import_fcp_xml |
Import from other projects |
create_bars_and_tone |
Generate bars & tone media |
set_scratch_disk_path |
Configure scratch disks |
consolidate_and_transfer |
Project Manager consolidation |
| Tool | Description |
|---|---|
add_to_timeline / overwrite_clip |
Insert and overwrite edits |
ripple_delete |
Remove clip and close gap (QE) |
roll_edit / slide_edit / slip_edit |
Professional trim modes (QE) |
move_clip_to_track |
Move between tracks (QE) |
set_clip_speed_qe / reverse_clip |
Speed/reverse (QE) |
split_clip / trim_clip / move_clip |
Basic edits |
set_clip_properties |
Opacity, scale, rotation, position |
link_selection / unlink_selection |
Link/unlink A/V |
| Tool | Description |
|---|---|
apply_effect / apply_audio_effect |
Apply by name (QE) |
remove_effect / remove_all_effects |
Remove effects |
color_correct |
Lumetri: exposure, contrast, temperature, etc. |
apply_lut |
Apply LUT files |
stabilize_clip |
Warp Stabilizer with configurable settings |
| Tool | Description |
|---|---|
add_keyframe / get_keyframes |
Create and read keyframes |
remove_keyframe / remove_keyframe_range |
Delete keyframes |
set_keyframe_interpolation |
Linear / Hold / Bezier |
get_value_at_time |
Query interpolated value at any time |
set_color_value |
Set color properties on effects |
| Tool | Description |
|---|---|
export_sequence |
Export via Adobe Media Encoder |
capture_frame |
Export frame as PNG, return as base64 image |
export_as_fcp_xml / export_aaf / export_omf |
Interchange formats |
encode_project_item / encode_file |
Direct encoding |
start_batch_encode |
Start render queue |
| Tool | Description |
|---|---|
open_in_source / close_source_monitor |
Source monitor control |
insert_from_source / overwrite_from_source |
3-point editing |
play_timeline / stop_playback |
Playback control (QE) |
play_source_monitor |
Play in source monitor |
| Tool | Description |
|---|---|
| `select_c |