RenderDoc MCP
RenderDoc MCP
RenderDoc のキャプチャファイルを、Model Context Protocol(MCP) に対応する AI クライアントが直接分析できるようにします:Draw/Dispatch イベントの閲覧、パイプラインと Shader の検査、頂点・定数バッファデータのページング読み取り。
リポジトリには、実行可能な MCP stdio サービス、セッションとパスの安全境界、開発テスト用の Mock バックエンド、および qrenderdoc 1.44 に接続する実際の Replay ブリッジバックエンドが含まれています。
[!IMPORTANT] 現在は、実際のキャプチャへの接続に
qrenderdocバックエンドを推奨します。renderdoc/nativeバックエンドは予約実装のままです。
実際のブリッジは2つのプロセスで構成されます:モダンな Python 3.11 MCP Gateway と、qrenderdoc に組み込まれた Python 3.6 で動作する UI 拡張機能です。両者はランダムトークン付きのローカルファイルキューの JSON プロトコルで通信します。これにより、RenderDoc の縮小版 Python に存在しない _socket モジュールに依存することなく動作します。
MCP Client <-- stdio --> Python 3.11 Gateway
|
authenticated JSON spool
|
qrenderdoc extension
|
RenderDoc ReplayController実装済みの機能
MCP stdio サービスと構造化されたツール応答。
.rdcパスのホワイトリスト、ファイルタイプ、サイズ、セッション数の制限。専用ホワイトリスト内の
.exeを RenderDoc インジェクションで起動。引数は配列で渡され、シェルは実行されません。安定した
capture_idと明示的なevent_idを使用し、暗黙的な現在選択イベントに依存しません。各キャプチャへのアクセスをバックエンドで直列化し、RenderDoc ReplayController のスレッドモデルに境界を残します。
Action のフィルタリングとカーソルページング。
inspect_eventを複合的に呼び出すことで、1回の検査のための細かい MCP ラウンドトリップを減らします。現在のイベントのトポロジー、viewport/scissor、Shader、リソースバインド、レンダーターゲット、検証メッセージを読み取ります。
統一されたエラー構造と、パッシブな capture summary Resource。
最初のツール:
healthlaunch_programopen_captureclose_captureget_capture_summarylist_actionsget_eventinspect_eventget_pipeline_stateget_shaderget_vertex_datalist_constant_buffersget_constant_buffer
Pipeline、Shader、Buffer データ
get_pipeline_stateはsectionを指定しない場合、API 共通のスナップショットとapi_specific_sectionsを返します。その中のいずれかの名前をsectionとして再度呼び出すと、D3D11、D3D12、Vulkan、OpenGL の完全なトップレベル状態グループを得られます。get_shaderは stage ごとにreflection、disassembly、source、rawを読み取ります。後者の3種類の大容量コンテンツはcursor/next_cursorでページングされます。source_file_indexで組み込まれている各ソースファイルを辿れます。get_vertex_dataはインスタンスとドロー頂点を安定したレコードに展開し、すべての attribute のデコード値、正確なraw_hex、実際の buffer offset、形式メタデータを返します。uv_attributesはUV/TEXCOORDを明示的に示します。next_cursorを追い続ければ、すべてのインスタンスと頂点を網羅できます。list_constant_buffersは各 shader stage、reflection block、array element を列挙します。その後get_constant_bufferでそのブロックのデコード済み変数をすべて読み出します。さらに内側の生バイト列はraw_offset/next_offsetでページングされるため、単回の読み出し上限を超えてもデータが失われることはありません。
Related MCP server: RenderDoc MCP Server
環境
Python 3.11+
MCP Python SDK 安定版ライン
>=1.27,<2RenderDoc/qrenderdoc 1.44(実ブリッジバックエンド)
SDK v2 はまだプレリリース段階のため、このプロジェクトでは v1.x に固定しています。フレームワークコードがプレリリースのインターフェイス変更で揺れないようにします。
クイックスタート(Mock バックエンド)
PowerShell の場合:
python -m venv .venv
.venv\Scripts\python -m pip install -e ".[dev]"
$env:RENDERDOC_MCP_BACKEND = "mock"
$env:RENDERDOC_MCP_ALLOWED_ROOTS = (Get-Location).Path
.venv\Scripts\python -m renderdoc_mcpstdio はプロトコルのチャネルです。通常のログを stdout に書かわないでください。
MCP Inspector を使う場合:
.venv\Scripts\mcp dev src\renderdoc_mcp\server.pyMock バックエンドでは、ホワイトリスト内に実在する .rdc パスを渡す必要がありますが、ファイル内容の解析は行われません。
qrenderdoc ブリッジのインストール
RenderDoc が C:\Tools\RenderDoc にインストールされていると仮定して、プロジェクトディレクトリで実行します:
powershell -ExecutionPolicy Bypass -File .\scripts\install_qrenderdoc_bridge.ps1 `
-RenderDocRoot C:\Tools\RenderDocスクリプトは次を行います:
拡張機能を
%APPDATA%\qrenderdoc\extensions\renderdoc_mcp_bridgeにインストール。ランダムトークンを生成し、拡張側の
bridge_config.jsonに書き込み。Gateway が使う
.renderdoc-mcp-bridge.jsonをプロジェクトのルートに生成。
その後、C:\Tools\RenderDoc\qrenderdoc.exe を開き、Tools → Manage Extensions へ進み、RenderDoc MCP Bridge を選んで、まず Load をクリックします。成功したら Always Load にチェックを入れます。実際のバックエンドを使う間は qrenderdoc を起動し続ける必要があります。キュー用ディレクトリはデフォルトで、プロジェクト内の Git に無視される .renderdoc-mcp-spool です。
開発時には、UI を開いた qrenderdoc で自動ロード用スクリプトを一度実行することもできます:
C:\Tools\RenderDoc\qrenderdoc.exe --ui-python .\scripts\load_qrenderdoc_bridge.pyこのコマンドはその一度のロードだけを担います。日常的には拡張機能マネージャで Always Load をチェックすることをお勧めします。
MCP クライアントの設定例
パスを実際の位置に置き換えてください:
{
"mcpServers": {
"renderdoc": {
"command": "C:\\path\\to\\RenderDoc_MCP\\.venv\\Scripts\\python.exe",
"args": ["-m", "renderdoc_mcp"],
"env": {
"RENDERDOC_MCP_BACKEND": "qrenderdoc",
"RENDERDOC_MCP_ALLOWED_ROOTS": "C:\\captures",
"RENDERDOC_MCP_ALLOWED_EXECUTABLE_ROOTS": "C:\\projects\\my-renderer",
"RENDERDOC_MCP_ARTIFACT_ROOT": "C:\\path\\to\\RenderDoc_MCP\\artifacts",
"RENDERDOC_MCP_RENDERDOC_ROOT": "C:\\Tools\\RenderDoc"
},
"cwd": "C:\\path\\to\\RenderDoc_MCP"
}
}
}Codex のグラフィカル設定ページでは、引数を -m と renderdoc_mcp の2行に分割します。環境変数の透過は空のままにしてください。Working directory にはプロジェクトルートを入力します。作業ディレクトリに既に .renderdoc-mcp-bridge.json があるので、トークンを手動で MCP 設定に張り付ける必要はありません。
設定項目
環境変数 | デフォルト値 | 説明 |
|
|
|
| 現在のディレクトリ | capture を開けるディレクトリ。複数のディレクトリはシステムのパス区切り文字で区切ります |
| 空(起動禁止) |
|
|
| 今後生成する PNG、。Shader、JSON などの artifact の出力ディレクトリ |
|
| 同時に開けるキャプチャセッション数の上限。 |
|
| 単一キャプチャサイズ上限 |
|
| Action 1ページのハードリミット |
|
| 頂点、定数バッファ、Shader の内容を1ページで読み取るさいのハード上限。カーソルで続きを読めます |
| 設定ファイルの値 | RenderDoc インストール先ディレクトリ。例: |
|
| Gateway ブリッジ設定ファイル |
| 設定ファイルの値 | ローカルブリッジのリクエスト/レスポンスキュー用ディレクトリ |
| 設定ファイルの値 | 任意の環境変数による上書き。通常は手動設定不要 |
|
| ブリッジ要求1回のタイムアウト |
RenderDoc からプログラムを起動する
まず、自分のプログラムのプロジェクトルートを RENDERDOC_MCP_ALLOWED_EXECUTABLE_ROOTS に追加し、MCP サービスを再起動して、次のように呼び出します:
{
"executable": "C:\\projects\\my-renderer\\bin\\renderer.exe",
"arguments": ["--scene", "C:\\projects\\my-renderer\\scenes\\demo.json"],
"working_directory": "C:\\projects\\my-renderer",
"hook_into_children": false,
"api_validation": false
}成功結果には、RenderDoc の target-control ident とキャプチャファイルテンプレートが含まれます。プログラムは RenderDoc によりインジェクト済みなので、プログラムのウィンドウで既定のキャプチャキー F12 を押すだけで取得できます。このツールはシェルコマンドや環境変数の変更を受け付けません。子プロセス側にもインジェクションが必要な場合にのみ hook_into_children をオンにし、API バリデーションが必要な場合にのみ api_validation をオンにします。
テスト
開発用依存関係をインストールした後:
.venv\Scripts\python -m pytest
.venv\Scripts\ruff check .サードパーティのテスト依存を入れなくても、コアサービスのテストは実行できます:
$env:PYTHONPATH = "src"
python -m unittest discover -s tests -v安全境界
RENDERDOC_MCP_ALLOWED_ROOTS配下の.rdcファイルのみ開けます。launch_programはデフォルトでは無効で、RENDERDOC_MCP_ALLOWED_EXECUTABLE_ROOTS配下の.exeのみ起動を許可します。起動引数は配列で渡されシェルを経由しません。Gateway はツールによるターゲット環境変数の変更も許可しません。
Gateway と qrenderdoc 拡張機能の間のローカルメモリは、インストール時に生成されたランダムトークンで認証されます。
Action、Shader、頂点、Buffer データは、ページングまたは単回読み出しの上限のいずれかのある値で保護されます。
プロジェクトの状態と次のステップ
ブリッジの主経路、Pipeline state、Shader、頂点入力、定数バッファの読み取りは実装済みです。今後は、タスク単位で Texture ツール、汎用 Buffer readback、Pixel History、artifact 管理を追加して放課です。
詳細境界は アーキテクチャ説明 を参照してください。
ライセンス
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to analyze RenderDoc GPU frame captures for graphics debugging and performance analysis through a headless Python API. It provides a comprehensive suite of tools for inspecting pipeline states, shader bindings, and exporting frame resources like textures and meshes.150
- AlicenseAqualityNot gradedmaintenanceEnables AI assistants to analyze and inspect RenderDoc capture files, providing tools to examine draw calls, textures, buffers, and shader information. It allows developers to perform graphics debugging and resource analysis through natural language interactions.12
- AlicenseNot gradedqualityDmaintenanceExposes RenderDoc capture analysis to AI clients via MCP, enabling offline analysis of .rdc files (action tree, pipeline state, textures, shaders) and GUI state interaction on Windows.2MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to access RenderDoc capture data and assist in graphics debugging via a file-based IPC bridge.15482MIT
Related MCP Connectors
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Agent Replay Debugger MCP — record every agent step + deterministic replay. Step-debugger for
Live browser debugging for AI assistants — DOM, console, network via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/LifeSugar/RenderDoc_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server