mcpField
D
DaVinci Resolve MCP Server

DaVinci Resolve MCP Server

ローカル
github.com/samuelgurskyメディア・デザイン3.8k今日更新

DaVinci Resolve MCP Server について

公式スクリプティング API を通じて DaVinci Resolve Studio を操作する MCP サーバーです。AI アシスタント向けにポストプロダクションの作業を提供し、ローカル操作パネルと、Resolve のプロジェクトファイルをオフラインで扱うオプションも備えています。

主な機能

  1. 01編集、メディアプール、プロジェクトの操作
  2. 02レンダー設定とレビューマーカー管理
  3. 03カラーグレーディング、Fusion、Fairlight の操作
  4. 04ローカルパネルで状態と分析結果を確認
  5. 05オプションで Resolve のファイルをオフライン処理

活用シーン

  1. 01AI アシスタント経由で Resolve の操作を実行
  2. 02ブラウザーで Resolve の状態や分析結果を確認
  3. 03Resolve を起動せずプロジェクトファイルを読み書き

MCP 対応

MCP クライアントに DaVinci Resolve の操作ツールを公開します。標準の複合モードに加え、細分化されたモードを選択できます。オプションの高度な MCP サーバーは Resolve を起動せずにプロジェクトファイルを処理します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"davinci-resolve": {
"command": "npx",
"args": [
"-y",
"davinci-resolve-mcp"
]
}
}
}
起動コマンドnpx -y davinci-resolve-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmdavinci-resolve-mcp

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

DaVinci Resolve MCP サーバー

英語 | 簡体字中国語

バージョン npm API カバレッジ ツール 上級者向け テスト済み DaVinci Resolve Python ライセンス

公式のスクリプティング API を通じて、AI アシスタントが DaVinci Resolve Studio を操作できるようにする Model Context Protocol(MCP)サーバーです。API を完全にカバーし、編集、メディアプールの整理、レンダー設定、レビュー用マーカー、カラーグレーディング、Fusion、Fairlight、プロジェクトのライフサイクルタスク、拡張機能の作成、ソースを変更しないメディア分析のための、安全性を考慮したワークフローヘルパーを提供します。

ローカルコントロールパネル

Resolve の状態の確認、ソースを変更しない分析の実行、分析済みのクリップやショットの詳細確認、分析結果のインライン編集に使えるローカルブラウザーコントロールパネルが、サーバーに付属しています。詳しくはコントロールパネルガイドをご覧ください。

クイックスタート

npx davinci-resolve-mcp setup

接続する前に、DaVinci Resolve Studio を開き、Preferences > General > External scripting using を Local に設定してください。(無料版では、この設定は役に立ちません。下記の無料版(アプリ内ブリッジ)をご覧ください。)npm ランチャーは、ユーザーのアプリケーションデータディレクトリ内に管理対象のコピーをインストールし、その後、汎用 Python インストーラーを実行します。インストーラーは仮想環境を作成して Resolve のパスを検出し、Claude Desktop、Claude Code、Cursor、VS Code、Windsurf、Zed、Continue、Cline、Roo Code、OpenCode、Codex CLI、JetBrains IDE を設定できます。

ソースからインストールする場合:

git clone https://github.com/samuelgursky/davinci-resolve-mcp.git
cd davinci-resolve-mcp
python install.py

プラットフォーム別のパス、クライアント固有の設定、手動セットアップについては、インストールと設定をご覧ください。

インストーラーとサーバーは、MCP の更新を確認するため、最新の GitHub リリースをチェックします。チェックはベストエフォートで行われ、頻度が制限されます。サーバーがプロンプトのために MCP の起動をブロックすることはありません。インストーラーでは、更新を促すプロンプトを表示したり、後で通知するようにしたり、リリースを無視したり、チェックを無効にしたり、オプトイン方式の安全な自動更新を、クリーンな git チェックアウトに適用したりできます。

無料版(アプリ内ブリッジ)

