DaVinci Resolve

io.github.Aedelon由 GitHub 帳號 Aedelon 發布v1.0.4更新於 Nov 1, 2026

Typed, safe MCP server for DaVinci Resolve: every write verified, deletes confirmed, snapshots.

發布方自己的服務:Resolve

已驗證STDIO僅桌面開發者工具媒體與設計

概覽

AI 產生的概覽

讓 AI 助理透過具型別、可驗證的腳本 API 操作 DaVinci Resolve,完成剪輯、調色與交付的 MCP 伺服器。

可以做什麼
  • 讀取與修改專案、媒體池、時間軸、時間軸片段、調色節點、Fusion 合成、畫廊靜格、音訊與算圖工作
  • 執行 EDL 套片、交付、直式短片、套用 LUT、標題疊加等一鍵流程,並可批次串接多個步驟
  • 使用轉錄、字幕、場景切分、智慧重構等 AI 工具,並匯出畫面影格或縮圖表讓助理查看
  • 讀寫 EDL、FCPXML、OTIO、標記 CSV 與 cube LUT 等交換檔,管理快照、長時間工作與介面頁面
  • 檢索並說明 Resolve 腳本 API,在明確開啟後可執行 Lua 或 Python
適用情境
適合想讓助理代勞 Resolve 中重複操作的剪輯師、調色師與開發者,例如匯入整理素材、建立時間軸、調色、套片與算圖。也適合需要每項變更都經 Resolve 回讀確認、而非只憑聲稱的情境。
執行需求
需要 DaVinci Resolve Studio 21.1 或更新版本,並在偏好設定中將外部腳本設為 Local(21.1 起的免費版不支援)。需要 Python 3.13+ 及 uv、pipx 或 pip,也可用 uvx 執行。以本機 stdio 程序與 Resolve 同機執行;選用 HTTP 傳輸預設綁定回環位址,非本機存取需 DAVINCI_MCP_TOKEN 提供的權杖。
安裝前請注意
會寫入 Resolve 專案與時間軸,並可刪除內容,但刪除會先回傳計畫並需 confirm_token,破壞性編輯前會建立快照。檔案存取限於 allowed_roots,預設為使用者家目錄。開啟程式碼執行或 Python 配方會以你的使用者權限執行任意程式碼,且不受 allowed_roots 限制。每次呼叫都會寫入本機稽核日誌。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 DaVinci Resolve,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[davinci-mcp: the safe, verified MCP server for DaVinci Resolve]

[CI] [PyPI] [Python 3.13+] [Apache 2.0] [DaVinci Resolve 21.1] [MCP spec 2026-07-28] [Glama score] [Support on Ko-fi]

Let an AI agent edit, grade and deliver in DaVinci Resolve, with every change checked.


davinci-mcp is an MCP server for DaVinci Resolve. It gives AI agents such as Claude access to the whole Resolve scripting API: 299 typed actions across 17 domains. Every change is verified against Resolve itself before it is reported as done.

It is built for editors and colorists who want an assistant that does the clicking, and for developers who want a dependable bridge between an agent and Resolve.

See it work

A real Claude agent, given four plain messages, cut this 52-second action trailer from the open movie Tears of Steel. It imported the footage, laid out 33 shots on the beat, added the title cards, graded teal and orange, and rendered it. Nothing in the run was staged; the video below is sped up 4×.

[A Claude agent editing a trailer in DaVinci Resolve through davinci-mcp]
▶ Watch the full demo on YouTube (39 s)

[The trailer the agent cut]
▶ Watch the trailer the agent cut on YouTube (52 s)

Why davinci-mcp

Verified, not hopeful

  • Every write is read back from Resolve, and its receipt says verified: true or false. An agent can't claim a change that didn't happen.
  • dry_run previews any write without applying it.
  • Deletes need consent: the first call returns a plan and a confirm_token, and nothing is removed until the same call comes back with the token.
  • Destructive edits take a safety snapshot of the timeline first.
  • Every call is written to a JSONL audit log.

