DCC-MCP Core について
DCC-MCP Core は、クリエイティブアプリやゲームエンジンを操作するエージェント向けの制御プレーンで、スタジオの技術チームやエージェントの統合担当者を対象としています。共通の MCP とツール契約で複数のホストをつなぎ、Skills、ルーティング、構造化結果を提供します。
主な機能
- 01共通の MCP とツール契約
- 02ホスト機能の検索と呼び出し
- 03複数の稼働インスタンスをルーティング
- 04再利用可能な機能を Skill 化
- 05メインスレッド実行と型付き結果
- 06API のないツール向け UI 制御
活用シーン
- 01稼働中の DCC アプリをエージェントで操作
- 02スタジオでプロジェクト別 Skills を配布
- 03単一ゲートウェイで複数セッションをルーティング
- 04画面操作のみの旧ツールをワークフローに追加
MCP 対応
MCP と REST を通じて、DCC、ゲームエンジンなどのホスト機能をエージェントに公開します。ゲートウェイは共通の検索・呼び出し契約でリクエストを転送します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx dcc-mcp-serverDCC_MCP_GATEWAY_PORTPort the machine-wide gateway binds. One agent endpoint fronts every live DCC backend, so the port in the transport URL has to match this value.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
dcc-mcp-core

中文 | English
Webサイト · マーケットプレイス · ショーケース · エージェント向け · エコシステム
成長を続けるクリエイティブツールのエコシステムを支える、スキルファーストでRustを活用したコントロールプレーンです。
dcc-mcp-coreは、検出可能なMCPおよびREST機能を通じて、エージェントをデスクトップDCC、ゲームエンジン、2Dツール、制作システム、アセットプロバイダー、プロファイラー、カスタムスタジオホストに接続します。実際のセッションの運用に必要なゲートウェイ、スキル、構造化された結果、メインスレッドへのディスパッチ、診断、IPC、ワークフロー、パッケージ化されたCLI/サーバーバイナリを提供します。
すべての登録済みホストに、1つのプロトコルを。 このエコシステムのすべてのホストアダプターは、同じMCPプロトコルと同じツール契約を実装しています。レジストリが唯一の信頼できる情報源であり、チェックアウトしたリポジトリから件数を再現できます。
rg -c '^ tags: \[.*"adapter".*\]' dcc-mcp-catalog.yml
これは、dcc-mcp-catalog.yml に 48件のアダプターエントリー があることを示しています。現在のすべてのエントリーとそのインストールメタデータについては、生成されたホスト一覧の全件を参照してください。この件数には、実験的な検出専用のPhotoCraftが含まれますが、すべてのエントリーがリリース品質のサポート対象であることや、自動インストールに対応していることを示すものではありません。選択した例を以下に示します。
| 領域 | 主なホスト |
|---|---|
| デスクトップDCC | Maya、Blender、Houdini、3ds Max、Cinema 4D、Nuke、Katana、MotionBuilder、ZBrush、Mari、Substance 3D Designer、Substance 3D Painter、Marmoset |
| エンジンとリアルタイム | Unreal、Unity、Godot、Tiled、TouchDesigner |
| デザイン、画像、動画 | Photoshop、Illustrator、GIMP、Krita、After Effects、Premiere、Kdenlive、PowerPoint、OBS、ComfyUI |
| CAD、プロシージャル、データ交換 | FreeCAD、OpenSCAD、SketchUp、Material Maker、LiquiGen、OpenUSD |
| 制作管理とQA | Flow Production Tracking(ShotGrid)、RenderDoc、Shogun、Wwise |
インストールメタデータを含む全リストは、エコシステムディレクトリで公開されています。
3つの共通契約が、ひとつのマトリクスを支えます。 ホストの対応範囲は、アダプター間の互換性が保たれてこそ役立ちます。coreが公開する3つの契約により、ホストアダプターが互いに無関係なサーバーになるのを防ぎます。
| 契約 | 保証されること | 確認場所 |
|---|---|---|
| コア共有契約 | 共通のアセットインポート契約(asset_import)、共通のディスカバリー判定スキーマ(dcc-discovery-decision-v1)、および書き込み後に読み戻す事後条件により、ツールが自身の結果を証明します | python/dcc_mcp_core/asset_import.py、contracts/dcc-discovery-decision-v1.schema.json、python/dcc_mcp_core/runtime/postcondition.py |
| レシピランタイム | 宣言型の RECIPES.yaml に基づく recipes__list / recipes__get / recipes__validate / recipes__apply により、ホストは専用サーバーを個別に実装せず、データとして機能を提供できます | skills/mesh-ops/RECIPES.yaml |
| Marketplace Skill 契約 | 公開されるすべてのエントリーに examplePrompts が含まれます。また、Skills、Studio、Infrastructure のエントリーでは recovery と undo も宣言する必要があるため、失敗時の次の手順と、編集を元に戻す手順が用意されます | dcc-mcp/marketplace では validate_marketplace.py により検証されます — python scripts/validate_marketplace.py prompt-contract を実行してください(prompt-contract.md を参照) |
比較方法。 ホストの対応範囲と契約の完全性を比較してください。どちらも上記のコマンドとファイルから再現可能です。ランキングを主張することはなく、スター数やツール数による比較も行いません。
機能
- 同梱のエージェントスキル。 すべてのチェックアウトとリリースに、コンパクトなインデックスである
llms.txtと、完全な API リファレンスであるllms-full.txtが含まれます。どちらも機械可読形式のため、エージェントはリポジトリから直接読み込んですぐに作業を開始でき、Skill のインストール、マーケットプレイスの閲覧、レンダリング済みドキュメントのスクレイピングは不要です。 - 本番環境における単位としての Skills。 バージョン管理された
SKILL.mdパッケージとして機能を提供します。tools.yaml、段階的なディスカバリー、リンティングとスキーマ検証、ホットリロードに対応しています (DccSkillHotReloader)。 - メインスレッドへのディスパッチ。 アクションは DCC のメインスレッドにキューイングされるため、スレッド外でのスクリプト実行時にクラッシュするアプリケーションに対しても安全に呼び出せます。
- 構造化された結果と事後条件。 すべての呼び出しで型付きの結果が返されます。また、共通の事後条件契約では書き込み後に読み戻しを行うため、ツールは自身の効果を証明する必要があります。
- 複数インスタンスのルーティング。 1 つのゲートウェイで稼働中のすべての DCC セッションに接続し、
gateway://instancesを公開するため、実行中のホスト数にかかわらず、エージェントは 1 つのエンドポイントと通信できます。 - フォールバックとしての UI Control。 API がまったくないツールでも、範囲を限定したスクリーンショットとクリックによる自動化で、同じコントロールプレーンから操作できます (DCC UI Control)。
エントリーポイントを選ぶ
| 目的 | 参照先 |
|---|---|
| 実行中の DCC をエージェントまたは CI ジョブから操作する | dcc-mcp Agent Skill をインストールし、dcc-mcp-cli を使用します |
| DCC アダプターを MCP/REST 経由で公開する | create_skill_server |
| 解決済みのパッケージ(Rez)からサーバーを起動する | dcc-mcp-core serve |
| Python の登録コードを追加せずにツールを追加する | SKILL.md + tools.yaml |
| 再利用可能な Skills を見つけてインストールする | DCC-MCP Marketplace |
| 新しい DCC アダプターを構築する | new-adapter-onboarding.md |
| ルーティングと複数インスタンスの動作を理解する | gateway.md |
| 任意の HTTP クライアントから統合する | rest-api-surface.md |
現在の契約
デフォルトのエージェント経路は CLI + REST です。
dcc-mcp-cli dcc-types (when adapter support is unclear)
-> list
-> search
-> describe
-> load-skill (only when needed)
-> call
ゲートウェイは、tools/list の規模を抑えています。すべてのバックエンドツールを大きなリストにまとめるのではなく、標準の検出/ディスパッチ用ラッパー(search、describe、load_skill、call)を公開します。バックエンドの機能は search で検出し、describe で確認して、ラッパーまたは REST の同等エンドポイント(POST /v1/search、/v1/describe、/v1/call)を通じて呼び出します。
特定の DCC セッションが必要な場合は、gateway://instances を読み取ってください。各エントリーには、すでに mcp_url が含まれています。削除済みのレガシーインスタンスツール(list_dcc_instances、get_dcc_instance、connect_to_dcc)は使用しないでください。ラッパーの入力は arguments 内に指定してください。tool_slug の隣にバックエンドのフィールドを置かないでください。
DCC ごとの MCP 直接接続では、サーバーが公開している場合、互換性のための検出名(search_tools、describe_tool、call_tool)も引き続き利用できます。新しいゲートウェイ統合では、上記の標準名を使用してください。
dcc-mcp-core が存在する理由
最もシンプルな DCC エージェントのデモでは、モデルに mayapy、hython、または Blender の Python スクリプトを書かせて実行します。本番パイプラインでは、毎回モデルから正しいスクリプトを得られることに依存できません。コード生成を繰り返すとトークンを消費し、モデルやコンテキストによって結果にばらつきが生じます。また、各アダプターがトランスポート、メインスレッドへのディスパッチ、検証、プロセスのライフサイクル、ルーティング、診断機能を再構築することになります。
dcc-mcp-core は、こうした共通のエンジニアリングを、再利用可能な 1 つのコントロールプレーンに集約します。
| レイヤー | 再利用可能な機能 |
|---|---|
| 統合 | MCP と REST のエンドポイント、Host RPC/IPC、型付きスキーマ、リソース、プロンプト、構造化された結果 |
| DCC ランタイム | メインスレッドとの親和性、準備状態、複数インスタンスのルーティング、非同期ジョブ、キャンセル、チェックポイント、ワークフロー、成果物、UI Control |
| スキルの提供 | SKILL.md パッケージ、段階的な検出、lint/スキーマ検証、ホットリロード、永続化、マーケットプレイスでの配布、プロジェクト/チームのスコープ |
| 運用 | CLI、ゲートウェイ、Admin UI、ポリシー、監査記録、トレース、ログ、メトリクス、ヘルスチェック、VRS リプレイ |
このプロジェクトは、エージェントが DCC アプリケーションを操作するためのインフラを提供するものであり、エージェント自体を構築したり、そのあり方を定めたりするものではありません。エージェントやモデルは変化しますが、スタジオのインターフェース、権限の境界、パイプラインの知識は引き続き維持する必要があります。このフレームワークにより、こうした投資を再利用可能なエンジニアリング資産に変えられます。
既存のツールにも AI アクセスが必要です
新しいツールに AI 向けのインターフェースを追加するのは、通常は簡単です。より難しいのは、API がない、変更できない、またはワークフローの一部がウィンドウやモーダルダイアログ経由でしか操作できない場合に、何年も使われてきた既存のツールをエージェントが利用できるようにすることです。
この課題に対処するため、dcc-mcp-core は、対象を限定した Computer Use 方式の DCC UI Control 機能を提供します。対象ウィンドウの正確なスクリーンショット、利用可能な場合のセマンティックコントロール、範囲を限定した操作、待機、記録、ポリシーチェック、監査、結果の検証を組み合わせます。ネイティブの Skills/API を優先する方針に変わりはありません。UI Control により、レガシーなワークフローやインターフェース経由でしか操作できないワークフローも、すべてのアプリケーションに整ったプログラム可能な API があるかのように装うことなく、同じエージェントコントロールプレーンに加えられます。
MCP は入口であり、フレームワークの限界ではありません
MCP は再利用する業界標準のエージェントインターフェースであり、フレームワークの限界ではありません。安定した Python、C++、HTTP、コマンドポート、またはネイティブプラグインのインターフェースは、同じ検出、実行、安全性、運用の契約のもとで統合できます。
ベンダーの有用な機能も置き換えず、そのまま取り込んでいます。Unreal Engine 5.8 では、実験的な組み込み MCP サーバーと Toolset Registry が導入されました。Unreal Official MCP Bridge は、それらを再配布することなく、DCC MCP を通じて公式ツールセットを有効化して呼び出せるようにします。ベンダーツール、DCC-MCP ツール、スタジオツールを、1 つのエージェント向けワークフローで共有できます。
Skill は本番環境での作業単位です
Skill は、実証済みのパイプラインの知識を、バージョン管理、型付け、テスト、配布が可能な操作に変換します。低コストのモデルは、シーン編集ロジックをゼロから考案するのは苦手でも、十分に説明されたツールを選び、検証済みの引数を渡すことには効果を発揮できます。スタジオはプロジェクトや制作段階ごとに異なる Skill セットを配布できるため、コード生成の繰り返し、トークンの使用量、モデルによるばらつきを減らせます。
これは、スタジオの TD や TA にとって、実践的なカスタマイズの境界でもあります。Core とアダプターは、ホストとの接続、メインスレッドでの実行、ルーティング、安全性、可観測性を担います。TD や TA は、命名やシーンのチェック、アセットの準備、公開ゲート、キャッシュ/エクスポートのルール、レビューの引き継ぎといった実際のプロジェクトのフローを、SKILL.md、tools.yaml、スタジオが既に使用しているスクリプトで構成される Skill に記述できます。これらの Skill はテストでき、プロジェクトやチーム単位で適用範囲を設定でき、コントロールプレーンをフォークしたりアダプターを作り直したりすることなく、公開または非公開のマーケットプレイスを通じて配布できます。
ひとつの契約、広がり続けるエコシステム
同じ Skill とランタイムの契約は、現在、当初の DCC アダプターをはるかに超える範囲に広がっています。
| 分野 | 例 |
|---|---|
| デスクトップ DCC | Maya、Blender、Houdini、3ds Max、Nuke、Katana、MotionBuilder、ZBrush |
| デザインおよびコンテンツツール | Photoshop、Substance 3D Designer/Painter、After Effects、Premiere、GIMP、Krita |
| ゲームおよび 2D エンジン | Unreal Engine、Unity、Godot、Tiled、Material Maker |
| パイプラインおよび品質 | OpenUSD、Flow Production Tracking、MaterialX、テクスチャ/公開ワークフロー、RenderDoc、Tracy |
| 再利用可能な Skill | アセットプロバイダー、生成型 2D/3D サービス、UI オートメーション、リギング、プロシージャルなオーサリング、ゲームのリリースと受け入れ |
エコシステムディレクトリですべての連携を確認するか、公式マーケットプレイスでアダプターを変更せずにオプションの Skill を探してください。
Admin UI はフィードバックループを完結させます。呼び出し、トレース、ログ、ヘルス、統計、使用状況データによって、エージェントがどのツールを選び、どこで失敗したかを確認できます。チームは説明、スキーマ、実装を改善し、ツールの使用をブラックボックスとして扱うのではなく、実際の呼び出しに照らして結果を検証できます。
境界は明確に保たれています。Core は、DCC のメインスレッドですでに実行中の任意のコードを安全に先取りしたり、トランザクションに対応していないホスト API のロールバックを保証したり、あらゆるアプリケーションに対応する単一の損失のないメッシュ/リグ/マテリアルモデルを定義したりすることはできません。ホストのセマンティクスは、引き続きアダプターとパイプライン Skill が担います。
クイックスタート:DCC を操作する
dcc-mcp-cli は、シェルを使用できるすべてのエージェントに推奨される操作方法です。
Python ツールチェーンがある場合は、次のコマンドひとつで Linux、macOS、Windows にインストールできます。
uvx dcc-mcp-cli --version # run it without installing
# or install it into a managed tool environment
uv tool install dcc-mcp-cli
pipx install dcc-mcp-cli
# or into the current environment
pip install dcc-mcp-cli
パッケージマネージャーでのインストールは、パッケージマネージャーによって管理されます。これらのビルドでは dcc-mcp-cli update apply が無効になっているため、アップグレードには uv tool upgrade dcc-mcp-cli(または pip install --upgrade dcc-mcp-cli)を使用してください。
それ以外の場合は、ユーザーの同意を得て、以下の公開 dcc-mcp Skill をインストールし、Skill ディレクトリにバンドルされている検証済みのヘルパーを実行してください。
python scripts/check_cli.py --ensure-cli --pretty
Skill を使用しない場合は、公式インストーラーをローカルファイルにダウンロードして内容を確認し、そのファイルを実行してください。
# Linux/macOS
curl -fL https://raw.githubusercontent.com/dcc-mcp/dcc-mcp-core/main/scripts/install-cli.sh -o install-cli.sh
cat install-cli.sh
# After reviewing the file:
sh ./install-cli.sh
# Windows PowerShell
Invoke-WebRequest https://raw.githubusercontent.com/dcc-mcp/dcc-mcp-core/main/scripts/install-cli.ps1 -OutFile .\install-cli.ps1
Get-Content -Raw .\install-cli.ps1
# After reviewing the file and subject to the current execution policy:
& .\install-cli.ps1
どちらの方法も、公式の dcc-mcp/dcc-mcp-core リリースのみを受け付け、プラットフォームの更新マニフェストと CLI の SHA-256 を検証します。また、検証やダウンロードに失敗した場合、既存のバイナリには手を加えません。これは整合性チェックであり、デジタル署名ではありません。リモートインストーラーをシェルに直接パイプしたり、マシンのスクリプト実行ポリシーを回避したりしないでください。
必要な Agent Skill をインストールする
3 つの公開 Skill はそれぞれ異なる役割を担います。まずはライブ DCC 作業用の dcc-mcp を使い、タスクがその境界に達した場合にのみ、クリエイター向け Skill をインストールしてください。
| エージェントタスク | 公開 Skill | ソース |
|---|---|---|
| 稼働中の DCC を操作する、ツールを検索する、または Marketplace を検索する | @loonghao/dcc-mcp | dcc-mcp |
| DCC-MCP アダプター/ランタイム全体を作成または最新化する | @loonghao/dcc-mcp-creator | dcc-mcp-creator |
| DCC 固有の Skill パッケージを作成、検証、または改善する | @loonghao/dcc-mcp-skills-creator | dcc-mcp-skills-creator |
OpenClaw はデフォルトでアクティブなワークスペースにインストールします。すべてのローカル OpenClaw エージェントで Skill を共有する場合に限り、--global を追加してください。
openclaw skills install @loonghao/dcc-mcp
openclaw skills install @loonghao/dcc-mcp-creator
openclaw skills install @loonghao/dcc-mcp-skills-creator
Codex 互換のプロジェクトでは、標準のプロジェクト Skill ルートにインストールしてください。
npx --yes [email protected] install @loonghao/dcc-mcp
npx --yes [email protected] install @loonghao/dcc-mcp-creator
npx --yes [email protected] install @loonghao/dcc-mcp-skills-creator
その他の Agent Skills ホストでは、設定済みの Skill ルートに同じ ClawHub パッケージをインストールしてください。インストール後、新しいエージェントターンを開始します。自然な DCC リクエストでは dcc-mcp が起動します。Skill の明示的な呼び出しに対応したホストでは、それぞれ $dcc-mcp、$dcc-mcp-creator、または $dcc-mcp-skills-creator を使用できます。
3 つのパッケージはいずれも Codex の agents/openai.yaml メタデータを含み、DCC-MCP および ClawHub の契約を維持しています。ソース、ベンダーマニフェスト、不変バージョン、公開ワークフローは、現在 dcc-mcp-agent-plugins にあります。このリポジトリには、これらの公開パッケージはベンダーとして含まれていません。トップレベルの skills/ ディレクトリには、Core が管理する Marketplace およびリファレンス Skills が含まれています。バンドルされたランタイム Skills は python/dcc_mcp_core/skills/ にあります。
リリースマニフェストを使って、公式ビルドを最新の状態に保ちます。
dcc-mcp-cli update check
dcc-mcp-cli update apply --yes # after user confirmation
公式リリースビルドでは、フォアグラウンドのコマンドをブロックせず、バックグラウンドで 24 時間ごとにキャッシュ済みの更新ステータスを更新します。利用可能な更新は、構造化された cli_update データとして表示されます。エージェントは、報告された適用コマンドを実行する前にユーザーに確認する必要があります。update apply --yes は最新の CLI をダウンロードし、次回起動用にステージングします。実行中の dcc-mcp-server は更新も再起動もしません。このサーバーは、それぞれの環境で更新してください。
次に、ライブ機能を検索してから呼び出します。
dcc-mcp-cli dcc-types
dcc-mcp-cli --output json dcc-types --dcc-type unreal
dcc-mcp-cli list
dcc-mcp-cli search --query "create sphere" --dcc-type maya --limit 20
dcc-mcp-cli describe <tool-slug>
dcc-mcp-cli call <tool-slug> --json '{"radius": 2.0}' \
--meta-json '{"agent_context":{"session_id":"task-42"}}'
--query "create sphere" は、リリース済みの CLI ビルドと互換性があります。統合検索パーサーを含むビルドでは、引用符で囲まない位置引数の単語も使用できます。
dcc-types は、カタログを参照するオフラインの機能クエリです。正規のアダプター識別子とインストールプランの利用可否を報告します。ライブインスタンスの正確な情報源は引き続き list です。対象を指定する --dcc-type 形式では、公開カタログでのサポート、パッケージ/ブートストラップの状態、レジストリ登録、準備状況、機能の検出、実ホストでの検証を個別に扱う、バージョン付きの判定を出力します。特に、live_instances: 0 はサポート対象またはインストール済みのアプリケーションがゼロであることを意味しません。live_instances: null は、ローカルレジストリの状態を確認できなかったことを意味します。
プレースホルダーを検索結果で返されたスラッグに置き換えます。リモートワークステーションで作業する場合は、ゲートウェイプロファイルを登録して選択してください。
dcc-mcp-cli gateway register https://workstation.example:19293 --name pcA
dcc-mcp-cli gateway set pcA
dcc-mcp-cli list
起動状態または準備状況が不明な場合は、dcc-mcp-cli doctor を使用してください。ゲートウェイが利用可能になったら、ローカルの Admin UI(http://127.0.0.1:9765/admin)を開きます。
呼び出しに失敗した場合は、request_id を保持し、doctor または失敗で絞り込んだ stats クエリを実行して、ゲートウェイ管理の dcc-mcp-cli feedback を使用してください。ライブアダプターの dcc_feedback__report は、同じエンドポイントへの単なる Core 転送機能です。ゲートウェイ経由の失敗では、レビュー済みのバグ報告に使用できる、公開しても安全な /v1/debug/issue-reports/<request_id> ペイロードも公開されます。未加工のバンドルを自動でアップロードしてはいけません。
タスクが承認された後、エージェントはdcc-mcp-cli stats --range 24h --session-id task-42を使って、範囲を限定したゲートウェイのエビデンスを確認できます。呼び出し回数が0の場合、テレメトリのエビデンスはなく、ローカルでの直接呼び出しが記録されていない可能性があります。その結果に、タスクと検証の短い概要を添えて、review_skill_improvementプロンプトに入力します。このプロンプトはデフォルトで変更しないことを選び、既存のスキルの改善を優先します。また、タスクの範囲外での編集や公開を許可することはありません。
クイックスタート:Python からスキルを公開する
pip install dcc-mcp-core
サーバーにスキルディレクトリを指定して、MCP エンドポイントを起動します。
import os
from dcc_mcp_core import McpHttpConfig, create_skill_server
os.environ["DCC_MCP_MAYA_SKILL_PATHS"] = "/path/to/skills"
server = create_skill_server("maya", McpHttpConfig())
handle = server.start()
print(handle.mcp_url())
ローカルの DCC インスタンスは、デフォルトで OS が割り当てたポートにバインドします。解決された URL は自動的に登録されるため、ゲートウェイと CLI はインスタンスごとにポートをハードコードしなくても検出できます。固定リスナーが明示的に必要な場合に限り、port=<number>を渡してください。
ハンドラーを手動で登録するには、McpHttpServer と ToolRegistry を使用します。アダプターのライフサイクル、レディネス、ゲートウェイ登録、ホットリロードについては、アダプターガイドで説明されている DccServerBase を使用してください。
アダプターコードなしでサーバーを起動する
dcc-mcp-coreはコンソールスクリプトなので、解決済みのパッケージ(Rez、venv、または pip)からサーバーを直接起動できます。Rez のpackage.pyでは、次のようにtoolsを宣言します。
dcc-mcp-core info # print the full launch contract
dcc-mcp-core serve --dcc maya # Skills-First server on an OS-assigned port
serveは解決済みの MCP URL を出力します。解析可能なオブジェクトを1つ出力するには--jsonを追加し、DCC_MCP_<DCC>_SKILL_PATHS以外のスキルディレクトリを指定するには、繰り返し指定できる--skill-pathを使用します。Rez スキルパッケージを参照してください。
フレームワークの接着コードなしでスキルを追加する
このプロジェクトは agentskills.io の frontmatter コントラクトに従います。dcc-mcp-core の拡張機能は metadata.dcc-mcp の下に配置し、ツール宣言は同階層のファイルに記述します。
my-skill/
├── SKILL.md
├── tools.yaml
└── scripts/
└── do_thing.py
# SKILL.md
---
name: my-skill
description: "Does a useful Maya task. Use when the user asks for it."
metadata:
dcc-mcp:
dcc: maya
tools: tools.yaml
search-hint: "geometry, scene task"
---
# tools.yaml
tools:
- name: do_thing
description: Do the task in the active Maya scene.
source_file: scripts/do_thing.py
execution: sync
affinity: main
annotations:
read_only_hint: false
destructive_hint: true
CI で使用するのと同じ本番用バリデーターを、dcc-mcp-cli lint path/to/skills で実行します。スキーマ、グループ、依存関係、テスト、移行ルールについては、スキルを参照してください。
DCC UI コントロール
ネイティブ DCC API ではインターフェースの状態を直接確認または操作できない場合に、デスクトップアプリを自動化します。エージェントはui_control__snapshot、ui_control__find、ui_control__act、ui_control__wait_for、ui_control__recording_start、ui_control__recording_state、ui_control__recording_stop、ui_control__stop_computer_useを使用して、対象アプリケーションの状態を確認し、対象を特定して操作し、正確に記録します。
UI コントロールは範囲を限定したフォールバックとして使用し、DCC 統合のデフォルトにはしないでください。
- シーン、アセット、レンダー、プロジェクトの作業には、構造化されたアダプターツールを優先してください。
- API がないコントロール、アダプターの対応が不十分な領域、エンドツーエンドの GUI 受け入れテストには UI コントロールを使用してください。
- エージェントのタスクに含まれる画像をすべて UI コントロールのエビデンスと見なさないでください。DCC ネイティブのキャプチャ、RenderDoc のエクスポート、ImageGen の出力、動画のフレームは、それぞれ来歴が異なります。

スクリーンショットとクリックの仕組み
ui_control__snapshot は、バインドされたウィンドウのみをキャプチャします。最長辺が 1600 ピクセルを超えるか、画像が 150 万ピクセルを超えるまではネイティブ解像度を維持し、その後、縦横比を維持して縮小します。1280×720 のウィンドウは 1280×720 のままですが、1920×1080 のウィンドウは 1600×900 になります。そのため、対象ウィンドウが大きく、遮るものがないほど、小さな文字やカスタム描画されたアイコンを認識しやすくなります。
エージェントは、相互に補完する次の 3 つのシグナルを受け取ります。
- 視覚認識と空間理解のための PNG ピクセル。
- アプリケーションが公開している場合、ラベル、ロール、安定した要素トークンを含む CUA アクセシビリティツリー。
- 正確な PID、HWND、DPI、ソースの矩形、デスクトップ世代、セッション、スナップショットの観測メタデータ。
クリックでは、control_id が優先されます。カスタム描画された UI の場合、スクリーンショット基準の座標は、ソースの矩形と DPI を通じて元の位置に対応付けられます。すべてのアクションでは最新の snapshot_id を指定する必要があります。ホストは入力を送信する前に、ウィンドウ、デスクトップ、ジオメトリ、世代を再検証し、古くなった観測情報を拒否します。
成功したスナップショットには、バックエンド、セッション、対象の PID/HWND、出力とソースの寸法、スケーリング、ネイティブキャプチャバックエンドを含む capture_provenance が記録されます。証拠として使用するスクリーンショットでは、このブロックを保持してください。プロベナンスのない古い画像は、事後に UI Control のものだと確実に特定できません。
機能
- 対象ウィンドウの限定 — スナップショットとアクションは単一のプロセスまたはウィンドウハンドルに限定され、デスクトップ全体を対象にすることはありません。
- 複数インスタンスのセッション — ゲートウェイは DCC の
instance_idを選択し、ネイティブホストは各アダプター接続に名前空間を割り当てます。そのため、個別の DCC インスタンスは、機能やクリーンアップ状態を共有せずに、defaultのような論理的なsession_idを再利用できます。 - セマンティックなアクセシビリティと生入力のフォールバック —
ui_control__findで解決される安定したセマンティックコントロール(ボタン、テキストフィールド、チェックボックスなど)を優先し、カスタム描画されたコントロールにセマンティックノードがない場合は、スクリーンショット基準の座標にフォールバックします。 - 制限されたセキュリティモデル — すべてのアクションは、アダプター/オペレーターにバインドされた PID/HWND の範囲に限定されます。生入力はデフォルトでその正確な範囲内で有効になっており、
DCC_MCP_CUA_ALLOW_RAW_INPUT=falseで無効にできます。パスワード、認証コントロール、LockApp、Windows セキュリティ、ターミナル、資格情報マネージャーのウィンドウは常に拒否されます。 - 視認可能なコントロールマーカー — スタンドアロンの CUA ホストが、対象の枠線、バナー、エージェントカーソル、
Escによる停止手段を管理します。 - 共通の入力安全管理 — 複数の特定アプリケーションのセッションを同時にアクティブにできます。スタンドアロンのホストはネイティブ入力を直列化し、
Escをブロードキャストします。一方、通常の停止操作では選択したセッションのみを停止します。 - 操作履歴の記録 — アクションの前後に CUA の記録を開始・停止して、確定した CUA アーティファクトと構造化された記録状態を保持します。
- 監査証跡 — スナップショット、記録、アクション、待機、停止、拒否された操作のすべてが、共有ログディレクトリに秘匿処理された
ui_control_operationイベントとして追記されます。入力されたテキストやスクリーンショットの座標を公開することなく、管理者ログパネルで確認できます。
ツールリファレンス
| ツール | 説明 |
|---|---|
ui_control__snapshot | スコープ内のアプリケーションから、範囲を指定した PNG とアクセシビリティツリーをキャプチャします |
ui_control__find | クエリ、ロール、ラベル、またはオブジェクト名でセマンティックコントロールを検索します |
ui_control__act | スコープ内でセマンティック操作または座標ベースの操作を 1 つ実行します |
ui_control__recording_start | 絶対パスで指定した出力ディレクトリで CUA の軌跡/動画の記録を開始します |
ui_control__recording_state | 現在の CUA 記録状態を読み取ります |
ui_control__recording_stop | 後でレンダリングできるように CUA 記録を確定します |
ui_control__wait_for | UI 条件が満たされるまで、またはタイムアウトするまでポーリングします |
ui_control__stop_computer_use | カプセル、ホットキー、グローバル入力の所有権を解放します |
スキルの詳細なリファレンスとエージェントのワークフローについては、 ui-control スキルを参照してください。

アーキテクチャ
ランタイムは、次の 4 つの有用なレイヤーで構成されています。
- DCC サービス — スキルを管理し、1 つの DCC プロセス内でツールを実行します。
- サイドカー/スーパーバイザー — アダプターがパッケージ化されたランタイムを使用する場合に、ホスト RPC、準備状態、プロセスのライフタイム、ゲートウェイ登録を橋渡しします。
- ゲートウェイデーモン — 稼働中のインスタンスを集約し、検出、ルーティング、REST、Admin UI、監査、診断を管理します。
- クライアントの接続先 — CLI、MCP クライアント、REST クライアント、マーケットプレイスツールです。
Rust ワークスペースとパッケージの構成は、ルートの Cargo.tomlで定義されています。Python パッケージは PyO3 拡張機能で、純粋な Python ヘルパーを含み、Python 3.7–3.14 をサポートします。ソースからのビルド要件は rust-toolchain.tomlとパッケージのメタデータに記載されています。このリポジトリでは、バージョンやパッケージ数を README に重複して記載していません。
ドキュメントの一覧
- はじめに — パッケージをインストールし、最初のサーバーを起動します。
- MCP Registry のセットアップ — バージョンを検出し、ローカルゲートウェイを起動して、標準的な MCP クライアントで動作を確認します。
- CLI リファレンス — オペレーター向けのコマンドとフラグをすべて説明します。
- ゲートウェイガイド — デーモン、レジストリ、ルーティング、リレー、複数インスタンスの動作について説明します。
- REST API の概要 — リクエストエンベロープ、tool_slug、準備状態、エラーの仕様について説明します。
- スキルガイド — スキルの作成、読み込み、検証、永続化について説明します。
- アダプター導入ガイド — サポート対象のアダプター実装とリリースの手順について説明します。
- ドキュメント索引 — ガイドと API の一覧をすべて確認できます。
- AI エージェントガイドとAGENTS.md — エージェントのワークフローとリポジトリのルールを説明します。
開発
可能な場合は、リポジトリで固定されたツールチェーンを使用してください。
vx just install
vx just dev
vx just test
vx just test-rust
vx just lint
vx just docs-check
docs-check は VitePress サイトをビルドし、ドキュメント内のリンクと構文エラーを検出します。Markdown のリンターはドキュメントの CI ワークフローで実行されます。コーディング、テスト、リリースのルールについては、 CONTRIBUTING.mdを参照してください。
ライセンス
MIT — LICENSEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
