mcpField
D
DaVinci Resolve

DaVinci Resolve

本地服务
github.com媒体与设计14 天前更新

关于 DaVinci Resolve

DaVinci Resolve 是面向剪辑师、调色师和开发者的 MCP 服务,可让 AI Agent 通过 Resolve 脚本 API 操作软件。它以类型化操作、回读验证、删除确认和安全快照为项目变更提供检查。

主要功能

  1. 01在 17 个领域提供类型化操作
  2. 02对照 Resolve 验证写入结果
  3. 03删除前要求确认
  4. 04破坏性编辑前快照时间线
  5. 05支持批量运行和可复用工作流
  6. 06将调用记录到 JSONL 审计日志

适用场景

  1. 01整理素材和媒体箱
  2. 02组装并调色时间线
  3. 03根据 EDL 整合并渲染交付物
  4. 04导出交换文件并渲染指定范围

MCP 相关

该服务通过 stdio 或 Streamable HTTP 向 MCP 客户端提供 DaVinci Resolve 脚本操作,也提供 `davinci://status` 资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"aedelon-davinci": {
"command": "uvx",
"args": [
"davinci-mcp"
]
}
}
}
启动命令uvx davinci-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypidavinci-mcp1.0.4

工具

52

收录的工具列表 · 更新于 5 天前

参数类型必填说明
opobject是{action, ...params}。各操作的参数:参见说明或此服务端的 describe_action 工具。
op.actionenum是clear_audio_classification | clear_transcription
dry_runboolean否true:返回计划的效果,不做任何更改。
snapshotboolean|null否true:先备份时间线/项目;省略时遵循服务端策略。
confirm_tokenstring|null否取自首次调用的计划;附带此值重复调用以应用更改。

详细介绍

davinci-mcp:DaVinci Resolve 的安全、经过验证的 MCP 服务

CI PyPI Python 3.13+ Apache 2.0 DaVinci Resolve 21.1 MCP 规范 2026-07-28 Glama 评分 在 Ko-fi 上支持

让 AI Agent 在 DaVinci Resolve 中剪辑、调色和交付,每项更改都经过检查。


davinci-mcp 是适用于 DaVinci Resolve 的 MCP 服务。它让 Claude 等 AI Agent 能够使用完整的 Resolve 脚本 API:涵盖 17 个领域的 299 项类型化操作。每项更改都会先与 Resolve 本身核实,确认无误后才报告已完成。

它面向希望由助手代劳点击操作的剪辑师和调色师,也面向希望在 Agent 与 Resolve 之间搭建可靠桥梁的开发者。

查看实际效果

一个真实的 Claude Agent 只收到四条普通消息,就剪出了这支 52 秒的动作预告片,素材来自开放电影 Tears of Steel。它导入了素材,在节拍上排列了 33 个镜头,添加了标题卡,调出青橙色调,并完成渲染。整个过程没有任何摆拍;下方视频以 4 倍速播放。

Claude Agent 通过 davinci-mcp 在 DaVinci Resolve 中剪辑预告片
▶ 在 YouTube 上观看完整演示(39 秒)

Agent 剪辑的预告片
▶ 在 YouTube 上观看 Agent 剪辑的预告片(52 秒)

## 为什么选择 davinci-mcp

经过验证,而非寄望于运气

  • 每次写入后都会从 Resolve 读回,并在回执中标明 verified: true 或 false。Agent 无法声称并未发生的更改已完成。
  • dry_run 可预览任何写入,而不实际应用。
  • 删除需要征得同意:首次调用会返回计划和 confirm_token,只有再次使用该令牌调用同一操作后,才会删除内容。
  • 执行破坏性编辑前,会先为时间线创建安全快照。
  • 每次调用都会写入 JSONL 审计日志。

可靠

  • 在下方的基准测试中,20 项任务全部通过。社区 MCP 服务通过了 20 项中的 13 项,davinci-mcp-professional 通过了 20 项中的 10 项。
  • 会修正接近正确的参数,而不是直接拒绝(fade_out → FadeOut,裸片段名称 → 选择器),并报告每项改写。
  • 错误信息可指导操作:会建议正确字段(“你是不是想要”)、指出正确的工具,并说明 Resolve 拒绝了哪项渲染设置。

经济

  • batch_run 可在服务端通过一次调用串联整个操作序列,例如从时间线到渲染的 18 个步骤。
  • 客户端会延迟加载工具,因此首轮上下文约占 32k tokens。
  • 回复和架构都很简洁。与社区服务相比:成本降低 31 %,调用次数减少 60 %。

