RenderDoc UI拡張機能として動作するMCPサーバー。AIアシスタントがRenderDocのキャプチャデータにアクセスし、グラフィックスデバッグを支援する。
Claude/AI Client (stdio)
│
▼
MCP Server Process (Python + FastMCP 2.0)
│ File-based IPC (%TEMP%/renderdoc_mcp/)
▼
RenderDoc Process (Extension)
RenderDoc内蔵のPythonにはsocketモジュールがないため、ファイルベースのIPCで通信を行う。
python scripts/install_extension.py拡張機能は %APPDATA%\qrenderdoc\extensions\renderdoc_mcp_bridge にインストールされる。
- RenderDocを起動
- Tools > Manage Extensions
- "RenderDoc MCP Bridge" を有効化
uv tool install
uv tool update-shell # PATHに追加シェルを再起動すると renderdoc-mcp コマンドが使えるようになる。
Note:
--editableを付けると、ソースコードの変更が即座に反映される(開発時に便利)。 安定版としてインストールする場合はuv tool install .を使用。
claude_desktop_config.json に追加:
{
"mcpServers": {
"renderdoc": {
"command": "renderdoc-mcp"
}
}
}.mcp.json に追加:
{
"mcpServers": {
"renderdoc": {
"command": "renderdoc-mcp"
}
}
}- RenderDocを起動し、キャプチャファイル (.rdc) を開く
- MCPクライアント (Claude等) から RenderDoc のデータにアクセス
| ツール | 説明 |
|---|---|
get_capture_status |
キャプチャの読み込み状態を確認 |
get_draw_calls |
ドローコール一覧を階層構造で取得 |
get_draw_call_details |
特定のドローコールの詳細情報を取得 |
get_shader_info |
シェーダーのソースコード・定数バッファの値を取得 |
get_buffer_contents |
バッファの内容を取得 (Base64) |
get_texture_info |
テクスチャのメタデータを取得 |
get_texture_data |
テクスチャのピクセルデータを取得 (Base64) |
get_pipeline_state |
パイプライン状態を取得 |
get_draw_calls(include_children=true)
get_shader_info(event_id=123, stage="pixel")
get_pipeline_state(event_id=123)
# 2Dテクスチャのmip 0を取得
get_texture_data(resource_id="ResourceId::123")
# 特定のmipレベルを取得
get_texture_data(resource_id="ResourceId::123", mip=2)
# キューブマップの特定の面を取得 (0=X+, 1=X-, 2=Y+, 3=Y-, 4=Z+, 5=Z-)
get_texture_data(resource_id="ResourceId::456", slice=3)
# 3Dテクスチャの特定の深度スライスを取得
get_texture_data(resource_id="ResourceId::789", depth_slice=5)
# バッファ全体を取得
get_buffer_contents(resource_id="ResourceId::123")
# オフセット256から512バイト取得
get_buffer_contents(resource_id="ResourceId::123", offset=256, length=512)
- Python 3.10+
- uv
- RenderDoc 1.20+
Note: 動作確認はWindows + DirectX 11環境でのみ行っています。 Linux/macOS + Vulkan/OpenGL環境でも動作する可能性がありますが、未検証です。
MIT