关于 Premiere Claude Bridge
Premiere Claude Bridge 是面向视频剪辑师的开源 MCP 服务,让 Claude Code 或 Codex 在 Premiere Pro 和 DaVinci Resolve Studio 中协助整理素材、转录和粗剪。它会检查交付结果,并跟随剪辑师手动保存的修改。
主要功能
- 01素材记录与离线语音转录
- 02按台词或主题查找素材
- 03创建粗剪并剪除空白段
- 04生成字幕并调整音频电平
- 05镜头匹配及 LUT 输出
- 06色彩、响度和交付质量检查
适用场景
- 01整理纪录片拍摄素材并查找镜头
- 02从长录音挑选片段制作短版
- 03将手动修改后的剪辑用于后续渲染
- 04在交付前拦截错误画面或音频
MCP 相关
作为 MCP 服务连接 Claude Code、Codex 或其他兼容客户端,并将操作交给 Premiere Pro 或 DaVinci Resolve Studio。服务提供 31 个工具,包含剪辑操作、分析与检查。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Premiere Pro 和 DaVinci Resolve 的 AI 助手剪辑工具
premiere-claude-bridge 是一款免费开源的 MCP 服务,可让 Claude Code 或 Codex 在你自己的项目中完成助手剪辑师的工作。你只需用日常语言提出要求。它会记录素材、转录语音、在时间线上搭建粗剪,并在交付前检查结果。

