Skip to content
 
 

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Premiere Pro MCP

MCP server for Adobe Premiere Pro that lets you execute arbitrary JavaScript against the Premiere Pro UXP API.

Unlike other Premiere Pro MCPs that expose a fixed set of tools, this one exposes a single execute-script tool. The LLM generates the code on the fly, giving you the full power of the Premiere Pro API.

Architecture

LLM / Claude ──MCP──▶ Node.js MCP Server ──file──▶ UXP Plugin ──eval──▶ Premiere Pro
                          (stdio)          ~/Documents/ppro-mcp-bridge/      (UXP API)
  1. The MCP server writes a command (JS code) to ~/Documents/ppro-mcp-bridge/ppro_command.json
  2. The UXP plugin polls for commands, eval()s the script in the Premiere Pro context
  3. Results are written to ~/Documents/ppro-mcp-bridge/ppro_result.json
  4. The MCP server polls for and returns the result

Prerequisites

  • macOS (Windows untested)
  • Adobe Premiere Pro 2025 (v25.3.0+)
  • Node.js 18+
  • UXP Developer Tool — install from the Creative Cloud desktop app (search "UXP Developer Tool", it's free)

Setup

1. Install and build the MCP server

cd premiere-pro-mcp
npm install

2. Load the UXP plugin in Premiere Pro

  1. Open Adobe Premiere Pro
  2. Open the UXP Developer Tool (it's a separate app — install it from Creative Cloud if you haven't)
  3. In UXP Developer Tool, click Add Plugin and select src/plugin/manifest.json from this repo
  4. Click Load to load the plugin into Premiere Pro
  5. The MCP Bridge panel appears in Premiere Pro and should show "Ready — listening for commands"

Important: The UXP Developer Tool must stay open while using the plugin. Closing it will unload the plugin from Premiere Pro. You also need to re-load the plugin each time you restart Premiere Pro.

3. Configure your MCP client

For Claude Code, add to ~/.claude.json (under the relevant project key or globally):

{
  "mcpServers": {
    "premierepro": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/premiere-pro-mcp/build/index.js"]
    }
  }
}

For Claude Desktop, add to your Claude Desktop config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "premierepro": {
      "command": "node",
      "args": ["/absolute/path/to/premiere-pro-mcp/build/index.js"]
    }
  }
}

Then restart Claude Code / Claude Desktop so it picks up the new MCP server.

Tools

execute-script

Execute JavaScript in the Premiere Pro UXP context. Scripts have access to:

  • app — the premierepro module (require("premierepro"))
  • constantspremierepro.Constants

All Premiere Pro APIs are async — use await. Use return to send data back.

// List all sequences
const project = await app.Project.getActiveProject();
const sequences = await project.getSequences();
return sequences.map(s => ({ name: s.name, id: s.sequenceId }));
// Import media
const project = await app.Project.getActiveProject();
const root = await project.getRootItem();
await project.importFiles(["/path/to/video.mp4"], true, root);
return "Done";
// Export sequence
const project = await app.Project.getActiveProject();
const sequence = (await project.getSequences())[0];
const manager = await app.EncoderManager.getManager();
await manager.exportSequence(
  sequence, constants.ExportType.IMMEDIATELY,
  "/output/video.mp4", "/path/to/preset.epr"
);
return "Export started";

get-results

Retrieve results from the last script execution (useful if execute-script times out).

get-help

Get help text with API examples and a link to the full Premiere Pro UXP API reference.

Troubleshooting

  • Timed out waiting for Premiere Pro — Make sure the MCP Bridge panel is visible in Premiere Pro and shows "Ready". Check that the UXP Developer Tool is still open.
  • Plugin not appearing — In UXP Developer Tool, make sure the plugin status shows "Loaded". Try clicking Load again.
  • Bridge directory mismatch — The plugin logs its bridge directory path on startup. Verify it matches ~/Documents/ppro-mcp-bridge/. If os.homedir() is broken in your UXP build, the plugin falls back to process.env.HOME.

How it works

The UXP plugin uses allowCodeGenerationFromStrings: true in its manifest to enable eval(). This lets the MCP server send arbitrary JavaScript which gets executed in the Premiere Pro UXP context with full access to the Premiere Pro API.

This is the same pattern used by the After Effects MCP, but adapted for Premiere Pro's UXP plugin system instead of After Effects' ExtendScript/CEP.

About

MCP server for Adobe Premiere Pro — execute arbitrary JavaScript via the UXP API

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages