本仓库基于 https://github.com/halby24/RenderDocMCP 进行功能扩展,扩展了以下功能:
- 现在支持所有图形API的buffer content获取
- remote-device-replay
下文是原仓库README的中文版翻译:
作为 RenderDoc UI 扩展运行的 MCP 服务器。使 AI 助手能够访问 RenderDoc 的捕获数据,辅助图形调试。
Claude/AI 客户端 (stdio)
│
▼
MCP 服务器进程 (Python + FastMCP 2.0)
│ 基于文件的 IPC (%TEMP%/renderdoc_mcp/)
▼
RenderDoc 进程 (扩展)
由于 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 命令。
注意:添加
--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+
注意:仅在 Windows + DirectX 11 环境下进行过测试验证。 在 Linux/macOS + Vulkan/OpenGL 环境下可能也能运行,但尚未验证。
MIT