一句话安装
打开 Claude Code(Claude 桌面应用的 Code 选项卡也可以),然后发送以下内容:
Install premiere-claude-bridge from github.com/koptsev63/premiere-claude-bridge following its README, and take me to the green "Connected" label in Premiere.
Claude 会克隆仓库、完成所有设置,并告诉你何时重启 Premiere。然后:
- 在 Premiere 中打开 Window → Extensions → Claude Bridge。面板应显示“Connected to Claude”。
- 开始一个新聊天,并询问:“检查与 Premiere 的连接。”
- 编辑期间保持该 Claude 会话处于打开状态。
在 DaVinci Resolve Studio 中没有面板。将 Preferences → System → General → External scripting using 设为 Local,重启 Resolve,然后让 Claude 为 Resolve 设置项目。
你需要 Premiere Pro 2024 或更新版本,或 DaVinci Resolve Studio,以及 Claude 或 Codex 订阅。已在 macOS 上测试。Windows 有安装步骤,但目前还没人确认可用。想手动安装?请参阅手动安装。
可以让它做什么
整理素材
- 查看整个素材文件夹并撰写日志:镜头中有什么、动作和声音出现在哪里、哪些片段晃动或倾斜。每个片段都会附有一条画格缩略图,汇总成一页。
- 离线转录俄语、英语、匈牙利语和其他语言的语音,然后标出可能听错的词。
- 按词查找素材:角色台词、某个主题、“夜晚那段很长的独白”。
构建剪辑
- 按顺序将不同条拍摄素材放到时间线上,并标记故事节拍。
- 剪掉停顿和无声片段。
- 从长录制中挑选最精彩的片段,制作短版本。
- 用相同素材制作两个风格迥异的粗剪版本,供你选择。
- 为手动制作的剪辑创建变体:删去一个场景、插入一段内容,同时保留其他所有画格的位置。
声音和字幕
- 在语音下方压低音乐音量,并平衡不同条拍摄素材的音量。
- 输出 SRT 字幕和烧录字幕。
调色及移交调色师
- 逐镜头将摄像机、AI 生成和无人机拍摄的画面匹配到统一色彩基准,然后烘焙出三种 LUT 风格,并用 ffmpeg 渲染。
- 使用剪辑师的 Resolve
.drt制作调色用的“kolbasa”:将每个镜头重新链接到摄像机原始素材,移除调色,并输出 ProRes 422 HQ。如果 80 个镜头中有一个与剪辑师的剪辑不匹配,它就会在渲染前停止。
交付前检查
- 如果调色导致高光过曝、肤色发红,或效果肉眼不可见,就拒绝该调色。
- 如果文件比例错误、边缘晃动或没有声音,就拒绝该文件。
跟随你的操作。 移动剪辑点、重新输入字幕、保存项目。它会读取你保存的 .prproj,之后都基于你的版本继续工作。
它没有审美。决定权始终在你手中;它负责记录、整理和检查。
一位剪辑师的评价
“按照你的说明,一切都顺利安装好了。唯一遇到的问题是设置首次连接。”
“目前我只试着用助手在时间线上做基本的文件整理,比如按时间顺序排列重复镜头、剪掉空白阶段等。它处理得很好,一切都很直观。”
Andrey,电影剪辑师,2026 年 10 月
英文原文:“按照你的说明,一切都顺利安装好了。唯一遇到的问题是设置首次连接。”以及:“目前我只用助手在时间线上做基本的文件整理,比如按时间顺序排列重复镜头、剪掉空白阶段等。它处理得很好,一切都很直观。”
他遇到的问题现在已成为上文的步骤 2。
0.4 新功能:没人发现的错误镜头
一个真实的周日,正在制作电影节预告片。剪辑师在 Resolve 中用代理文件完成剪辑,并发送了一个 .drt 文件。调色师需要把同一段剪辑套用到 4K S-Log3 摄影机原始素材上。导入看起来很干净,时长也精确到帧,但 79 个镜头中仍有一个不对,而且这个错误反复出现了三次:
- Resolve 把一个人群镜头放到了原本应是环绕主角的镜头的位置。
- “修正”时相信了
.drt里的编号,结果换成了第三个镜头。 - 剪辑师提供时间码后,镜头才终于正确。
每隔 7 秒取一帧的联系表看不到只有 3 秒的镜头。因此,core/drt_audit.py 会读取两次剪辑:一次读取 .drt,一次读取 NLE 实际铺设的内容,然后逐个片段进行比较。如果两者不一致,它就不会渲染,而是显示两种读取结果,并请你提供剪辑师的时间码。两个文件都不是真相,剪辑师才是。对于剪辑师反向播放或变速处理过的片段,程序会读取 Resolve 的速度映射,而不是 In 字段:反向播放的片段会以正向源素材片段的形式加入拉取清单,并附上需要翻转回来的备注;其他速度变化则会暂停处理,等待剪辑师提供时间码。
同一版本还包含:core/shotmatch.py 可将摄影机、AI 和无人机镜头统一到同一色彩基准,并将结果烘焙为 LUT,速度约为逐帧用 Python 调色的 60 倍。详情见 CHANGELOG。
演示
You: "Open Premiere. Import all .MTS from ~/Desktop/Footage/.
Create a 1080p25 sequence called 'Rough'. Place clips
00118 (1-6s), 00149 (4-9s), 00130 (1-5s) on V1 in order.
Add markers at every emotional beat per Murch's hierarchy."
Claude: ✓ Imported 108 clips into bin '01_Source_MTS'
✓ Created Rough — 1920x1080, 25fps, 3 V / 6 A tracks
✓ Placed 3 clips on V1, total 14 sec
✓ Marked 5 emotional beats: HOOK @0s, COMEDY @5s,
PIT @8s, BREATH @11s, PAYOFF @13s
→ 此提示词的实际输出。完整的 12 段剪辑清单见 examples/grave-stakes-teaser/cutlist_v3.json,它用于制作案例研究预告片。
与其他 Premiere 和 Resolve MCP 服务的对比
现在 GitHub 上大约有 15 个 Premiere MCP 服务,还有几个用于 Resolve。大型项目各有所长,而本项目并不擅长这些方面,因此下面如实说明差异(截至 2026 年 10 月核查)。
其他项目更胜一筹之处
- 带类型的时间线工具。 hetpatel-11/Adobe_Premiere_Pro_MCP 和 leancoderkavy/premiere-pro-mcp 提供数百个带类型的工具,用于效果、关键帧、转场和多机位剪辑。这里的这些操作都要通过
pr_eval_jsx完成。 - 安装。 它们提供 npm 包和安装程序。本仓库需要克隆并创建符号链接。
- UXP。 两者都有 UXP 预览版。本面板仅支持 CEP。
- Resolve 的覆盖深度。 samuelgursky/davinci-resolve-mcp 涵盖 Fusion、Fairlight 和免费版。本项目需要 Resolve Studio,且已在 macOS 上测试。
本项目提供、但它们的 README 未提及的功能
| 你的剪辑会同步回来 | 读取已保存的 .prproj,并让后续每次渲染都符合你手动做出的修改 |
| 拒绝放行的检查关卡 | 色彩、响度和交付检查会报错,而不是交付有问题的文件 |
| 时间线之前的工作 | 自动记录原始素材、离线转录、删除静默片段、生成两个粗剪版本、添加字幕 |
| 一种剪辑方法 | 将 Walter Murch 的六法则作为决策规则写入 skills/film-editing/SKILL.md |
| 一个大脑,两款剪辑软件 | 同一份剪辑列表可用于 Premiere 或 Resolve |
| 精简的工具集 | 共 31 个工具,其中一个是兜底工具 pr_eval_jsx:只有几十个,而不是几百个,因此模型无需搜索工具就能找到所需功能 |
如果你需要一个能操作 Premiere 中每个按钮的 Agent,请选择大型服务之一。如果你想要的是一位会检查自身输出、并遵循你手动修改的纪录片助理剪辑师,那么这个项目就是为你准备的。
我为什么创建这个项目
我是一名电影导演(拍过在电影节放映的短片,目前正在编剧实验室开发两部剧情长片——Doukhobors 入选 TFL Next,Grave Stakes 入选 Cinéfondation)。我经常摆弄 Adobe Premiere,每制作一支预告片,就要花 4 到 6 小时重复做那些枯燥的助理剪辑工作:观看所有每日素材、在 Excel 中记笔记、把精选片段拖到时间线上、修剪、调整时长。
我试过 Adobe 自己的 AI 工具。Adobe 官方 Creative Cloud 连接器宣称支持“Premiere 功能”,但实际提供的只有四种云端视频工具,和桌面应用毫无关系。Adobe 文档本身也写道:要按时间戳修剪,请使用 Adobe Premiere。于是我做了一个真正能完成这件事的工具。
其中不太显而易见的一点是:我不想要一个随机点击按钮的聊天机器人。我想要一个像剪辑师一样思考的助手。因此,本仓库的核心是 skills/film-editing/SKILL.md——将 Walter Murch 的 In the Blink of an Eye 压缩为机器可执行的决策规则。我的 AI 助手提出的每个剪辑点都会按“情感 > 故事 > 节奏 > 视线轨迹 > 二维 > 三维”的优先级排序,并且我可以针对每个镜头进行调整。
它已在我的实际项目 Grave Stakes 预告片中发挥作用。我希望其他导演和剪辑师也能使用同样的工具,而不必从头重新实现这套桥接功能。
诚实说明局限
这座桥接层让 Claude 能以编程方式完全控制 Premiere。随附的 watch 技能基本上解决了此前“只能使用静帧”的限制。仍然存在的问题:
- 对帧以下时长的直觉。 Murch 级别的“修剪 8 帧”判断仍需要人工剪辑师完成。
- 微表情的细微差别。 画面加转录能解决 80% 的问题;最后 20% 取决于品味。
- 从零构建戏剧结构。 必须指定结构——该技能不会凭空创造故事主线。
定位为:资深助理剪辑师 + 自动化,而不是导演的剪辑师。
面向开发者
手动安装
前提条件
选择一个 Agent 和一个 NLE——桥接工具会将它们连接起来:
- Agent:Claude Code 或 OpenAI Codex(两者都支持 MCP)——也可以使用任何兼容 MCP 的客户端
- **NLE:**Adobe Premiere Pro 2024+ 或 DaVinci Resolve Studio(付费版 Studio——免费版没有脚本 API 或防抖功能)。Premiere 可在 macOS/Windows 上运行;Resolve 路径已在 macOS 上测试。
- MCP 服务需要 Node.js 20+
- 分析工具需要 Python 3.11+ 和 ffmpeg(相机抖动和水平线检测需要 OpenCV:
pip install opencv-python-headless)
你只需用 日常语言交流 来驱动它——无需记忆命令。终端只用于一次性安装。
1. 克隆并安装
git clone https://github.com/koptsev63/premiere-claude-bridge.git
cd premiere-claude-bridge
cd mcp-server && npm install && cd ..
2. 注册 MCP 服务
将以下内容添加到 ~/.claude.json(Claude Code)或客户端的 MCP 配置中:
{
"mcpServers": {
"premiere": {
"command": "node",
"args": ["/absolute/path/to/premiere-claude-bridge/mcp-server/server.js"]
}
}
}
3. 将 CEP 面板安装到 Premiere
macOS:
defaults write com.adobe.CSXS.11 PlayerDebugMode 1
defaults write com.adobe.CSXS.12 PlayerDebugMode 1
ln -sf "$(pwd)/cep-extension" \
~/Library/Application\ Support/Adobe/CEP/extensions/com.koptsev.claude-bridge
Windows(PowerShell 管理员):
New-ItemProperty -Path "HKCU:\Software\Adobe\CSXS.11" -Name PlayerDebugMode -Value 1 -PropertyType String -Force
New-ItemProperty -Path "HKCU:\Software\Adobe\CSXS.12" -Name PlayerDebugMode -Value 1 -PropertyType String -Force
mklink /D "$env:APPDATA\Adobe\CEP\extensions\com.koptsev.claude-bridge" "$(Get-Location)\cep-extension"
重启 Premiere → 窗口 → 扩展 → Claude Bridge → 显示绿色的“Connected to Claude”。
首次连接(容易卡住的地方)
- 保持 Claude Code 会话处于打开状态。 MCP 服务是 Claude 会话的子进程。关闭会话(或桌面应用中的 Code 标签页)后,面板会变为“Disconnected”。
- 安装后开启新的聊天。 会话仅在启动时加载 MCP 服务,因此你执行安装操作的那个聊天暂时看不到桥接工具。
- 先进行健康检查:“使用
pr_status检查桥接状态。”如果回复中包含你的 Premiere 版本和项目名称,就表示一切已连接就绪。
4.(可选)启用分析工具
pip install -U pillow opencv-python-headless openai-whisper
brew install yt-dlp ffmpeg # macOS
# Linux: sudo apt install ffmpeg && pip install yt-dlp
openai-whisper 是 /watch 使用的离线转录后端——无需 API 密钥,对匈牙利语、俄语等语言的处理能力远胜云端的 whisper-1。
→ 详细安装说明与故障排除:docs/install.md
工具(Claude 可以调用的 MCP 命令)
| 工具 | 功能 |
|---|---|
pr_status | 桥接健康检查 + Premiere 版本 + 活动项目的信息 |
pr_get_project_info | 列出所有素材箱 + 项目项(附带可供引用的 nodeId) |
pr_get_active_sequence | 序列尺寸、fps、轨道数量 |
pr_list_timeline | 按轨道完整列出剪辑(入点/出点、开始/结束、时长) |
pr_get_selected | 时间线中当前选中的剪辑 |
pr_get_playhead / pr_set_playhead | CTI 控制 |
pr_add_marker | 在指定时间放置标记,并设置名称 + 注释 |
pr_export_ame | 使用 .epr 预设将导出任务加入 Adobe Media Encoder 队列(匹配源;不接受代理预设) |
pr_import_captions | 一次导入一个 .srt 文件,每个文件对应一条字幕轨道 |
pr_list_video_effects | Premiere 识别的效果名称(本地化 UI) |
pr_add_video_effect | 按英文名称或本地名称添加效果,并通过组件数量验证 |
pr_eval_jsx | 应急入口——运行任意 ExtendScript 代码,并返回最后一个表达式的结果 |
pr_ping / pr_dialog_check | 快速健康检查;“Premiere 是否在等待点击?”(模态窗口检测器,0.6) |
pr_probe_media / pr_import_media | 编解码器和磁盘空间检查(AV1/VP9 会以仅含声音的方式导入)、复制 H.264 范围、每次调用导入一个文件 |
pr_make_sequence | 从剪辑范围创建序列,无需打开任何对话框:尺寸、fps、素材箱;读取并返回设置 |
pr_set_motion / pr_set_motion_keyframes | 设置剪辑的缩放 / 位置 / 旋转(单位为像素);在镜头切换处保持关键帧 |
pr_add_markers / pr_list_markers | 批量处理标记,并验证数量 |
pr_open_sequences / pr_activate_sequence | 序列标签页和活动序列 |
pr_get_timeline / pr_get_inout | 任意序列中带秒数边界的剪辑;手动修剪后的渲染范围 |
pr_delete_sequence / pr_move_to_bin / pr_list_bin / pr_save_project | 项目整理 |
pr_build_sequences | 根据一份规范创建多个序列:导入、创建、运动、关键帧、标记、打开 |
→ 完整工具参考 + ExtendScript 配方: docs/tools.md
0.6 新增:无需点击即可创建序列
需要从一段播客中创建 10 个竖屏短视频,并将它们制作成 Premiere 序列(24.10.2026)。过程中接连出了 4 个问题,现在都由桥接函数解决:
createNewSequence(name, presetId)会打开“Создать эпизод”对话框,导致桥接超时挂起。pr_make_sequence改用无对话框的路径(对项目项调用setInPoint/setOutPoint、createNewSequenceFromClips、getSettings/setSettings),并读取设置进行验证。- 从 yt-dlp 导入的 AV1 源文件“成功”导入后却只有声音。
pr_import_media会先运行 ffprobe,拒绝 AV1/VP9/VP8/4:4:4,并提供只复制所需范围的 H.264 文件所用的 ffmpeg 命令(也可通过convert: true运行该命令),同时拒绝所有可用磁盘空间不足 2 GB 的情况。 - 任何模态窗口都会让所有工具卡住,且没有任何说明。
pr_dialog_check(以及每个 0.6 工具在超时时)会告知你具体情况:面板的调试端口仍会响应,但脚本线程被阻塞;它会显示屏幕上额外窗口的名称,并用俄语告诉你要按哪个按钮。 - 运动关键帧两次给出了错误信息:
setInterpolationTypeAtKey传入 5 表示 Bezier(保持模式是 4);关键帧时间采用媒体时间(inPoint + t),而getValueAtTime无论你使用哪种时间基准都会一致地返回结果。两者都是通过导出帧并与 ffmpeg 预览进行对比后发现的,而非通过 API 发现。pr_set_motion_keyframes会进行转换并保持关键帧。
所有这些也都是 pk.js 命令(node mcp-server/pk.js make-seq ...),因此不使用 MCP 面板的会话也能实现同样的功能。验收测试中,使用 10 个序列的规范调用 pr_build_sequences 耗时 6 秒;通过读取每个序列的时间线、Motion 值和标记名称,逐一完成验证。
多个 Claude 会话争抢端口时的直连路径
MCP 服务占用一个 WebSocket 端口(9876),面板会连接持有该端口的服务器实例。从 0.5.0 开始,调用工具的会话会接管端口,因此这种情况很少需要处理。如果有旧版桥接程序(在 0.5.0 之前启动)仍占着端口,或者你想在完全不启动 MCP 服务的情况下运行脚本,这种方式仍然很有用。
mcp-server/pk.js 不使用该端口。它会连接到面板自己的 Chromium 调试端点(端口 8088,在 cep-extension/.debug 中声明,并且已由 PlayerDebugMode 安装步骤启用),并像面板一样调用 evalScript。任意数量的会话都可以同时使用它。
node mcp-server/pk.js info # version, project, active sequence
node mcp-server/pk.js eval 'app.project.name' # one ExtendScript expression
node mcp-server/pk.js file build_sequence.jsx # a whole script
echo 'app.version' | node mcp-server/pk.js eval -
node mcp-server/pk.js status # 0.6: health + "is Premiere waiting for a click?"
node mcp-server/pk.js make-seq --name "ПОДКАСТ 01" --file /abs/clip.mp4 --in 10 --out 43.6 --w 1080 --h 1920 --fps 29.97 --bin "ПОДКАСТ шортсы"
node mcp-server/pk.js build --spec spec.json # many sequences from one spec
不带参数运行 node mcp-server/pk.js 会列出所有带类型的命令(probe、import、make-seq、motion、motion-keys、markers、open、activate、timeline、inout、delete-seq、move、ls、build、save)。这些命令与 MCP 工具共用 mcp-server/lib/ops.js,因此两种路径的行为相同。
Node 22+ 无需安装任何包;较旧版本的 Node 会使用 npm install 已安装到 mcp-server/ 中的 ws。Premiere 必须正在运行,并且 Claude Bridge 面板已打开。结果就是 evalScript 返回的字符串,因此请让脚本执行 return JSON.stringify(...)。告诉你的 Agent:“如果 pr_status 显示面板未连接,就使用 node mcp-server/pk.js”。
Resolve 端也有类似的应急入口,还能查看时间线:
python -m core.adapters.resolve_run exec script.py 会运行你的 Python 脚本,并预加载 resolve、project、timeline 和 mp;still / grab 则会将合成后的时间线帧作为 PNG 返回。
交付循环(实际交付剪辑成片的流程)
渲染并不等于交付。编辑者必须能够打开项目、提出异议并移动剪辑,因此这个流程最终会回到机器上:
cutlist → sequences in the editor's own project → he edits and saves →
core.prproj reads his version → renders + grade conform to it →
core.colorgate passes it or sends it back
| 模块 | 用途 |
|---|---|
core/prproj.py | 读取已保存的 .prproj:序列、字幕提示和画面剪辑。根据剪辑列表将 Razor 切开的片段重新拼接;未改动的行按顺序从旁车文件中解析,绝不根据重叠关系匹配(转录时间和剪辑时间是两种不同的时钟) |
core/colorgate.py | 双向色彩门控。上限:检查剪切、过度饱和,以及相对于底片的肤色 Cr 和饱和度。下限:检查平均 CIE ΔE,确保肉眼看不出差异的色彩效果也无法通过。assert_ok() 会抛出异常,而不是放行交付 |
core/qc.py | 检查渲染文件的几何形状和残余抖动,并验证交付完整性:解码正常、尺寸和帧率符合承诺、包含音频 |
core/loudness.py | 平衡各镜头的音量,然后统一应用静态增益和真峰值限制器,使其达到交付目标。门控指标:综合 LUFS、真峰值、镜头间差异 |
core/screen_comp.py | 屏幕替换:将片段合成到素材中的手机、显示器或电视屏幕上,并跟随 ECC 摄像机跟踪,采用色彩精确的 Rec.709 输入/输出。门控要求:屏幕外的素材必须保持不变 |
core/adapters/resolve_run.py | 从 shell 使用 Resolve:导出时间线、将合成帧作为 PNG 返回(still、grab),以及用 exec 运行你自己的脚本 |
core/ | 流程的其余部分:剪辑列表 IR、适配器、字幕、闪避、降噪、精彩片段、节拍 |
# does this grade burn the picture — or is it invisible?
python -m core.colorgate base.mov graded.mp4 --frames 8 --upto 60
# what did the human actually approve in there?
python -m core.prproj "reel.prproj" --srt subs.srt
# even out the takes, hit -14 LUFS / -1 dBTP, and prove it (exit 1 = do not ship)
python -m core.loudness master.mov deliver.mp4 --shots 0,5.6,11.2
# put a clip inside the TV in the shot
python -m core.screen_comp plate.mp4 content.mp4 out.mp4 --config screen.json
技能
film-editing/
将 Walter Murch 的剪辑操作系统转化为 Claude 的决策规则:
- 六法则(情感 51% > 故事 23% > 节奏 10% > 视线引导 7% > 二维 5% > 三维 4%)
- 眨眼理论、误导、概念剪辑、成对思考、决定性瞬间
- 预告片/先导片/蒙太奇/访谈/标题卡的节奏表
- 俄语↔英语术语对照
以及相关工具:
tools/analyze_clips.py— 文件夹 → HTML 联系表(运动 + 音频 + 地平线 + 条带)tools/horizon_detect.py— 天空与地面分割 + 用于倾斜检测的 Hough 后备方案
watch/ (从 bradautomates/claude-video 引入,MIT)
让 Claude 真正观看视频片段。通过三种 Whisper 后端提取 30-100 帧和文字稿:
local(openai-whisper,无需密钥,离线,免费)——推荐- Groq
whisper-large-v3(云端,速度最快,约 $0.0002/分钟) - OpenAI
whisper-1(云端,速度最慢,约 $0.006/分钟)
鸣谢请参阅 skills/watch/ATTRIBUTION.md,集成工作流请参阅 skills/film-editing/SKILL.md §XIV。
架构

