DaVinci Resolve控制服务器

通过MCP协议提供DaVinci Resolve Studio的远程控制功能,支持项目、时间线、媒体、Fusion、调色、音频、播放和渲染操作。

  • by Tooflex
  • Python
  • 本地部署
  • 21 星标
  • 更新于
在 GitHub 查看 Tooflex/davinci-resolve-mcp

使用说明

DaVinci Resolve MCP服务器

从MCP客户端(如Claude Desktop)控制DaVinci Resolve Studio。

此项目公开了Resolve项目、时间线、媒体、Fusion、颜色、音频、, 通过本地设备执行播放和渲染操作 模型上下文协议 服务器。

它的作用

服务器提供:

  • 32个MCP工具,用于编辑和控制Resolve;
  • 描述当前Resolve状态的6个只读MCP资源;
  • DaVinci Resolve脚本API在Windows、macOS上的自动发现, Linux;
  • 受保护的本机模块探测器,因此损坏 fusionscript 导入不 使MCP服务器崩溃;
  • Windows运行时隔离,以防止Resolve加载不兼容的 Python动态链接库。

来自MCP客户端的请求示例:

创建一个名为“产品发布”的项目。

导入这三个剪辑,并创建一个名为“粗剪”的时间线。

在第240帧添加一个蓝色标记,并注明“查看过渡”。

将当前成绩另存为“已批准外观”相册中的静止照片。

需求

  • DaVinci Resolve Studio 18或更新版本。 必须启用外部脚本。
  • 64位CPython 3.10或3.11。 Resolve的脚本模块仍在导入 imp,已从Python 3.12中删除。
  • 与Resolve一起安装的DaVinci Resolve脚本API。
  • MCP客户端,如Claude Desktop。

启动服务器之前,打开“解析”并设置:

偏好设置→ 系统→ 通用→ 使用外部脚本→ Local

Resolve的免费版不公开外部脚本连接 由该服务器使用。MCP过程可以启动,但它将保持断开状态。

安装

首先克隆存储库:

git clone https://github.com/Tooflex/davinci-resolve-mcp.git
cd davinci-resolve-mcp

视窗

使用Python.org上的常规64位Python。不要使用 uv-独立管理 Windows上的Python:解析 fusionscript.dll 众所周知,他会与那些人发生碰撞 建筑。

安装Python 3.10:

winget install --id Python.Python.3.10 -e

创建环境并安装依赖项:

& "$env:LOCALAPPDATA\Programs\Python\Python310\python.exe" -m venv .venv310
.\.venv310\Scripts\python.exe -m pip install --upgrade pip
.\.venv310\Scripts\python.exe -m pip install -e .

通过Windows启动器启动服务器:

.\run_server.ps1

总是使用 run_server.ps1 在Windows上。它将Resolve固定到正确的Python 运行时,隔离 PATH,并在启动前配置脚本API路径 服务器。

macOS

使用CPython 3.10或3.11创建虚拟环境:

python3.11 -m venv .venv
./.venv/bin/python -m pip install --upgrade pip
./.venv/bin/python -m pip install -e .

启动服务器:

./.venv/bin/davinci-resolve-mcp

自动检测标准的Resolve API位置:

  • /Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/Modules
  • ~/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/Modules

Intel和Apple Silicon Mac都使用相同的Resolve应用程序和脚本 路径。

Linux

创建环境并安装依赖项:

python3.11 -m venv .venv
./.venv/bin/python -m pip install --upgrade pip
./.venv/bin/python -m pip install -e .
./.venv/bin/davinci-resolve-mcp

默认的Linux脚本路径为 /opt/resolve/Developer/Scripting/Modules.

如果你使用 uv 作为安装程序,以现有的兼容CPython为目标 环境明确:

uv pip install --python .venv/bin/python -e .

在Windows上,继续使用常规的python.org环境 run_server.ps1;不要让 uv 提供一个独立的Python运行库。

MCP客户端配置

服务器使用MCP标准I/O传输。配置您的客户端以启动 服务器作为本地进程。

Windows上的克劳德桌面

编辑 %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "davinci-resolve": {
      "command": "powershell",
      "args": [
        "-NoProfile",
        "-ExecutionPolicy",
        "Bypass",
        "-File",
        "C:\\absolute\\path\\to\\davinci-resolve-mcp\\run_server.ps1"
      ]
    }
  }
}

macOS上的克劳德桌面

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "davinci-resolve": {
      "command": "/absolute/path/to/davinci-resolve-mcp/.venv/bin/davinci-resolve-mcp",
      "args": []
    }
  }
}

其他MCP客户端

使用上面显示的相同命令和参数对:

  • 窗户: powershell -NoProfile -ExecutionPolicy Bypass -File <run_server.ps1>
  • macOS/Linux: <venv>/bin/davinci-resolve-mcp

使用绝对路径。保持Resolve运行,更改后重新启动MCP客户端 其配置,然后检查 davinci-resolve 工具可用。

可用MCP资源