Blackmagic は、Studio 版以外では外部スクリプティングを制限しています。無料版では、設定にかかわらず、scriptapp("Resolve") は別プロセスからの呼び出しを拒否します。 Resolve 21.0.x までは、Workspace ▸ Scripts メニューに制限がありませんでした。このメニューから起動したスクリプトには、稼働中の resolve オブジェクトが渡されます(無料版 21.0.3.7 で確認済み)。そのため、Resolve 内部で実行する小さなスクリプトを使って resolve をエクスポートし直し、認証付きのループバックリスナー経由で公開することで、サーバーは無料版にアクセスできます。Resolve 21.1 では Python スクリプティングが Studio 版限定になりました。 無料版 21.1 では、Scripts メニューに .py ファイルが表示されなくなりました(#203 で Fedora 44 にて報告。同じフォルダー内の Lua スクリプトは通常どおり表示されます)。Console で Python が引き続き実行できるかは未確認のため、実測されるまでは、このブリッジは 21.0.x 向けの方法として扱ってください。

python scripts/install_resolve_bridge.py
# restart Resolve, open a project, then: Workspace > Scripts > resolve_bridge

インストーラーと MCP クライアントはデフォルトで ~/.config/davinci-resolve-mcp/bridge.json を使用します。認証済みブリッジ設定を別の場所に置きたい場合は、インストーラーの実行時と MCP クライアントの環境で DAVINCI_RESOLVE_BRIDGE_CONFIG を設定してください。両側がそのパスを使用します。

このリスナーが実行されると、外部スクリプトが利用できない場合に自動的に使用されます — 環境変数は必要ありません。DAVINCI_RESOLVE_BRIDGE=1 を設定すると、代わりにブリッジが強制されます。試行される唯一のトランスポートとなるため、応答を停止したブリッジは、別のトランスポートへ黙ってフォールバックするのではなく、自身の障害として報告します。ブリッジに依存することを意図している場合に使用してください。

macOS では、Resolve は Python 3 を正確に 2 か所で探します。PYTHON3HOME 環境変数、次に /usr/local/bin/python3 です。Homebrew、pyenv、uv、conda はどちらにも該当しないため、スクリプトはメニューに表示されないままになります。python.org のインストールが機能するのは、そのインストーラーが /usr/local/bin/python3 を作成するためです — しかしそれは必要ありません。すでにお持ちのインタープリターを Resolve に指定するだけで、sudo は不要です。

launchctl setenv PYTHON3HOME "$(python3 -c 'import sys; print(sys.prefix)')"

export ではなく launchctl setenv を使用してください — Resolve は Dock から起動されるため、シェルの環境を認識しません。その後、Resolve を再起動してください。Lua のカナリアも一緒にインストールされるので、「Python が検出されない」のか誤ったフォルダーなのかを区別できます。

引っかかりやすい 2 つの点があります (#182)。プレフィックスには lib/libpython3.X.dylib と bin/python3 の両方が、その正確なバージョン番号なしの名前で含まれている必要があります — Homebrew のフレームワークビルドは bin/python3.13 しか含まないことが多く、Resolve から見れば半分の Python であり、インストーラーのプリフライトは使用可能なプレフィックスを報告する代わりにその旨を伝えるようになりました。そして launchctl setenv は再起動をまたいで保持されません。数週間後にスクリプトがエラーなしで一覧に表示されなくなったら、それが理由です。永続化したい場合は、Resolve がすでに探す場所にインタープリターを置いてください (これには sudo が必要で、/usr/local/bin が PATH 上の通常の Python より前に来ていないことを確認してください):

sudo ln -s "$(command -v python3)" /usr/local/bin/python3

無料版 21.0.3.7 と Studio 19.1.3.7、いずれも macOS で検証済みです。v2.70.1 (issue #106) で追加された Windows のパスは未検証のまま出荷されましたが、無料版 21.0.1.11 (issue #109) と無料版 21.0.3.7 (issue #112) の報告により、Windows 11 上の %PROGRAMDATA% と %APPDATA% の両方からブリッジがインストール、一覧表示、提供できることが示されたため、これらのパスは想定ではなく確認済みとなりました。Linux も同様に確認されています。無料版 20.3.2.9 (issue #129、Fedora 43) の報告では、ブリッジが ~/.local/share/DaVinciResolve/Fusion/Scripts/Utility にインストールされ、システム Python に対して一覧表示し — Linux にはこの検出問題はまったくありません — エンドツーエンドで提供できることが示されています。どのプラットフォームも想定に頼ることはなくなりました。macOS は直接検証され、Windows と Linux はユーザー報告によるものです。

ブリッジは提供している間ずっとポートを保持することに注意してください。v2.70.3 より前は、Windows のブリッジが Resolve より長生きして、次のセッションのリスナーをブロックすることがありました。古いビルドを使用していてブリッジが応答しなくなった場合は、ポートを保持したままの古い fuscript.exe がないか確認してください。

これは文書化されたアプリ内の経路であり、ライセンスの回避ではありませんが、Blackmagic がこれを閉じる可能性があります — サポートされているが、されなくなるまでの階層として扱ってください。ループバックのみ、HMAC 署名されたリクエスト、使い捨てナンス。

ローカルコントロールパネル

リポジトリのルートからシングルユーザーのローカルコントロールパネルを起動します:

venv/bin/python -m src.control_panel

このコマンドはループバック専用のサーバーを起動し、起動ごとのアクセストークンを含む URL (http://127.0.0.1:8765/#token=…) でブラウザーにコントロールパネルを開きます — その正確な URL を使用してください。パネルはそれなしのリクエストを拒否します。AI コーディングエージェントにこれを行わせるには、**「このリポジトリの Resolve MCP コントロールパネルを開いて」**と依頼してください。Python 環境がすでにアクティブでない限り、エージェントは venv/bin/python -m src.control_panel を使用する必要があります。永続化された分析ジョブは、スライスの成功後にローカル検索インデックスを自動的に更新します。手動の「インデックスをビルド」アクションは、既存のレポートから再ビルドするためのものです。

サーバーモード

モードエントリーポイントツール最適な用途
複合型src/server.py37ほとんどのアシスタント向けのデフォルトモードです。関連するResolve操作はアクションパラメーターの背後にまとめられ、コンテキスト使用量を抑えます。
フル/細分化型src/server.py --full または src/resolve_mcp_server.py390Resolve APIのメソッドごとに個別のMCPツールを使いたい上級ユーザー向けです。

メソッドごとに1つのツールを提供する細分化型が特に必要でない限り、複合型サーバーをおすすめします。

高度なサーバー — スクリプティングAPIを超える機能(オプション、Node)

同じパッケージには、オプションの2つ目のMCPサーバー davinci-resolve-advanced-mcp(bin bin/davinci-resolve-advanced-mcp.mjs)も含まれています。Pythonサーバーが認可されたスクリプティングAPIを介してResolveの実行中のインスタンスを操作するのに対し、高度なサーバーはAPIではできないことを行います。Resolveのファイル(.drp/.drt/.drx)を読み取り、編集し、Resolveを実行せずにDB/XMLレベルの変更を適用できるため、クラウドでもローカルでも実行できます。ツールは18個です。drp、drt、drx(クリップ単位のグレードコーデックと、決定論的なオフライングレーディング/QCカタログ — カメラ内およびカメラ間のスキン(v2スキンラインメトリクス)、Bロール、ニュートラルパッチのWBマッチング、リファレンスとのマッチング、彩度/ブラックバランス、コントラストの正規化、ASC CDLのインポート、ロスレスなグレード転送とシーズンルックの作成、名前付きLUTの適用、スコープの読み取りと意図タグ、グレードの検証、ディスプレイ参照フレームの抽出、放送基準準拠のQC)、offline_ref、 conform(フレームオラクルによるコンフォーム/再リンクQCと系譜)、color_trace(再コンフォーム時のグレード維持)、 fusion、audio_plan、fairlight(バスルーティング)、audio、project_read、project_db、pipeline (DBを真実の基準とするパイプライン:YAMLプロジェクト仕様を正規のSQLite DBにコンパイルし、ゲート、来歴、意図と実際の差異検出を用いてステージを実行)、capabilities、deliverable(納品物QC/コンプライアンス)、media(メディアのフロントエンド/AE取り込み)、editorial(編集上の整合性/変更リスト)、provenance(来歴/監査/エピソードレポート)。また、サーバーとして起動するだけでなく、ライブラリ(インポート可能なエンジンAPI)としても利用できます。

DRXのグレード書き込みは、Resolve Studioに対して実機でキャリブレーション済みです。グレードパラメーターはデフォルトでResolveの画面上のパネル単位を使用し(space: 'ui' | 'drx')、構造的な書き込み(パワーウィンドウ、クオリファイアー、HDRゾーン、HSLカーブ、ColorSlice、ぼかし/キー/モーションエフェクト)はパネルからの読み戻しで検証されます。コントロールごとのステータスは resolve-advanced/vendor/drx-parameters/CALIBRATION-STATUS.md に記載されています。また、UIのみで可能だった操作の不足も解消します。「Cleanup Node Graph」のプログラム実行(1クリップにはdrxのrelayout、プロジェクト全体にはproject_dbのrelayout_node_graphs)により、ノードレイアウトを整えながら、グレードの内容をバイト単位で保持します。

ライブサーバーと並べて追加できます(どちらも1回のnpm installでインストールされます)。

{
  "mcpServers": {
    "davinci-resolve": { "command": "<python>", "args": ["<path>/src/server.py"] },
    "davinci-resolve-advanced": { "command": "node", "args": ["<path>/bin/davinci-resolve-advanced-mcp.mjs"] }
  }
}

install.pyは両方のエントリーを出力します。コアは純粋なJavaScript/MITで、必須のネイティブモジュールはありません。一部の機能ではユーザーによるツールのインストールが必要です(audioにはffmpeg、一部のパスにはsharp/better-sqlite3)。稼働状況とインストール方法のヒントは、capabilitiesツールで確認できます。

Pythonサーバーとは異なり、このサーバーにはNodeの依存関係があります。npx davinci-resolve-mcp setupは、管理対象のインストール先(resolve-advanced/配下でnpm install --omit=dev --omit=optional)に依存関係をインストールしてから、binを登録します。オフラインまたはnpmを利用できないなどの理由でインストールを実行できなかった場合、setupは代わりに高度なサーバー用のnpxコマンドを登録するため、書き込まれるエントリーは常に起動できます。setupを再実行せずに既存のインストールを修復するには、npx davinci-resolve-mcp syncを実行します。

Bradford Post Assistant — マネージドアプリケーション(クローズドベータ)

メンテナーは、このオープンな基盤の上に Bradford Post Assistant というデスクトップアプリケーションも構築しています。MCP サーバーがエージェントに手足を与えるのに対し、Post Assistant はその周囲で稼働するコパイロットです。クライアントの素材がワークステーションから外に出ることのない、ポストプロダクション向けのオンデバイス AI アシスタントです。

  • ポストプロダクションのコパイロット — DaVinci Resolve と並行して動作し、セッションをリアルタイムで監視するデスクトップアプリです(API 呼び出しだけでなく、タイムライン、グレード、フレームを監視します)。AI アシスタントとエージェントランタイムを内蔵し、ローカルメディア分析(文字起こし、フレーム分析、編集インテリジェンス)や、アプリ内でのコンフォーム QC に対応します。
  • メモリ — オンデバイスの永続的な暗号化アシスタントメモリに加え、パイプラインでデコードされた事実から抽出したエピソード間の学習(シーズンのルックの変化、カメラごとの補正の事前情報、ヒーローフレームライブラリ、コンフォームのパスマップの再利用)を備えています。蓄積は自動で管理され、インサイトをレビューするワークフローも用意されています。
  • 設計段階から自己完結 — Post Assistant がすべてを自動で接続します。Resolve の制御にはこの MCP を、拡張サービスには Bradford API を、LLM プロバイダーにはお好みのものを使用します。手動で設定する必要も、別のクライアントを管理する必要もありません。アプリ自体と同梱の MCP は、署名付き自動更新で最新の状態に保たれます。
  • 拡張されたプロフェッショナル向けツールセット — ライブプロジェクトのグレード編集、22 種類以上の適応型グレードファミリー、厳選されたルックライブラリ、納品仕様の検証、編集のペース配分やクリーンアップの分析、自然言語によるカラー指示、Fusion のコンポジション作成に対応します。これらはマネージド Bradford API を通じて提供されます。
  • 制作ワークフロー — 基本的なツールを組み合わせて、実際の制作現場で使える完成したフロー(素材引き継ぎ → コンフォーム → QC → 納品、シーズンのルックの継承、エピソードレポート)を実現します。クライアント向けの制作会社に求められる安全策と承認プロセスも備えています。

現在は クローズドベータ です。bradfordoperations.com/software/post-assistant からアクセスをリクエストできます。 オープンソースのサーバーは完成しており、単独で完全に機能します。

できること

"List all projects and open the one called 'My Film'"
"Create a timeline called 'Assembly Cut' from all clips in the current bin"
"Build a multicam prep timeline from selected camera angles and preserve source media"
"Detect 2-pops or slate claps and suggest record offsets for sync prep"
"Publish analysis summaries, keywords, people, and slate hints into Resolve clip metadata"
"Probe this timeline for gaps, overlaps, missing media, and source frame ranges"
"Safely import this image sequence, organize it into bins, and normalize clip metadata"
"Build a ProRes 422 HQ render plan, validate the settings, and queue the job"
"Copy review markers from the timeline to the selected clip and export a review report"
"Snapshot this clip's grade, validate a CDL update, and export a temp LUT"
"Create a Fusion TextPlus overlay on the selected clip and verify graph connections"
"Report audio channel mappings, voice isolation availability, and subtitle support"
"Install this MCP-marked DCTL or script, classify refresh/restart needs, then remove it"

コア機能

領域複合サーバーがサポートする内容
アプリとプロジェクトの制御起動/再接続、ページ切り替え、プロジェクトの CRUD、プロジェクトフォルダー、データベース、クラウドプロジェクトのラッパー、設定、プリセット、アーカイブ
メディアプールと取り込み安全なインポート、イメージシーケンス、マルチカム準備用タイムライン、ビンの整理、メタデータの正規化、メタデータフィールドの一覧、マーク、注釈、再リンク/プロキシ/フル解像度の保護
メディア分析ソースに安全なファイル/クリップ/ビン/プロジェクト分析、2ポップ/スレート・クラップの同期イベント検出、Resolve のデフォルトメタデータとメディアプールマーカーへの書き戻し、分析成果物の永続化、既存レポートの再利用、オプトアウト可能な host_chat_paths によるビジュアル分析(commit_vision でクリップごとに確定。ビジョン機能を備えたあらゆる MCP クライアントで動作)、オプトアウト可能な文字起こし
タイムライン編集とコンフォームトラック/アイテムの調査、タイトルテキストのキーのスキャン/書き込み、コピー/移動/複製ヘルパー、リップル挿入、範囲操作、ギャップ/重複、ソース範囲、検証付きのインターチェンジ形式のエクスポート/インポート
レビュー注釈タイムライン/アイテム/クリップのマーカー、カスタムデータ、フラグ、クリップカラー、コピー/移動/同期のクリーンアップ、レビューレポート、マーカーのサムネイルレビュー
カラーとグレーディングノードグラフの調査、CDL の検証、グレードのコピー、DRX/LUT ヘルパー、バージョン、ギャラリースチル、カラーグループ
Fusionタイムラインアイテムのコンポジション、安全なツール作成、入力値の書き込み、ポートの検査、検証済み接続、範囲を限定した一括書き込み
オーディオと Fairlightトラック/アイテムの調査、ソースマッピング、保護付きオーディオプロパティの書き込み、音声分離、自動同期の計画、文字起こし/字幕の調査
レンダリングと納品形式/コーデックマトリックスの調査、レンダリング設定の検証、キュー内ジョブのライフサイクル確認、保護付きクイックエクスポート
拡張機能の作成Fuse、DCTL、ACES DCTL、Resolve ページの Lua/Python スクリプトのライフサイクルヘルパー。安全な MCP マーク付きのインストール/削除に対応
制作ガイダンス同梱の編集、カラー、オーディオ、ワークフローに関するガイダンスを、MCP 経由で文章として提供します。インデックス化され、検索可能で、このリポジトリがディスク上にあるクライアントに限らず、あらゆるクライアントから読み取れます
操作エンベロープ

複合ツールのすべての戻り値には、ペイロードと並んで _operation ブロックが含まれるため、 エージェントはツールごとに異なるキーではなく、共通の形式を読み取れます。内容は status (success / partial / blocked / failed)、verification( contradiction は区別して保持されます。Resolve が成功を報告したものの、読み戻した値と 一致しなかった場合です)、changes(意味上の差分)、warnings、および execution_id です。

意味のある意図的な欠如が 2 つあります。verification.status: "unverified" は、証拠が報告されていないことを意味し、「確認済みで問題なし」という意味ではありません。changes が ない場合、そのアクションで差分が報告されなかったことを意味し、何も変更されなかったという意味ではありません。何も 宣言していない編集について、そこに空の {} を返せば、誤った確信を与える回答になります。

エンベロープはトップレベルに統合せず、名前空間に分けています。ここでは status、operation、 warnings、result、changes がすべてすでにドメインキーであり、フラット化すると バックグラウンドジョブの status: "done" や、確認ゲートの status: "confirmation_required" を書き換えてしまうためです。setup(action="set_defaults", params={"result_envelope": "pure" | "legacy"}) で形式を変更できます。呼び出しごとの設定は params={"envelope": ...}、プロセスごとの設定は RESOLVE_MCP_RESULT_ENVELOPE で行います。

エージェントの実行トレース(「エディターはなぜこれを実行したのか?」)

複数ステップにわたる AI 操作は、ツール呼び出しを関連付けて統合された実行トレースにまとめます。各トレースには、ツールの所要時間(duration_ms)、呼び出し回数、累積されたセマンティック差分(items_deleted、items_added)、読み戻しによる検証が集約されます。エージェントやエディターは、resolve_control を使ってワークフローを確認できます。get_execution_trace(execution_id?)、list_recent_executions() を使うか、begin_execution(request="...")/end_execution() で範囲を指定した実行を開始できます。export_execution_report(execution_id?, format="markdown"|"json") は、確認可能な監査成果物を同じ概要で出力し、既定では logs/execution-reports/<execution_id>.md に保存します。代わりに path を指定すると、希望する場所に保存できます。たとえば、日付付きの TransferFiles フォルダー内で conform の隣に保存できます。また、そこに至るディレクトリも作成するため、送信前にパスを確認してください。overwrite: true を指定しない限り、既存のファイルは置き換えられません。inspect_operation(tool?, target_action?, target_params?) は、操作を実行する前に、実行前のリスクレベル(low、medium、high、critical)、破壊的な可能性、影響範囲(item、track、timeline、project、system)を評価します。また、list_lifecycle_hooks() では有効な実行インターセプターを確認できます。

これはアクション名に基づくヒューリスティックであり、シミュレーションではありません。プロジェクトに触れることはなく、パラメーターも検証しません。そのため、recognised: false はレベルがデフォルト値であり、判定結果ではないことを意味します。また、snapshot_available: null は、ロールバックが可能かどうかが判定されていないことを意味し、ロールバックできないことを示すものではありません。同梱されているフックはすべて処理を監視するだけで、ツールの結果を置き換えるものはありません。そのため、dry_run でも常に実際のハンドラーに処理が渡され、プレビュー機能のないアクションのプレビューが生成されることもありません。

検証が行われなかった実行のレポートには、「未確立 — チェックの記録なし」 と記載され、「合格」とは記載されません。証拠がない場合は未解決のままです。監査文書は、読者に問題がないと誤解させてはならない最後の場所です。

トレースはメモリー上の100件のリングバッファに保存され、server.log と同じ場所にある logs/execution-traces.jsonl に追記されます。RESOLVE_MCP_TRACE_FILE を設定すると保存先を変更でき、RESOLVE_MCP_LOG_FILE を設定すると server.log 自体の保存先を変更できます(パスを指定するか、ファイルに出力しない場合は空にします。オフラインのテストスイートでは一時ファイルを指定するため、オペレーターのログには書き込まれません)。list_recent_executions はそのパスと書き込み可能かどうかを報告するため、ソースを読まなくても「ログが空である」ことと「何も書き込まれていない」ことを区別できます。記録されるのは、ツール名、アクション、タイミング、ステータス、セマンティック差分、検証結果です。パラメーターやファイルパスは記録されません。自由記述のフィールドは、begin_execution に渡す request だけです。クライアントのプロジェクトでコミットメッセージを扱うときと同じように取り扱ってください。

検証済みトラップガード

src/utils/api_truth.py には、シグネチャから読み取ったのではなく、実際に稼働するビルドで測定した Resolve API の動作が記録されています。何も実行していないのに True を返す呼び出し、黙って拒否される設定キー、そもそも存在しないメソッドなどです。この記録は以前、参照専用でした。resolve_control(action="api_truth") に応答するだけで、ジョブの途中で誰かが検索することもないファイルでした。

現在は、呼び出し箇所で呼び出し元に情報を伝えます。記録済みの事実に対応するシンボルへマッピングされたアクションは、結果に簡潔な known_limitation を含みます。シンボル、実際の動作、推奨事項のみです。長時間の評価セッションではレスポンスの肥大化が実コストになるため、詳細な記録も必要ならすぐ参照できます。

事実が付加されるのは、マッピングがその正確なシンボルを指定している場合だけです。似た名前から推測することはありません。無関係な説明を失敗にくっつけると診断のように見えてしまい、誤った診断は何もないよりも悪いためです。

警告ではなく拒否する動作が1つあります。 TimelineItem.CopyGrades は、ターゲットのグレードを丸ごと置き換えます。各状態を33ポイントのLUTに変換してバイト単位で比較することで確認済みです。この処理中も True を返し、元に戻すためのバージョンも作成しません。手作業による調整を含むクリップに適用すると、成功と報告される、取り返しのつかない損失が発生します。そのため、これを呼び出すアクションは、呼び出し元が acknowledge_trap: true を渡すまで拒否します。

{
  "success": false,
  "error": "'timeline_item_color.copy_grades' is refused: its verified behaviour destroys existing work that cannot be recovered afterwards.",
  "known_limitation": [{"symbol": "TimelineItem.CopyGrades", "reality": "...", "recommended": "..."}],
  "retry_with": {"acknowledge_trap": true}
}

この操作を禁止することが目的ではありません。呼び出し元に、その動作を理解しているとはっきり示してもらうためです。ドライランは何も破壊しないため対象外です。

RESOLVE_MCP_DISABLE_TRAP_GUARD=1 を設定すると、拒否と注意情報の付加をどちらも無効にできます。これは、以前は破壊的なコピーに対して単に {"success": true} を受け取っていた呼び出し元に影響する動作変更です。

拒否の根拠となる事実は、再測定できる状態に保つ必要があります。そのため、ライブプローブで各事実を再導出し、Resolve の動作が一致しなくなった場合は drifted を記録します。また、destroys_prior_work の項目にプローブがない場合、テストは失敗します。

オプションの追加項目

基本インストールは意図的に小さく、Python、ffmpeg、Resolve スクリプティング API のみです。一部の機能には追加の要件があります。それぞれの要件が満たされない場合は、推測で補わず、固有のインストール手順を示して正直に拒否します。でっち上げたテンポやレベルからは、自信ありげで誤った出力が生まれます。それは機能がないよりも悪いためです。

python scripts/doctor.py を実行すると、以下のうちどれがインストール済みか確認できます。

追加項目利用可能になる機能ライセンス
PATH 上の ffmpeg無音検出、無音区間マーカー、レベル測定、音声分析。インストールするものの中で最も有用です。LGPL/GPL — サブプロセスとして呼び出され、同梱されません
pip install numpyカラーの事前バランス調整、参照静止画とのマッチング、音の密度監査BSD
pip install librosa音楽に合わせた編集のためのビート、小節、フレーズの検出ISC
pip install -U openai-whisper文字起こし、およびそれを基盤とする単語レベルのすべての機能MIT
pip install open_clip_torch視覚的類似性と find_similarMIT
pip install transformersCLAP 音声埋め込みApache-2.0
pip install opencv-python追加のフレーム分析Apache-2.0

media_analysis アクションの capabilities は、分析スタックの詳細を報告し、不足している各要素で何が可能になるかを説明します。

ここに挙げたものは、いずれも同梱されていません。 モデルの重みには、それを読み込むコードとは別のライセンスが適用されます。商用利用の前に確認してください。

このツールが行わないこと

ツールにできることを知るのと同じくらい、できないことを把握することも重要です。プロジェクトの途中で気づくより、ここで確認するほうが手間もかかりません。

サポート対象外理由と、代わりに得られるもの
最適なテイクの選択テイクの良し悪しを左右する要素の大半は演技ですが、波形や文字起こしからそれを測定することはできません。rank_takes が順位付けするのは流暢さ(フィラー、言い直し、台本のカバー範囲)であり、すべての応答でその旨を明示します。再生されるテイクが最も流暢でないことはよくあります。ためらいが演技であることも多いためです。これは問題のない予備テイクを見つけるために使い、読みの選択には使わないでください。
音楽の自動編集オプションの librosa サポートでは、ビート検出と、ビート/小節/フレーズのカットポイント案を提供しますが、完成した編集は行いません。ダウンビートは最初のビートから推定されます。ピックアップには beat_offset を使用してください。音声の無音区間検出ツールは、音楽の編集ポイントを見つける用途には適していません。
カットの良し悪しの判断編集が良いかどうかについて、このツールが判断することはありません。そのため、破壊的な操作はすべて「計画 → レビュー → 確認」の順に行います。
編集ソフトの置き換え出力は、アシスタントエディターの役割における初回アセンブリです。取り込み、同期、整理、素材の並べ出し、問題へのフラグ付けを行います。仕上がったカットではなく、編集を始めるためのものです。デフォルト設定は意図的に余裕を持たせています。初回アセンブリは長めになることを想定しています。トリミングはすばやく行えて変更も確認しやすい一方、破棄した素材の復元には時間がかかり、変更も目に見えにくいためです。
ソースメディアの変更設計上、例外なく行いません。詳細は以下をご覧ください。

分析したものの検証できない内容は「問題なし」として扱わず、未検証として報告します。結果が空であれば「何も見つからなかった」という意味であり、「調べるものが何もない」という意味ではありません。

ソースメディアの安全性

このプロジェクトでは、カメラのオリジナル素材とソースメディアを不変として扱います。分析ツールはソースファイルを読み取り、レポートのみをサイドカー、スクラッチ、またはプロジェクト分析用ディレクトリに書き込みます。確認済みのメタデータ公開では、Resolve のプロジェクトデータベースにのみ書き込みます。ユーザーから明示的な依頼がない限り、サーバーはソースメディアを変更、トランスコード、プロキシ化、または加工して派生素材を作成してはなりません。ソースを安全に保つワークフローの詳細は、メディア分析ガイドをご覧ください。

セキュリティ方針

デフォルトのサーバーは、MCP クライアントによって起動されるローカルの stdio プロセスです。ネットワークリスナーや、組み込みのマルチユーザー認証機能は公開しません。オプトインで利用できる2つのローカル HTTP インターフェース(コントロールパネルとネットワーク経由の MCP トランスポート)は、ループバックのみにバインドされます。また、DNS リバインディングと CSRF を防ぐための Host/Origin チェックを行い、すべてのリクエストで起動ごとに発行されるベアラートークンを必要とします。ツールのメタデータには、読み取り専用、破壊的、冪等、外部リソース操作について、MCP クライアント向けの安全性ヒントが含まれます。両方のサーバーにおける破壊的な書き込みは、destructive.safe_mode とセキュリティ監査ログに従います。タイムラインの変更前にアーカイブするのは複合サーバーのみです。粒度の細かい書き込みは拒否または記録され、復元されることはありません。運用上の境界、確認に関するガイダンス、脆弱性の報告については、セキュリティポリシーをご覧ください。

主な統計

指標値
MCP ツール37 個の複合ツール/390 個の詳細ツール(稼働中のサーバー)
高度な(オフライン)ツール18 — .drp/.drt/.drx および DB オーサリングに対応。Resolve の起動は不要
カーネルアクション9 個の複合ツールにわたる、ガード付きワークフローアクション 136 個
対応 API メソッド361/361(100%)
ライブテスト済みメソッド338/361(93.6%)
ライブテスト合格率338/338(100%)
テスト対象DaVinci Resolve 19.1.3 Studio + Resolve 20.3.2 Studio + Resolve 21.0.2 Studio + Resolve 21.0.3 無料版(アプリ内ブリッジ経由)

メソッドごとのステータスについては、API のカバレッジとテスト結果を参照してください。現在のワークフロー対応状況については、カーネルアクションのカバレッジを参照してください。

analyze_media はデフォルトで直接実行され、分析ルートの下に検査可能なレポート/アーティファクトを保存し、host_chat_paths プロトコルを介してホストチャットによる視覚分析を要求します(analyze は絶対フレームパスと JSON スキーマを返し、ホストチャットは各フレームを画像として読み込み、media_analysis(action="commit_vision", ...) を呼び出して確定します)。設定済みのローカルバックエンドを通じて文字起こしを実行し、分析の概要とソース時刻に基づく Media Pool のクリップマーカーを Resolve プロジェクトに書き込みます。これらのデフォルト動作を無効にする場合に限り、include_visuals=false、include_transcription=false、publish_metadata=false、timed_markers=no、または dry_run=true を指定してください。commit_vision をスキップすると、実行は pending_host_vision_analysis のままになります。これは黙って機能を縮小するのではなく、失敗モードとして表示されます。

ドキュメント

ドキュメント用途
インストールと設定要件、インストーラーのオプション、対応クライアント、サーバーモード、手動設定
API の対応状況とテスト結果主要な統計、API 対応状況の表、実機テストの状況、メソッドの全リファレンス
カーネルアクションの対応状況現在のガード付きワークフローアクションマップ
AI スキルリファレンスコンパウンドサーバーを使用する AI アシスタント向けの運用コンテキスト
コントロールパネルガイドローカルブラウザーパネルの概要:Overview、Review(bin/clip/shot)、Analyze、Setup、Preferences
メディア分析ガイドソースを変更しない FFprobe、FFmpeg、Whisper、サイドカー、分析ルートのワークフロー
マルチカメラ設定ヘルパーガイドスタック型タイムラインの準備、ヘルパー/API の境界、Resolve UI での変換手順
編集判断ガイド分析とタイムラインの判断に関する、プロジェクト固有の編集技法ガイダンス
Avid AAF のコンフォーム統合された納品データで Resolve ネイティブの 3 つの方法がすべて失敗する理由と、危険な方法
ネイティブ .drt の作成オフラインでテンプレートに挿入するタイムライン作成:カット、リタイム、トランジション、フェード、マーカー、コンパウンドと、その背後にある実測された法則
ヘッドレス編集ループコマンドラインから Resolve を操作する方法:どの交換形式が再リンクと往復処理に対応するかを、GUI と -nogui で測定
カラー判断ガイドプロジェクト固有のカラー補正ガイダンスと Resolve カラー API の境界
コントリビューションとプロジェクト構成コントリビューションのワークフロー、プラットフォーム対応、セキュリティに関する注意事項、リポジトリ構成
セキュリティポリシーローカル stdio の信頼境界、ツールのメタデータ、確認に関するガイダンス、報告
リリースプロセスメンテナー向けリリースチェックリスト、バージョン情報の管理箇所、検証、タグ、リリースノート
変更履歴過去のリリースノート

拡張機能の作成に関するリファレンスは docs/authoring にあります。Resolve 開発者パッケージに関するメモは docs/notes と docs/integrations にあります。プロンプトのレシピは examples にあります。

必要要件

  • macOS、Windows、または Linux 上の DaVinci Resolve 18.5 以降。Studio では外部スクリプトを直接利用できます。無料版では利用できません。Blackmagic は外部スクリプトを Studio に限定しています。ただし、ゲートの対象外である Workspace ▸ Scripts メニューから Resolve 内で実行するアプリ内ブリッジを通じて利用できます。
  • Python 3.10 以降(リスクが最も低いのは 3.10~3.12 です)。最近の Resolve ビルドでは Python 3.13/3.14 も動作します(Studio 20.3.2 で確認済み)。古いビルドでは 3.13 以降で接続に失敗することがあります。その場合は 3.10~3.12 を使用してください。
  • 接続できませんか? python3 scripts/doctor.py を実行すると、サーバーが使用する Python を確認し、問題ごとの正確な修正方法を表示します。対象となる問題は、32 ビット版またはアーキテクチャが不適切な Python、Resolve ビルドに対して新しすぎる Python、複数の Python がインストールされていて MCP クライアントが誤ったものを起動する場合です。Python 環境の確認を参照してください。
  • Resolve の外部スクリプト設定を Local にしてください(Studio)。無料版では、この設定は影響しません。代わりにアプリ内ブリッジを使用してください。

Resolve 19.1.3 を引き続き互換性の基準としています。Resolve 20.x のスクリプト呼び出しは追加機能であり、バージョンチェックを通じて保護され、20.3.2 で実動テスト済みです。Resolve 21.0 のスクリプト機能(音声の分類、話者検出を利用した文字起こし、IntelliSearch、スレート解析、モーションブラー除去、音声生成、セッションのバックグラウンドタスク制御)は、実行時の機能検出を通じて公開されるため、古いビルドでは無効のままになり、Resolve 21 以降では自動的に有効になります。Studio 21.0.2.4 で実動テスト済みです。Resolve 21 の差分を参照してください。なお、AnalyzeForIntellisearch、AnalyzeForSlate、GenerateSpeech には、それぞれ別途ダウンロードが必要な AI Extras パックが必要です。また、Resolve はパックがない場合の報告方法が一定しておらず(False を返す場合もあれば、エラー文字列を返す場合もあります)、これらのアクションは推測せず、Resolve から返された理由とともに success: false を報告します。

バグの報告と機能のリクエスト

アシスタントに「これをバグとして送信して」または「これを機能リクエストとして送信して」と伝えてください。会話の内容から、失敗した呼び出しとそのエラーを含む GitHub Issue の下書きを作成し、サーバーのバージョン、Resolve のビルド、接続モード、OS を添付します。ローカルパス、ユーザー名、秘密情報と思われる内容は伏せられます。Issue が自動で送信されることはありません。入力済みのリンクが表示されるので、下書きを確認し、ご自身で GitHub に送信してください。Issue を直接作成することもできます。

開発

python src/server.py          # Compound server
python src/server.py --full   # Granular server
venv/bin/python tests/test_import.py
venv/bin/python scripts/audit_api_parity.py

リリースと検証のルールについては、docs/process/release-process.mdを参照してください。このリポジトリで作業する AI エージェントは、AGENTS.mdから始めてください。Claude Code のユーザーは、同じ正式な指示を参照するCLAUDE.mdも確認できます。

ライセンス

MIT

作者

Samuel Gursky ([email protected])

謝辞

  • DaVinci Resolve とそのスクリプティング API を提供する Blackmagic Design
  • AI アシスタントとの統合を可能にした Model Context Protocol チーム

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。