关于 DaVinci Resolve MCP (free edition)
DaVinci Resolve MCP 是一个本地 MCP 服务,通过 Lua 桥接器让 Claude Code 操作 DaVinci Resolve。它提供项目、时间线、媒体和渲染工具,并支持直接运行 Lua。
主要功能
- 0133 个 Resolve 专用工具
- 02管理项目与时间线
- 03导入和编排媒体
- 04配置并控制渲染
- 05在 Resolve 中运行 Lua
- 06搜索随附的 API 参考
适用场景
- 01在时间线上添加标记
- 02导入素材并组建时间线
- 03排队并启动渲染
- 04使用 Lua 检查片段详情
MCP 相关
Claude Code 通过 stdio 连接本地服务。服务将请求转发给运行在 Resolve 内的 Lua 桥接器,并把结果返回 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
davinci-resolve-mcp
让 Claude Code 驱动免费版 DaVinci Resolve 21.1。
Resolve 21.1 免费版已从 Workspace > Scripts 菜单中移除 Python 脚本,并阻止外部脚本运行。Lua 菜单脚本仍可运行。本项目利用了这一点:一个 Lua 桥接程序在 Resolve 内运行,一个精简的 Python MCP 服务在外部运行。服务将 Lua 发送给桥接程序,桥接程序针对实时的 resolve 对象运行代码,并将结果发回。实测每次调用耗时约 80 至 95 ms。项目提供 33 个工具,另有 run_lua,可用于执行命名工具未涵盖的操作。
要求
- macOS
- DaVinci Resolve 21.1.2,免费版或 Studio 版
- Claude Code
/usr/bin/python3中的 Python 3.9 或更高版本- 无需通过 pip 安装。服务仅使用标准库。
安装
git clone https://github.com/kingjamesch/davinci-resolve-mcp.git
cd davinci-resolve-mcp
./install.sh
安装程序会执行以下四项操作:
- 将两个 Lua 脚本复制到
~/Library/Application Support/Blackmagic Design/DaVinci Resolve/Fusion/Scripts/Utility/。并将状态目录路径写入桥接程序。 - 创建状态目录
~/Library/Application Support/Blackmagic Design/DaVinci Resolve/ClaudeMCP,权限设为 0700。 - 在用户级别向 Claude Code 注册此服务,名称为
davinci。 - 打印后续步骤。
安装程序打印的后续步骤:
NEXT STEPS
1) Quit and reopen DaVinci Resolve once (it scans the Scripts menu only at startup).
2) In Resolve: Workspace > Scripts > Claude_MCP_Bridge (do this once per Resolve session; Claude_MCP_Bridge_Stop stops it).
3) In Claude Code run /mcp and check that 'davinci' is connected, then ask for resolve_status.
首次安装后需要重启一次 Resolve。Resolve 只会在启动时读取 Scripts 文件夹。
其他标志:
| 标志 | 效果 |
|---|---|
--claude-desktop | 也将 davinci 添加到 Claude Desktop 配置中。可选。现有配置会先备份。 |
--no-claude | 跳过 Claude Code 注册。 |
--check | 检查已安装的内容。 |
--uninstall | 移除 Lua 脚本和 Claude Code 注册。添加 --purge 还会删除状态目录。./uninstall.sh 执行相同操作。 |
安装为 Claude Code 插件
如果只使用 Claude Code,可以跳过克隆操作。在 Claude Code 中:
/plugin marketplace add kingjamesch/davinci-resolve-mcp
/plugin install davinci-resolve@davinci-resolve-mcp
/davinci-resolve:setup
此插件会自行注册 davinci 服务;/davinci-resolve:setup 会将两个 Lua
脚本复制到 Resolve 的 Scripts 文件夹中。然后重启一次 Resolve,并点击 Workspace > Scripts >
Claude_MCP_Bridge。插件还附带一个 resolve 技能,其中包含 Claude 所需的约定
(绝对帧、标记规则、Lua 惯用写法、仅适用于 Studio 版的注意事项)。
请使用插件或 ./install.sh,不要同时使用两者,否则 Claude Code 会看到两个 davinci 服务
(claude mcp remove davinci -s user 可移除基于克隆的服务)。
此服务也列在 MCP Registry
中,名称为 io.github.kingjamesch/davinci-resolve-mcp,供用户发现。该列表仅包含元数据:请按上述说明通过插件或克隆方式安装,因为桥接程序必须手动放入 Resolve 中。
日常使用
- 打开一个包含项目的 Resolve。
- 点击 Workspace > Scripts > Claude_MCP_Bridge。每次 Resolve 会话只需执行一次。
- 在 Claude Code 中,先请求
resolve_status。它会告知桥接程序是否正常运行。 - 如需停止桥接程序,点击 Workspace > Scripts > Claude_MCP_Bridge_Stop。
提示词示例:
- “调用 resolve_status,然后列出我的时间线。”
- “在当前时间线的 00:00:10:00 处添加一个名为 ‘fix audio’ 的红色标记。”
- “导入 /Users/me/Footage/day1 中的所有内容,并据此创建一个名为 Day 1 的时间线。”
- “将当前时间线的 mp4 渲染任务加入队列,输出到 /Users/me/Exports,开始渲染,并在完成后告诉我。”
- “使用 run_lua 列出视频轨道 1 上的片段颜色。”
工具
完整参考文档(包含所有参数)见 docs/TOOLS.md。该文档由代码生成。
- 状态和项目:
resolve_status、list_projects、get_project_info、get_project_setting、open_project、save_project、set_project_setting、open_page - 时间线:
list_timelines、get_timeline_info、get_timeline_items、get_timeline_markers、set_current_timeline、set_timecode、create_timeline、add_marker、delete_markers、insert_timeline_element、delete_timeline_items、export_timeline - 媒体池:
list_media_pool、get_clip_properties、create_media_pool_folder、import_media、append_clips_to_timeline - 渲染:
get_render_status、list_render_options、add_render_job、start_render、stop_render、delete_render_job - 备用方案:
run_lua可在 Resolve 内运行任意 Lua 5.1 代码块。scripting_api_docs可搜索 Blackmagic 随附的 API 参考文档,让 Claude 正确编写 Lua。
约定:路径均为绝对路径;帧数是时间线自身编号中的整数;时间码格式为 HH:MM:SS:FF;轨道和项目索引从 1 开始。
工作原理
- Claude Code 通过标准输入输出启动
server.py。该服务使用 MCP 通信,不持有网络套接字。 - 发送请求时,服务会在状态目录下创建文件夹。请求会以十六进制编码后写入文件夹名称。
- Lua 桥接程序每 30 毫秒列出这些文件夹,解码请求并使用绑定的
resolve对象执行请求。 - 桥接程序通过
fu:SetData返回结果,Resolve 会将其写入Fusion.prefs。服务会轮询该文件。 - 最后一次响应会保留在
Fusion.prefs中,并在写入约 10 秒后清除;桥接程序停止时也会清除该响应。 - 多个 Claude Code 会话可以共用一个 Resolve:每个服务都会在状态目录中获取锁,因此请求会逐个运行。
通信格式见 docs/PROTOCOL.md。设计记录见 docs/MCP-RECORD.md。
故障排除
- 工具提示桥接程序未运行。 打开一个项目,然后点击 Workspace > Scripts > Claude_MCP_Bridge,再重试。
- Workspace > Scripts 中没有 Claude_MCP_Bridge。 安装后没有重启 Resolve。退出并重新打开 Resolve。运行
./install.sh --check确认文件已就位。 - 工具超时。 Resolve 可能正在显示对话框,例如 Studio 升级提示,或导入后出现的帧率问题。请在 Resolve 中关闭对话框。长时间运行的操作也会阻塞桥接程序,直到操作完成。
- 仅限 Studio 的功能失败。 请勿在免费版中使用仅限 Studio 的功能。此类功能会失败,或打开升级对话框并阻塞桥接程序。
- 旧版 davinci-resolve-lite-mcp Python 脚本没有任何作用。 它们无法在 21.1 或更高版本中运行,因为 Python 脚本不再显示在 Scripts 菜单中,且外部脚本功能已被屏蔽。
暂未包含
调色页面节点工具、图库和静帧、Fairlight、复合片段和 Fusion 片段、键盘和预设导入或导出、项目归档和还原、Resolve 启动时自动启动桥接程序、Claude Desktop .mcpb 包,以及 Windows。run_lua 目前可以实现其中大部分功能。要从工具列表中移除 run_lua,请在服务环境中设置 DAVINCI_MCP_DISABLE_RUN_LUA=1。
安全态势
- 仅限本地。服务不会开放网络端口,也不会发送遥测数据。
- 无需凭据。身份由你的 macOS 用户决定。
- 任何可以写入状态目录的人都能以你的身份在 Resolve 中运行 Lua。该目录以 0700 模式创建。
- 破坏性工具需要
confirm: true。run_lua用途开放,因此 Claude 会被告知,在运行会删除或覆盖内容的代码前先征求你的同意。 - 响应大小设有上限。超出上限的结果会标记为
truncated。 Fusion.prefs对你的用户可读,并会保留上一次响应,直到将其清除。- 要关闭服务,请运行 Stop 脚本并删除状态目录。
- 服务仅将工具名称、状态和耗时记录到 stderr。绝不会记录参数或结果。
开发
运行测试:
/usr/bin/python3 -m unittest discover -s tests
更改任何工具后,重新生成工具参考文档:
/usr/bin/python3 scripts/gen_tools_doc.py
如果 docs/TOOLS.md 未更新,或工具被重命名,测试就会失败。
目录结构:
server.py stdio entry point
install.py, install.sh installer, uninstaller (uninstall.sh)
bridge/ Lua scripts that run inside Resolve
davinci_mcp/ server, transport, prefs parser, Lua encoder, docs index
davinci_mcp/tools/ one module per tool group
docs/ MCP-RECORD.md, PROTOCOL.md, TOOLS.md (generated)
scripts/gen_tools_doc.py generates docs/TOOLS.md
tests/ unit tests and the offline bridge round trip
致谢
- JSON 编码器和若干经测量得出的宿主事实改编自 saadk408/davinci-resolve-lua-mcp,采用 MIT 许可证。
- 将 Lua 通过偏好设置文件用作通道的想法来自 AutoSubs。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。