Reliable

  • In the benchmark below, 20 of 20 jobs passed. The community MCP server passed 13 of 20, davinci-mcp-professional 10 of 20.
  • Near-miss parameters are repaired instead of refused (fade_out → FadeOut, a bare clip name → a selector), and every rewrite is reported.
  • Errors are actionable: they suggest the right field ("did you mean"), name the right tool, and say which render setting Resolve rejected.

Economical

  • batch_run chains a whole sequence server-side in one call, for example 18 steps from timeline to render.
  • Clients defer the tools, so the first turn costs about 32k tokens of context.
  • Replies and schemas are compact. Against the community server: 31 % cheaper and 60 % fewer calls.

Exhaustive and extensible

  • 17 domains: project, media, timeline, item, color, Fusion, gallery, audio, render, interchange, AI tools, UI, app and more.
  • One-call workflows: conform_from_edl, deliver, build_vertical_reel, apply_look, title_overlay.
  • Your own recipes: YAML templates, plus Python when you opt in.

Safe by default

  • File access is limited to the folders you allow.
  • The server's own state, its configuration and your Claude configuration files are always off-limits.
  • Symlinks are never followed when importing a folder.

Benchmarks

Headless Claude agents (Sonnet) ran four post-production jobs on a live Resolve Studio 21.1, five runs each. An agent that never saw the server's code wrote the jobs:

  • dailies: log and organise a day of footage;
  • promo: build a promo with a music bed;
  • look: grade with versions and a still;
  • spot QC: duplicate, export interchange files and render a range.

Each check reads Resolve directly, never through the server under test. Every agent ran under the same isolated harness. Full method and history →

[Jobs completed: davinci-mcp 100 %, community MCP 65 %, MCP Professional 50 %, Resolve built-in MCP 100 %] [Cost for the 4 jobs: davinci-mcp $0.62, community MCP $0.99, MCP Professional $1.04, Resolve built-in MCP $0.35]

ServerJobs passedTool callsCost (4 jobs)
davinci-mcp20 / 2035$0.62
Community MCP (samuelgursky/davinci-resolve-mcp)13 / 2090$0.99
MCP Professional (hoyt-harness/davinci-mcp-professional)10 / 20156$1.04
Resolve's built-in MCP20 / 2017$0.35

About the built-in server. Resolve 21.1 ships its own MCP server, which is cheaper because it hands the agent one tool, run_script_unsafe, to run arbitrary Python inside Resolve. That makes for short runs, but nothing is validated, read back, audited, snapshotted or confirmed before a delete. In our scale test (160 clips, 4 timelines) it once put a marker at the wrong frame, then reported the job done. davinci-mcp trades a little cost for changes you can trust.

Talk to it like an editor

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

How it works

mermaid
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. Validate. The agent calls a domain tool such as timeline_write with {"op": {"action": ..., ...}}, and the parameters are checked against a typed schema. Almost-right parameters are repaired, and each repair is reported.
  2. Consent and snapshot. Deletes stop at a plan until they are confirmed, and destructive edits take a snapshot first.
  3. Call Resolve. The call runs on a single executor thread, the only place Resolve is ever called from.
  4. Read back. The server reads the result back from Resolve and returns a receipt with verified. Long renders become jobs that the agent can wait on.

Tools