全面且可扩展

  • 涵盖 17 个领域:项目、媒体、时间线、项目项、色彩、Fusion、图库、音频、渲染、交换、AI 工具、UI、应用等。
  • 一次调用即可完成的工作流:conform_from_edl、deliver、build_vertical_reel、apply_look、title_overlay。
  • 你自己的配方:YAML 模板,也可选择使用 Python。

默认安全

  • 文件访问仅限于你允许的文件夹。
  • 服务自身的状态、配置和你的 Claude 配置文件始终禁止访问。
  • 导入文件夹时绝不会跟随符号链接。

基准测试

无头 Claude Agent(Sonnet)在运行中的 Resolve Studio 21.1 上执行了四项后期制作任务,每项运行五次。编写这些任务的 Agent 从未看过该服务的代码:

  • dailies:记录并整理一天的素材;
  • promo:使用音乐铺底制作宣传片;
  • look:使用版本和静帧进行调色;
  • spot QC:复制内容、导出交换文件并渲染指定范围。

每项检查都直接读取 Resolve,而不会通过受测服务。每个 Agent 都在相同的隔离测试框架下运行。完整方法和历史记录 →

已完成任务:davinci-mcp 100 %,社区 MCP 65 %,MCP Professional 50 %,Resolve 内置 MCP 100 % 4 项任务的成本:davinci-mcp $0.62,社区 MCP $0.99,MCP Professional $1.04,Resolve 内置 MCP $0.35

服务通过的任务工具调用次数成本(4 项任务)
davinci-mcp20 / 2035$0.62
社区 MCP(samuelgursky/davinci-resolve-mcp)13 / 2090$0.99
MCP Professional(hoyt-harness/davinci-mcp-professional)10 / 20156$1.04
Resolve 内置 MCP20 / 2017$0.35

关于内置服务。 Resolve 21.1 自带 MCP 服务。它的成本更低,因为它只提供一个工具 run_script_unsafe,让 Agent 在 Resolve 内运行任意 Python 脚本。这样运行步骤虽少,但操作前不会验证、读回、审计或创建快照,也不会确认删除操作。在我们的规模测试中(160 个片段、4 条时间线),它曾将标记放在错误的帧上,却报告任务已完成。davinci-mcp 以略高的成本,换来值得信赖的更改。

像剪辑师一样与它交流

Import the clips in ~/Footage/day03, sort interviews and B-roll into bins, and colour the circled takes green.
Build a 9:16 reel from these three shots, add subtitles from the audio, and render it for Instagram.
Conform this EDL against the media in ~/Rushes and deliver a ProRes master and an H.264 proxy.
Apply the show LUT to every shot of the timeline except the end card, and grab a still of the first shot.
Add a red marker at the start of every shot named "broll_" in Edit_03.
Duplicate the approved cut as "QC", export it as FCPXML and OTIO, and render 01:00:02:00 to 01:00:07:24.

工作原理

flowchart LR
    A["AI agent<br/>Claude, Cursor…"] -->|MCP call| V["Validate<br/>+ repair"]
    V --> C["Consent<br/>deletes only"]
    C --> N["Snapshot<br/>destructive only"]
    N --> X["Call Resolve<br/>one thread"]
    X <-->|scripting API| D[("DaVinci<br/>Resolve")]
    X --> R["Read back<br/>→ receipt"]
    R --> L["Audit log"]
    R -->|"verified: true / false"| A
  1. 验证。 Agent 调用某个领域工具,例如 timeline_write,并传入 {"op": {"action": ..., ...}},参数会根据类型化架构进行检查。系统会修正几乎正确的参数,并报告每项修正。
  2. 征求同意并创建快照。 删除操作会先停留在计划阶段,直到获得确认;破坏性编辑则会先创建快照。
  3. 调用 Resolve。 调用在单个执行器线程上运行,这是唯一会调用 Resolve 的地方。
  4. 读取结果。 服务会从 Resolve 读取结果,并返回包含 verified 的回执。较长的渲染会变成作业,Agent 可以等待其完成。

工具

