Metadata-Version: 2.4
Name: renderdoc-mcp
Version: 0.2.6
Summary: MCP server for RenderDoc graphics debugger - enables AI-assisted frame capture analysis
Requires-Python: ==3.13.*
Description-Content-Type: text/markdown
Requires-Dist: mcp[cli]>=1.0.0

# renderdoc-mcp

[RenderDoc](https://renderdoc.org/) 的 MCP 服务器 —— 让 AI 助手直接分析 GPU 帧捕获文件（`.rdc`），用于图形调试和性能分析。

> **平台**：支持 Windows x64 和 Linux x64。

## 前置条件

- **Python 3.13** — [python.org/downloads](https://www.python.org/downloads/)
- **uv** — [docs.astral.sh/uv/getting-started/installation](https://docs.astral.sh/uv/getting-started/installation/)

```bash
# 验证版本
python --version   # Python 3.13.x
uv --version       # uv 0.x.x
```

## 配置

无需手动安装，直接添加到 MCP 客户端配置文件，`uvx` 会自动处理其余部分：

**VS Code** (`C:\Users\<用户名>\AppData\Roaming\Code\User\mcp.json`):
```json
{
  "servers": {
    "renderdoc": {
      "command": "uvx",
      "args": ["--python", "3.13", "renderdoc-mcp"]
    }
  }
}
```

**Claude Desktop** (`claude_desktop_config.json`):
```json
{
  "mcpServers": {
    "renderdoc": {
      "command": "uvx",
      "args": ["--python", "3.13", "renderdoc-mcp"]
    }
  }
}
```


## 使用方式

直接与 AI 助手对话：

> "简单介绍下 renderdoc-mcp 所有的工具及作用"

> "打开 frame.rdc 看看这一帧在做什么"

> "找到渲染角色模型的 draw call，检查它的管线状态"

> "为什么我的阴影贴图是黑的？检查深度 pass"

> "分析性能，有没有冗余的 draw call？"

## 工具列表（43 个）

**会话管理** — 打开/关闭捕获文件、帧概览、GPU 坑点自动识别

**事件导航** — 列出/搜索/导航 draw call 和 action

**管线检查** — 完整管线状态、shader 绑定、顶点输入、一次调用分析 draw call

**资源分析** — 枚举纹理、buffer、资源及其使用情况

**数据提取** — 导出纹理/mesh/渲染目标、读取像素、buffer 数据

**Shader 分析** — 反编译、反射信息、常量缓冲区内容

**高级分析** — 像素历史、draw call 对比、render pass 分析、像素区域扫描、逐像素 shader 调试

**性能分析** — pass 耗时、overdraw、带宽、状态切换分析

**问题诊断** — 负值/NaN/Inf 检测、精度问题、反射不匹配、移动端 GPU 风险

## 内置 Prompt

| Prompt | 说明 |
|--------|------|
| `debug_draw_call` | 深入分析单个 draw call |
| `find_rendering_issue` | 从问题描述出发，系统性排查渲染问题 |
| `analyze_performance` | 帧级别性能全面分析 |

## 工作原理

```
AI 助手 <--MCP--> renderdoc-mcp <--Python API--> renderdoc.pyd <-> GPU 回放
```

所有 RenderDoc DLL 和 `renderdoc.pyd` 均已捆绑，无需单独安装 RenderDoc。

## 常见问题

**`ImportError: DLL load failed`** — 检查杀毒软件是否拦截了捆绑的 DLL。

**服务器无法启动** — 查看 MCP 客户端日志；确认 `python --version` 输出为 3.13。

## 许可证

MIT
