Premiere Pro JavaScript执行服务

一个为Adobe Premiere Pro设计的MCP服务器,允许通过UXP API执行任意JavaScript代码,提供对Premiere Pro API的完整访问。

  • by nepfaff
  • JavaScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 nepfaff/premiere-pro-mcp

使用说明

Premiere Pro MCP

用于Adobe Premiere Pro的MCP服务器,允许您对 Premiere Pro UXP API.

与其他公开一组固定工具的Premiere Pro MCP不同,此MCP公开了一个 execute-script 工具。LLM在运行中生成代码,为您提供Premiere Pro API的全部功能。

建筑

LLM / Claude ──MCP──▶ Node.js MCP Server ──file──▶ UXP Plugin ──eval──▶ Premiere Pro
                          (stdio)          ~/Documents/ppro-mcp-bridge/      (UXP API)
  1. MCP服务器向以下对象写入命令(JS代码) ~/Documents/ppro-mcp-bridge/ppro_command.json
  2. UXP插件轮询命令, eval()这是Premiere Pro的剧本吗
  3. 结果已写入 ~/Documents/ppro-mcp-bridge/ppro_result.json
  4. MCP服务器轮询并返回结果

先决条件

  • macOS(Windows未测试)
  • Adobe Premiere Pro 2025(v25.3.0+)
  • Node.js 18+
  • UXP开发工具 --从Creative Cloud桌面应用程序安装(搜索“UXP Developer Tool”,它是免费的)

设置

1.安装并构建MCP服务器

cd premiere-pro-mcp
npm install

2.在Premiere Pro中加载UXP插件

  1. 打开 Adobe Premiere Pro
  2. 打开 UXP开发工具 (这是一个单独的应用程序——如果您没有,请从Creative Cloud安装)
  3. 在UXP开发工具中,单击 添加插件 并选择 src/plugin/manifest.json 来自此repo
  4. 点击 负载 将插件加载到Premiere Pro中
  5. 这 MCP电桥 面板出现在Premiere Pro中,应显示“准备就绪——正在监听命令”

重要提示: 使用插件时,UXP开发工具必须保持打开状态。关闭它将从Premiere Pro卸载插件。每次重新启动Premiere Pro时,您还需要重新加载插件。

3.配置您的MCP客户端

对于 克劳德代码,添加到 ~/.claude.json (在相关项目关键或全球范围内):

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

对于 克劳德桌面版,添加到您的Claude Desktop配置文件(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

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

然后重新启动Claude Code/Claude Desktop,使其能够启动新的MCP服务器。

工具

execute-script

在Premiere Pro UXP上下文中执行JavaScript。脚本可以访问:

  • app --the premierepro 模块(require("premierepro"))
  • constants — premierepro.Constants

所有Premiere Pro API都是异步的——使用 await.使用 return 将数据发回。

// 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

检索上次脚本执行的结果(如果 execute-script 超时)。

get-help

获取API示例的帮助文本和完整的Premiere Pro UXP API参考链接。

故障排除

  • 等待Premiere Pro时超时 --确保MCP桥接面板在Premiere Pro中可见并显示“就绪”。检查UXP开发工具是否仍处于打开状态。
  • 插件未出现 --在UXP开发工具中,确保插件状态显示“已加载”。请再次尝试单击“加载”。
  • 网桥目录不匹配 --插件在启动时记录其网桥目录路径。验证它是否匹配 ~/Documents/ppro-mcp-bridge/.如果 os.homedir() 在UXP构建中损坏,插件将回退到 process.env.HOME.

运作原理

UXP插件使用 allowCodeGenerationFromStrings: true 在其清单中启用 eval()这允许MCP服务器发送任意JavaScript,该JavaScript在具有对Premiere Pro API的完全访问的Premiere Pro-UXP上下文中执行。

这与 后遗症MCP,但适用于Premiere Pro的UXP插件系统,而不是After Effects的ExtendScript/CEP。