DaVinci Resolve について
DaVinci Resolveは、ResolveをAIエージェントから操作したい編集者、カラーリスト、開発者向けのMCPサーバーです。型付きアクション、読み戻し検証、削除確認、安全スナップショットで変更を検査します。
主な機能
- 0117領域の型付きアクションを公開
- 02Resolveへの書き込みを検証
- 03削除前に確認を要求
- 04破壊的編集前にタイムラインを保存
- 05一括実行と再利用可能なワークフロー
- 06呼び出しをJSONL監査ログに記録
活用シーン
- 01素材とメディアビンの整理
- 02タイムラインの編集とカラーグレーディング
- 03EDLに基づくコンフォームと納品レンダー
- 04交換ファイルの書き出しと範囲レンダー
MCP 対応
stdioまたはStreamable HTTPで、DaVinci Resolveのスクリプティング操作をMCPクライアントに公開します。`davinci://status`リソースも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
52掲載時のツール一覧 · 5 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| op | object | はい | {action, ...params}。各アクションのパラメーターについては、説明またはこのサーバーの describe_action ツールを参照してください。 |
| op.action | enum | はい | clear_audio_classification | clear_transcription |
| dry_run | boolean | いいえ | true:予定される効果を返し、変更は行いません。 |
| snapshot | boolean|null | いいえ | true:先にタイムライン/プロジェクトをバックアップします。省略時はサーバーのポリシーに従います。 |
| confirm_token | string|null | いいえ | 最初の呼び出しで返された計画から取得します。これを付けて同じ呼び出しを繰り返すと適用されます。 |
詳細
AI エージェントに DaVinci Resolve で編集、カラーグレーディング、納品を任せましょう。すべての変更はチェックされます。
davinci-mcp は、DaVinci Resolve 向けの MCP サーバーです。Claude などの AI エージェントに、Resolve のスクリプト API 全体へのアクセスを提供します。17 の領域にわたる、型付けされた 299 個のアクションを利用できます。変更はすべて、完了として報告される前に Resolve 自体で検証されます。
クリック操作を任せられるアシスタントを求める編集者やカラリストにも、エージェントと Resolve の間に信頼できる橋渡しを求める開発者にも適しています。
動作を見る
実際の Claude エージェントにシンプルなメッセージを 4 つ与えると、オープン映画『Tears of Steel』から、52 秒のアクショントレーラーを編集しました。映像をインポートし、ビートに合わせて 33 のショットを配置し、タイトルカードを追加し、ティールとオレンジのカラーグレーディングを施して、レンダリングしました。この実行で演出された箇所はありません。以下の動画は 4 倍速です。
▶ エージェントが編集したトレーラーを YouTube で見る(52 秒)
期待ではなく、検証済みです
- すべての書き込み後に Resolve から読み戻し、その結果として
verified: trueまたはfalseを返します。エージェントが、実際には行われていない変更を行ったと主張することはできません。 dry_runを使うと、書き込みを適用せずにプレビューできます。- 削除には同意が必要です。最初の呼び出しでは計画と
confirm_tokenが返され、同じ呼び出しにトークンを付けて再度実行するまで、何も削除されません。 - 破壊的な編集の前に、タイムラインの安全スナップショットを作成します。
- すべての呼び出しを JSONL 監査ログに記録します。
信頼性
- 以下のベンチマークでは、20 件中 20 件のジョブに合格しました。コミュニティ MCP サーバーは 20 件中 13 件、davinci-mcp-professional は 20 件中 10 件でした。
- わずかに誤ったパラメーターは拒否せず修正します(
fade_out→FadeOut、クリップ名だけの指定 → セレクター)。修正内容はすべて報告します。 - エラーは次のアクションにつながる内容です。正しいフィールドを提案し(「もしかして」)、適切なツールを示し、Resolve が拒否したレンダー設定を伝えます。
効率的
batch_runを使うと、タイムラインからレンダーまでの 18 ステップなど、一連の処理全体をサーバー側で 1 回の呼び出しにまとめられます。- クライアントはツールの読み込みを遅延するため、最初のターンで消費するコンテキストは約 32k トークンです。
- 返答とスキーマはコンパクトです。コミュニティサーバーと比べて、コストを 31 %削減し、呼び出し回数を 60 %削減します。
網羅的で拡張可能
- 17 のドメインに対応しています。プロジェクト、メディア、タイムライン、アイテム、カラー、Fusion、ギャラリー、オーディオ、レンダー、インターチェンジ、AI ツール、UI、アプリなどがあります。
- 1 回の呼び出しで実行できるワークフロー:
conform_from_edl、deliver、build_vertical_reel、apply_look、title_overlay。 - 独自のレシピを使用できます。YAML テンプレートに加え、オプトインすると Python も利用できます。
デフォルトで安全
- ファイルアクセスは、許可したフォルダーに限定されます。
- サーバー自身の状態と設定、および Claude の設定ファイルには、常にアクセスできません。
- フォルダーのインポート時に、シンボリックリンクをたどることはありません。
ベンチマーク
ヘッドレスの Claude エージェント(Sonnet)が、稼働中の Resolve Studio 21.1 でポストプロダクションのジョブを 4 種類実行しました。各ジョブを 5 回ずつ実行しています。サーバーのコードを一度も見ていないエージェントが、各ジョブを作成しました。
- デイリーズ:1 日分の映像を記録して整理する;
- プロモ:音楽を付けたプロモを作成する;
- ルック:バージョンとスチルを使ってカラーグレーディングする;
- スポット QC:複製し、インターチェンジファイルを書き出し、範囲をレンダーする。
各チェックでは、テスト対象のサーバーを介さず、Resolve を直接読み取ります。すべてのエージェントは、同じ隔離されたハーネスで実行しました。方法と履歴の詳細 →
| サーバー | 合格したジョブ | ツール呼び出し回数 | コスト(4 件のジョブ) |
|---|---|---|---|
| davinci-mcp | 20 / 20 | 35 | $0.62 |
| コミュニティ MCP(samuelgursky/davinci-resolve-mcp) | 13 / 20 | 90 | $0.99 |
| MCP Professional(hoyt-harness/davinci-mcp-professional) | 10 / 20 | 156 | $1.04 |
| Resolve 内蔵 MCP | 20 / 20 | 17 | $0.35 |
内蔵サーバーについて。 Resolve 21.1 には独自の MCP サーバーが付属しています。エージェントに任意の Python を Resolve 内で実行する run_script_unsafe という 1 つのツールを渡すため、コストを抑えられます。実行時間は短くなりますが、検証も、読み戻しも、監査も、スナップショットの作成も、削除前の確認も行われません。規模テスト(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
- 検証。 エージェントは
{"op": {"action": ..., ...}}を指定してtimeline_writeなどのドメインツールを呼び出し、パラメーターが型付きスキーマに照らして検証されます。ほぼ正しいパラメーターは修正され、修正内容はその都度報告されます。 - 同意とスナップショット。 削除は確認されるまでプランの段階で保留され、破壊的な編集の前にはスナップショットが作成されます。
- Resolve の呼び出し。 呼び出しは単一のエグゼキュータースレッドで実行されます。Resolve が呼び出されるのはこのスレッドだけです。
- 結果の読み戻し。 サーバーは Resolve から結果を読み戻し、
verifiedを含む確認レシートを返します。時間のかかるレンダーはジョブになり、エージェントは完了を待つことができます。
ツール
52 個のツールがあります。ドメインツールの名前は <domain>_read、<domain>_write、<domain>_delete で、{"op": {"action": ..., ...}} を受け取ります。これらを合わせると約 300 個のアクションを利用できます。読み取りには副作用がなく、書き込みは検証済みの確認レシートを返し、削除の前には確認を求めます。
resolve_status- 接続状態、Resolve のバージョンとエディション、現在のプロジェクト、タイムライン、ページ。describe_action- 1 つまたは複数のアクションの簡潔なパラメータースキーマ。search_api- Resolve 21.1 のスクリプティング API を名前または説明で検索します。batch_run- 複数のツール呼び出しをサーバー側で 1 回の呼び出しにまとめて実行します。バッチ全体に対して確認は 1 回です。workflow_write- 1 回の呼び出しで実行するジョブ: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- フォーマット、コーデック、プリセット、レンダージョブ。タイムラインまたは範囲のレンダリング、Quick Export。interchange_read/interchange_write- EDL、FCPXML、OTIO、マーカー CSV、.cube LUT ファイル。Resolve を介さずに読み書きします。ai_read/ai_write/ai_delete- 音声の文字起こし、音声からの字幕生成、シーンカット検出、Smart Reframe、オーディオ分類、IntelliSearch。vision_read- エージェントが映像を確認できるよう、フレームやコンタクトシートをエクスポートまたはスクリーンショットで取得します。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 を実行してください。Streamable HTTP を使用する場合は davinci-mcp serve --transport http を実行します。これはループバックにバインドされ、他のホストから接続するにはベアラートークンが必要です。サーバーは 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_launch | true | Resolve が実行されていない場合に起動します。 |
connection.headless | false | -nogui を指定して Resolve を起動します。 |
connection.call_timeout_s | 30 | Resolve API の1回の呼び出しに許可される最大秒数です。 |
connection.launch_timeout_s | 90 | 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_retention | 20 | プロジェクトごとに保持するスナップショット数です。古いものは削除されます。0 を指定すると保持されません。 |
safety.consent_ttl_s | 300 | confirm_token の有効期間を秒単位で指定します。 |
safety.enable_code_execution | false | 任意の Python/Lua(code_delete)および Fusion スクリプトを許可します。このコードは allowed_roots の外部で、ユーザーの権限で実行されます。 |
http.host、http.port | 127.0.0.1、8765 | serve --transport http のアドレスです。ループバック以外のホストにはトークンが必要です。 |
http.token_env | DAVINCI_MCP_TOKEN | ベアラートークンを保持する環境変数の名前です。 |
server.schema_mode | "compact" | "full" を指定すると、tools/list にすべてのアクションの完全なスキーマが表示されます(大幅に大きくなります)。 |
recipes.dirs | ["~/.config/davinci-mcp/recipes"] | ユーザーレシピのフォルダーです(レシピを参照)。 |
recipes.allow_python | false | 任意のコードを実行する *.py レシピを読み込みます。 |
よくある質問
エージェントに Resolve に接続できないと言われます
次の3点を確認してください。
- 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 スクリプトを1つ実行するためです。davinci-mcp は型付きの検証済み呼び出しを行うため、手順が少し増えます。batch_run と1回の呼び出しで実行できるワークフローにより、そのオーバーヘッドは小さく抑えられます。
問題の報告やプルリクエストを歓迎します。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 は無料のオープンソースです。編集作業の時間短縮に役立ったら、コーヒーをごちそうしていただけると幸いです。
Delanoe Pirard(Aedelon)作成 · Apache 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