共有 52 个工具。领域工具命名为 <domain>_read、<domain>_write 和 <domain>_delete,并接收 {"op": {"action": ..., ...}};它们合计提供约 300 个操作。读取不会产生副作用,写入会返回经过验证的回执,删除则会先请求确认。

  • resolve_status - 连接状态、Resolve 版本和版本类型、当前项目、时间线和页面。
  • describe_action - 一个或多个操作的精简参数架构。
  • search_api - 按名称或描述搜索 Resolve 21.1 脚本 API。
  • batch_run - 在一次调用中于服务端运行多个工具调用,并为整个批次请求一次确认。
  • workflow_write - 单次调用作业:conform_from_edl、deliver、build_vertical_reel、apply_look、title_overlay。
  • recipe_list / recipe_run - 列出并运行 YAML 或 Python 配方;每个步骤都会经过验证、核验和审计。
  • project_read / project_write / project_delete - 项目、文件夹、数据库、设置和设置预设;创建、加载、保存、归档、导入、导出。
  • media_read / media_write / media_delete - 媒体池和存储:导入、媒体箱、重新链接、代理、元数据、标记、旗标、多机位、遮罩、音频同步。
  • timeline_read / timeline_write / timeline_delete - 时间线、轨道、标记、播放头、复合片段和 Fusion 片段、导入和导出。
  • item_read / item_write / item_delete - 时间线项目:属性、速度、淡变、替换片段、旗标、颜色、标记、转场、稳定。
  • color_read / color_write / color_delete - 节点图、CDL、LUT、版本、调色组、DRX 调色、DCTL。
  • fusion_read / fusion_write / fusion_delete - Fusion 合成和工具:添加、连接、输入、关键帧、表达式、Text+ 标题、设置、熔接器。
  • gallery_read / gallery_write / gallery_delete - 静帧相册:抓取、导入、导出、添加标签。
  • audio_read / audio_write - 响度分析、静音检测、标准化、语音隔离、Fairlight 预设、音频映射。
  • render_read / render_write / render_delete - 格式、编解码器、预设和渲染作业;渲染时间线或范围、快速导出。
  • interchange_read / interchange_write - EDL、FCPXML、OTIO、标记 CSV 和 .cube LUT 文件,无需通过 Resolve 即可读取和写入。
  • ai_read / ai_write / ai_delete - 转录、从音频生成字幕、场景切点检测、Smart Reframe、音频分类、IntelliSearch。
  • vision_read - 导出或截取帧和联系表,让 Agent 查看画面。
  • ui_read / ui_write / ui_delete - 页面、菜单和键盘快捷键,用于处理少数 API 无法实现的操作。
  • app_read / app_write / app_delete - Resolve 应用信息、布局预设、关键帧模式、退出。
  • snapshot_list / snapshot_write - 时间线或项目的安全副本,在破坏性编辑前自动创建。
  • job_status / job_wait / job_list / job_cancel - 长时间操作(渲染、分析)以作业形式运行。
  • code_delete - 在 Resolve 中运行 run_lua 和 run_python,作为默认关闭且始终需要确认的应急通道。

安装

要求
  • DaVinci Resolve Studio 21.1 或更高版本。 在 Preferences → General → External scripting using 中,选择 Local。
  • 不支持免费版 21.1+。 Resolve 21.1 将 Python 脚本功能从免费版中移除,而且其 Lua 沙盒无法访问 Resolve API(已在 21.1.2 上测试)。在免费版 21.0.x 中,应用内桥接仍应可用:运行 davinci-mcp install --bridge,然后从 Workspace → Scripts 启动。
  • Python 3.13+ 和 uv(或 pipx / pip)。
uv tool install davinci-mcp

pipx install davinci-mcp 和 pip install davinci-mcp 也可以使用。

davinci-mcp doctor

doctor 会检查能否连接到 Resolve,并报告其版本、版本类型和通道。

Claude Code
davinci-mcp install --target claude-code

也可以手动添加:

claude mcp add davinci-mcp -- davinci-mcp serve
Claude Desktop
davinci-mcp install --target claude-desktop

这会将服务添加到 claude_desktop_config.json。重启 Claude Desktop 以加载配置。也可以手动操作:

{
  "mcpServers": {
    "davinci-mcp": { "command": "davinci-mcp", "args": ["serve"] }
  }
}

如果 Claude Desktop 找不到命令,请使用其绝对路径(which davinci-mcp)。

无需安装任何内容,任何客户端都可以通过 uvx 运行它:{ "command": "uvx", "args": ["davinci-mcp", "serve"] }。不要运行 uvx davinci-mcp install:这会将 uv 临时缓存中的路径写入客户端配置。

Cursor

在 ~/.cursor/mcp.json 中:

{
  "mcpServers": {
    "davinci-mcp": { "command": "davinci-mcp", "args": ["serve"] }
  }
}
VS Code

在 .vscode/mcp.json 中:

{
  "servers": {
    "davinci-mcp": { "type": "stdio", "command": "davinci-mcp", "args": ["serve"] }
  }
}
任何其他 MCP 客户端

通过 stdio 运行 davinci-mcp serve。使用 davinci-mcp serve --transport http 启用 Streamable HTTP;它会绑定到回环地址,其他主机需要提供 bearer token。该服务还会公开 davinci://status 资源。

## 配置

可选文件 ~/.config/davinci-mcp/config.toml 用于保存设置。任何键都可以通过 DAVINCI_MCP_<SECTION>__<KEY> 环境变量覆盖。