52 tools. Domain tools are named <domain>_read, <domain>_write and <domain>_delete, and take {"op": {"action": ..., ...}}; together they expose about 300 actions. Reads have no side effects, writes return a verified receipt, deletes ask for confirmation first.

  • resolve_status - Connection state, Resolve version and edition, current project, timeline and page.
  • describe_action - Compact parameter schemas of one or several actions.
  • search_api - Search the Resolve 21.1 scripting API by name or description.
  • batch_run - Run several tool calls in one call, server-side, with one confirmation for the batch.
  • workflow_write - One-call jobs: conform_from_edl, deliver, build_vertical_reel, apply_look, title_overlay.
  • recipe_list / recipe_run - List and run YAML or Python recipes; every step is validated, verified and audited.
  • project_read / project_write / project_delete - Projects, folders, databases, settings and settings presets; create, load, save, archive, import, export.
  • media_read / media_write / media_delete - Media pool and storage: import, bins, relink, proxies, metadata, markers, flags, multicam, mattes, audio sync.
  • timeline_read / timeline_write / timeline_delete - Timelines, tracks, markers, playhead, compound and Fusion clips, import and export.
  • item_read / item_write / item_delete - Timeline items: properties, speed, fades, takes, flags, colors, markers, transitions, stabilization.
  • color_read / color_write / color_delete - Node graphs, CDL, LUTs, versions, color groups, DRX grades, DCTL.
  • fusion_read / fusion_write / fusion_delete - Fusion comps and tools: add, connect, inputs, keyframes, expressions, Text+ titles, settings, fuses.
  • gallery_read / gallery_write / gallery_delete - Still albums: grab, import, export, label.
  • audio_read / audio_write - Loudness analysis, silence detection, normalization, voice isolation, Fairlight presets, audio mapping.
  • render_read / render_write / render_delete - Formats, codecs, presets and render jobs; render a timeline or a range, Quick Export.
  • interchange_read / interchange_write - EDL, FCPXML, OTIO, marker CSV and .cube LUT files, read and written without Resolve.
  • ai_read / ai_write / ai_delete - Transcription, subtitles from audio, scene-cut detection, Smart Reframe, audio classification, IntelliSearch.
  • vision_read - Export or screenshot frames and contact sheets so the agent can look at the picture.
  • ui_read / ui_write / ui_delete - Pages, menus and keyboard shortcuts, for the few things the API can't do.
  • app_read / app_write / app_delete - Resolve app info, layout presets, keyframe mode, quit.
  • snapshot_list / snapshot_write - Safety copies of the timeline or project, taken automatically before destructive edits.
  • job_status / job_wait / job_list / job_cancel - Long operations (renders, analyses) run as jobs.
  • code_delete - run_lua and run_python inside Resolve, an escape hatch that is off by default and always asks for confirmation.

Install

Requirements
  • DaVinci Resolve Studio 21.1 or later. In Preferences → General → External scripting using, choose Local.
  • The free edition 21.1+ is not supported. Resolve 21.1 took Python scripting out of the free edition, and its Lua sandbox can't reach the Resolve API (tested on 21.1.2). On the free 21.0.x, the in-app bridge should still work: run davinci-mcp install --bridge, then start it from Workspace → Scripts.
  • Python 3.13+ and uv (or pipx / pip).
bash
uv tool install davinci-mcp

pipx install davinci-mcp and pip install davinci-mcp work too.

bash
davinci-mcp doctor

doctor checks that Resolve is reachable and reports its version, edition and channel.

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

Or add it by hand:

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

This adds the server to claude_desktop_config.json. Restart Claude Desktop to load it. To do it by hand:

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

If Claude Desktop can't find the command, use its absolute path (which davinci-mcp).

Without installing anything, any client can run it through uvx: { "command": "uvx", "args": ["davinci-mcp", "serve"] }. Don't run uvx davinci-mcp install: it would write a path from uv's temporary cache into the client config.

Cursor

In ~/.cursor/mcp.json:

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

In .vscode/mcp.json:

json
{  "servers": {    "davinci-mcp": { "type": "stdio", "command": "davinci-mcp", "args": ["serve"] }  }}
Any other MCP client

Run davinci-mcp serve over stdio. Use davinci-mcp serve --transport http for Streamable HTTP; it binds to loopback and needs a bearer token for any other host. The server also exposes a davinci://status resource.

Configure

The optional file ~/.config/davinci-mcp/config.toml holds the settings. Any key can be overridden with a DAVINCI_MCP_<SECTION>__<KEY> environment variable.