请参阅 docs/architecture.md。值得注意的设计选择:
- 调用会话获得面板——每个 Claude 或 Codex 会话都会启动自己的服务,且同一时间只有一个服务能占用端口 9876。从 0.5.0 起,接收到工具调用的服务会通过同一端口上的 HTTP 请求占用者释放端口,然后绑定端口并等待面板重新连接;如果占用者正在处理请求,它会一直占用端口,直到处理完成。系统不会轮询。若占用者不是 0.5.0+ bridge,则绝不会触碰它:错误信息会指出其 pid。
mcp-server/pk.js仍通过调试端口连接面板(多个 Claude 会话争抢端口时的直接路径)。 - ExtendScript JSON polyfill——Adobe 从未在其 ES3 引擎中提供 JSON。没有这个 polyfill,所有带类型的工具都会在
JSON.stringify上失败。 - 自修复套接字查找——如果 CEP 面板重新加载后缓存的
panelSocket失效,则采用仍处于活动状态的wss.clients[0]。
这些问题都是在 Grave Stakes 案例研究中发现的真实 bug。请参阅 CHANGELOG.md。
路线图
- v0.1 — MCP bridge + 电影剪辑技能 + analyze_clips
- v0.2 — 打包
/watch技能、本地 Whisper、地平线检测 v2 - v0.3 —
trailer-bridge技能包——7 种类型专用方案(动作、剧情、喜剧、恐怖、纪录片、惊悚、爱情)+ LUT 预设 + 自动渲染 - v0.4 — 多机位音频同步——通过音频波形 xcorr 匹配摄像机角度,以编程方式构建多机位片段
- v0.5 — 人脸/情绪检测——对每个片段运行 mediapipe → “演员在这条素材中的情绪高光时刻在哪里?”
- v0.6 — 发布到 MCP Registry——官方收录 + 用于自动发布的 GitHub Action
- [~] v1.0 - 通用 NLE 核心——通过 OpenTimelineIO 剪辑列表将剪辑逻辑与 Premiere 解耦;Premiere、DaVinci Resolve(Studio Python API)和 Final Cut(FCPXML)成为可互换的后端(#6)。基础已在
core/中落地:剪辑列表 IR + 无损 OTIO 往返转换、功能矩阵、全部三个适配器、与 NLE 无关的审核循环,672 项测试全部通过。**已在 Resolve Studio 21 上完成 Resolve 适配器端到端验证。**剩余工作:conform/代理素材重链接、功能探测。
→ 想认领其中一项?提交带有 claim 标签的 issue。
为什么“通用 NLE 核心”不等于“为每款编辑器提供相同的桥接程序”
这三款编辑器的集成方式有根本差异,因此 v1.0 采用的是适配器设计,而不是复制 Premiere 桥接程序(epic #6):
- 剪辑思路与 NLE 无关。
skills/film-editing/(Murch 的六法则)和/watch感知层负责分析素材和剪辑点,而不是 Premiere。它们不会改变。 - 一份剪辑清单,以 OpenTimelineIO 表示。 剪辑只需确定一次,形成 OTIO 时间线(Grave Stakes 示例中的
cutlist_*.json已正式化)。OTIO 是行业交换标准——Resolve 可原生读取和写入,FCPXML 有 OTIO 适配器,Premiere 则通过此桥接程序处理。 - 每款 NLE 配备轻量驱动程序,使用相同的动词集。 Premiere = 现有的 CEP/ExtendScript 桥接程序。DaVinci Resolve = 通过官方脚本 API 直接使用 Python(需要 Resolve Studio——免费版禁用了外部脚本功能)。Final Cut = FCPXML 往返处理(文件交换,而非实时控制)。
总之:一次做出的决策可以输出到任何编辑器。“AI 控制 Resolve”已经相当常见(已有多个 MCP 服务);这里的差异化优势在于上层的剪辑操作系统,而非底层驱动程序。
贡献
欢迎提交 PR、问题和技能包——简要指南请参阅 CONTRIBUTING.md。
最简单的贡献方式:
- 🐛 如果安装步骤在你的 OS 上无法正常运行,请提交问题
- 🎬 为你熟悉的类型(音乐视频、播客、体育、婚礼)提交一个
SKILL.md - 📺 录制一段 60 秒的屏幕演示,展示你自己的使用场景 → 我会将它置顶在 README 中
- 🌐 将
film-editingSKILL.md 翻译成你的语言
请留意 good first issue 和 help wanted 标签。
许可证
MIT——详见 LICENSE。随附的 skills/watch/ 也采用 MIT 许可证,版权归 Bradley Bonanno 所有——详见 skills/watch/ATTRIBUTION.md。
状态
🟡 Beta v0.3。 已使用真实的节展送审纪录片素材完成端到端测试(Grave Stakes,108 个原始 .MTS 片段,共 4.4 GB),随后又在第二个制作项目中从头到尾完成测试——一支在 Premiere 中剪辑的竖版公告短片,经 DaVinci Resolve 整合并调色,并在导演自己的项目文件上运行了上述交付流程(2026 年 8 月)。目前已有三位外部剪辑师使用;第一位于 2026 年 10 月自行完成安装。
安装遇到问题或发现 Bug? 请在此提交问题或发起讨论。最新消息会发布到 Telegram 频道 @koptsev_AI(俄语)。
作者: Vladimir Koptsev——电影导演,巴塞罗那。TG @koptsev_AI · [email protected]
core/hits.py- 音乐重音(强拍)和“强拍处切换”验证,容差为两帧;core/xmeml.py- 根据剪辑清单为 Premiere 编写 FCP7 XML(0.5.1)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。