[safety]
allowed_roots = ["~/Movies", "~/Projects"]  # files outside these are refused (default: your home)
auto_snapshot = "destructive"               # "off" | "destructive" | "all"

[recipes]
allow_python = false                        # Python recipes run arbitrary code: opt in

该文件不会自动创建;未创建时会应用以下默认值。未知键或位于错误分区中的键会导致服务器因验证错误而停止。在环境变量中,列表写作 [~/Movies,~/Footage]。

所有设置
键默认值含义
state_dir(顶层)~/.local/state/davinci-mcp审计日志、作业、确认令牌和临时帧。
connection.auto_launchtrueResolve 未运行时启动它。
connection.headlessfalse使用 -nogui 启动 Resolve。
connection.call_timeout_s30单次 Resolve API 调用的最长等待秒数。
connection.launch_timeout_s90等待 Resolve 启动的最长秒数。
connection.script_api、connection.script_lib自动检测仅在检测失败时,指定 Resolve 脚本模块的路径。
safety.allowed_roots["~"]工具可以读取或写入的文件夹;其他位置一律拒绝。
safety.auto_snapshot"destructive"未经请求时创建快照的情形:"destructive"、"all" 或 "off"。调用时可通过 snapshot 强制创建。
safety.snapshot_dir<state_dir>/snapshots保存项目导出文件(.drp)的位置。
safety.snapshot_retention20每个项目保留的快照数量;超出部分会被清理。0 表示不保留。
safety.consent_ttl_s300confirm_token 的有效时间,单位为秒。
safety.enable_code_executionfalse允许执行任意 Python/Lua(code_delete)和 Fusion 脚本。这些代码会以你的用户权限运行,且不受 allowed_roots 限制。
http.host、http.port127.0.0.1、8765serve --transport http 的地址。任何非环回主机都需要令牌。
http.token_envDAVINCI_MCP_TOKEN存放 bearer 令牌的环境变量名称。
server.schema_mode"compact""full" 会在 tools/list 中列出每个操作的完整模式(内容会大得多)。
recipes.dirs["~/.config/davinci-mcp/recipes"]用户配方所在的文件夹(参见配方)。
recipes.allow_pythonfalse加载 *.py 配方;这些配方会运行任意代码。

常见问题

Agent 表示无法连接到 Resolve

请检查以下三项:

  • Resolve 正在运行;
  • 在 Studio 中,External scripting using 已设置为 Local;
  • Resolve 中没有打开任何对话框,例如更新提示或项目管理器。

然后运行 davinci-mcp doctor。

免费版能用吗?

从 21.1 开始就不能用了。Resolve 21.1 从免费版中移除了外部脚本功能和应用内 Python 脚本。应用内 Lua 脚本仍可运行,但它们在沙盒中运行,无法访问文件、网络或 Resolve API(在免费版 21.1.2 上测试),因此无法使用任何桥接方案。在免费版 21.0.x 上,应用内 Python 桥接(davinci-mcp install --bridge)应该仍可使用。否则,你需要 Resolve Studio。

它会删除我的作品吗?

未经同意不会。每次删除操作都会先返回计划,并且需要匹配的 confirm_token。破坏性编辑会为时间线创建快照,且每次调用都会记录日志。

它会访问我项目之外的文件吗?

只会访问 allowed_roots 内的文件。无论你允许访问哪些位置,服务器自身的状态、配置以及你的 Claude 配置文件始终会被拒绝访问。

为什么内置的 Resolve MCP 更省钱?

它每个作业都会运行一段未经检查的 Python 脚本。davinci-mcp 会执行有类型且经过验证的调用,因此步骤会多一些。batch_run 和单次调用工作流可以将这部分开销控制在较低水平。

## 贡献

欢迎提交问题和拉取请求。docs/domain-guide.md 介绍了如何添加一个操作:参数模型、处理程序、回读检查和测试。其余内容会据此生成。

uv sync
uv run pytest
uv run ruff check . && uv run pyright

致谢

  • 演示视频:Tears of Steel,© Blender Foundation | mango.blender.org,CC-BY 3.0。
  • 演示音乐:Kevin MacLeod 创作的 Five Armies(incompetech.com),CC-BY 4.0。

davinci-mcp 是一个独立项目,与 Blackmagic Design 无关,也未获其认可或赞助。DaVinci Resolve 是 Blackmagic Design Pty. Ltd. 的商标。

支持

davinci-mcp 免费且开源。如果它为你节省了剪辑时间,可以请我喝杯咖啡:

在 Ko-fi 上支持 davinci-mcp

由 Delanoe Pirard(Aedelon)制作 · Apache 2.0

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。