toml
[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

The file does not exist until you create it; without it the defaults below apply. Unknown keys, or keys in the wrong section, stop the server with a validation error. In an environment variable a list is written [~/Movies,~/Footage].

All settings
KeyDefaultMeaning
state_dir (top level)~/.local/state/davinci-mcpAudit log, jobs, confirm tokens, temporary frames.
connection.auto_launchtrueStart Resolve when it is not running.
connection.headlessfalseLaunch Resolve with -nogui.
connection.call_timeout_s30Maximum seconds for one Resolve API call.
connection.launch_timeout_s90Maximum seconds to wait for Resolve to start.
connection.script_api, connection.script_libauto-detectedPaths to Resolve's scripting modules, only if detection fails.
safety.allowed_roots["~"]Folders tools may read or write; anything else is refused.
safety.auto_snapshot"destructive"When snapshots are taken unasked: "destructive", "all" or "off". A call can force it with snapshot.
safety.snapshot_dir<state_dir>/snapshotsWhere project exports (.drp) are written.
safety.snapshot_retention20Snapshots kept per project; older ones are pruned. 0 keeps none.
safety.consent_ttl_s300Lifetime of a confirm_token, in seconds.
safety.enable_code_executionfalseAllow arbitrary Python/Lua (code_delete) and Fusion scripts. This code runs with your user rights, outside allowed_roots.
http.host, http.port127.0.0.1, 8765Address for serve --transport http. Any non-loopback host requires a token.
http.token_envDAVINCI_MCP_TOKENName of the environment variable holding the bearer token.
server.schema_mode"compact""full" lists every action's complete schema in tools/list (much larger).
recipes.dirs["~/.config/davinci-mcp/recipes"]Folders of user recipes (see recipes).
recipes.allow_pythonfalseLoad *.py recipes, which run arbitrary code.

FAQ

The agent says it cannot reach Resolve

Check three things:

  • Resolve is running;
  • in Studio, External scripting using is set to Local;
  • no dialog is open in Resolve, such as an update prompt or a project manager.

Then run davinci-mcp doctor.

Does it work with the free edition?

Not from 21.1 on. Resolve 21.1 removed both external scripting and in-app Python scripts from the free edition. In-app Lua scripts still run, but in a sandbox with no file access, no network and no access to the Resolve API (tested on free 21.1.2), so no bridge can work there. On the free 21.0.x, the in-app Python bridge (davinci-mcp install --bridge) should still work. Otherwise you need Resolve Studio.

Can it delete my work?

Not without consent. Every delete returns a plan first and needs a matching confirm_token. Destructive edits snapshot the timeline, and every call is logged.

Will it touch files outside my projects?

Only inside allowed_roots. The server's own state, its configuration and your Claude configuration files are always refused, whatever you allow.

Why is the built-in Resolve MCP cheaper?

It runs one unchecked Python script per job. davinci-mcp makes typed, verified calls, so it uses a few more steps. batch_run and the one-call workflows keep that overhead small.

Contributing

Issues and pull requests are welcome. docs/domain-guide.md shows how to add an action: a parameter model, a handler, a read-back check and a test. The rest is generated from there.

bash
uv syncuv run pytestuv run ruff check . && uv run pyright

Credits

davinci-mcp is an independent project. It is not affiliated with, endorsed by or sponsored by Blackmagic Design. DaVinci Resolve is a trademark of Blackmagic Design Pty. Ltd.

Support

davinci-mcp is free and open source. If it saves you time in the edit, you can buy me a coffee:

[Support davinci-mcp on Ko-fi]

Made by Delanoe Pirard (Aedelon) · Apache 2.0

來源:README.md,提交 62e9c54

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:軟體包安裝失敗。

版本歷史

2
  1. v1.0.4最新Nov 1, 2026
  2. v1.0.2Nov 1, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Resolve 整合