URI 描述
system://status 连接、项目和时间线状态
project://current 当前项目名称和时间线计数
timeline://current 当前时间线名称、持续时间和视频曲目计数
timeline://items 第一个视频轨道上的项目
mediapool://current 当前媒体池文件夹和剪辑计数
gallery://albums 图库相册名称

可用的MCP工具

项目和导航

工具 操作
refresh 刷新缓存的Resolve对象
create_project 创建项目
load_project 打开现有项目
save_project 保存当前项目
export_project 将项目导出到文件
import_project 导入项目文件
set_project_setting 更改项目设置
open_page 开放媒体、编辑、融合、颜色、公平或交付

媒体和时间表

工具 操作
import_media 将文件导入媒体池
add_sub_folder 添加媒体池子文件夹
create_timeline 创建一个空的时间线
set_current_timeline 按从1开始的索引选择时间线
append_to_timeline 附加命名剪辑
create_timeline_from_clips 从命名剪辑构建时间线
import_timeline_from_file 导入时间线,如XML或EDL
set_clip_property 更改时间线剪辑属性
add_timeline_marker 在帧处添加标记
add_track 添加视频、音频或字幕轨道
set_track_name 重命名曲目
enable_track 启用或禁用曲目
set_current_version 选择颜色或Fusion剪辑版本

融合与色彩

工具 操作
execute_lua 在Resolve的Fusion环境中执行Lua
create_fusion_node 将节点添加到当前Fusion组合中
add_color_node 将颜色节点添加到当前剪辑
save_still 将当前成绩保存到图库相册
apply_still 将命名静止图像应用于剪辑

execute_lua 在Resolve内部运行代码。仅执行来自您的源代码的脚本 信任。

音频、播放和渲染

工具 操作
set_audio_volume 设置命名剪辑的音量
set_track_volume 设置音轨音量
play_timeline 开始播放
stop_timeline 停止播放
set_playhead_position 将播放头移动到帧中
start_project_render 使用可选的预设和输出路径启动渲染

连接引导程序是如何工作的

server.py 导入 resolve_env.py 创建之前 ResolveAPI.

在每个平台上,引导程序:

  1. 选择Resolve脚本API和本机库路径;
  2. 将所选模块目录传播到子进程;
  3. 探针 DaVinciResolveScript 在一次性子流程中;
  4. 仅当探测器退出时,才在MCP进程中导入本机库 安全。

在Windows上,Resolve可以从Windows中选择Python运行时 注册并加载外部 python3xx.dll 进入当前流程。 FUSION_PYTHON3_HOME、DLL预加载和隔离启动器可防止这种情况 本地崩溃。

环境覆盖

默认设置适用于标准Resolve安装。对于定制安装, 在启动服务器之前设置这些变量:

变量 目的
RESOLVE_SCRIPT_PATH 目录包含 DaVinciResolveScript.py
RESOLVE_SCRIPT_API 决心的根源 Developer/Scripting 目录
RESOLVE_SCRIPT_LIB 绝对路径 fusionscript.dll 或 fusionscript.so
FUSION_PYTHON3_HOME 必须加载Windows Python运行时解析

例子:

export RESOLVE_SCRIPT_PATH="/custom/Developer/Scripting/Modules"
export RESOLVE_SCRIPT_API="/custom/Developer/Scripting"
export RESOLVE_SCRIPT_LIB="/custom/Fusion/fusionscript.so"
./.venv/bin/davinci-resolve-mcp

故障排除

服务器已启动但未连接

  • 确认DaVinci Resolve Studio正在运行。
  • 集 使用外部脚本 到 本地,然后重新启动Resolve。
  • 确认配置的Python是3.10或3.11版本。
  • 检查Resolve脚本模块目录是否存在。

当服务器处于断开连接状态时,它故意保持可用 无法初始化Resolve。

scriptapp('Resolve') returned None

本机模块已加载,但无法获取正在运行的Resolve对象。 Resolve已关闭、外部脚本已禁用或已安装 版本不支持外部脚本。

ModuleNotFoundError: No module named 'imp'

正在使用Python 3.12或更高版本。用Python重建虚拟环境 3.10或3.11。

Windows访问违规 0xC0000005

通过以下方式启动项目 run_server.ps1,不与 python server.py.

当发生碰撞时 fusionscript.dll 加载不兼容的Python运行时, 通常来自另一个在python.org或Anaconda上注册的安装 机器。发射器设置 FUSION_PYTHON3_HOME 并隔离DLL解析。

No valid Resolve scripting module path found

集 RESOLVE_SCRIPT_PATH 到包含以下内容的目录 DaVinciResolveScript.py。如果本机库也处于非标准状态 位置,设置 RESOLVE_SCRIPT_LIB.

缺少MCP依赖项

将项目安装到MCP客户端中配置的同一解释器中:

python -m pip install -e .

发展

以可编辑模式安装项目:

python -m pip install -e .

运行单元测试:

python -m unittest discover -s tests -v

运行语法检查:

python -m py_compile server.py resolve_api.py resolve_env.py

GitHub Actions工作流在Python 3.10和3.11上运行单元测试 Windows、macOS和Linux。

贡献应使测试涵盖特定于平台的引导行为。