Skip to main content
Glama
README.md
# RenderDoc MCP Server

一个用于 RenderDoc 的 MCP (Model Context Protocol) 服务器,允许 AI 助手分析和检查 RDC 捕获文件。

## 功能

- 打开和分析 RDC 捕获文件
- 获取捕获的基本信息(API 类型、驱动、帧数等)
- 列出和搜索纹理资源
- 列出和搜索缓冲区资源
- 获取 Draw Call 列表和详情
- 查看着色器信息
- 获取像素数据

## 安装

### 前置要求

1. **RenderDoc**: 从 [renderdoc.org](https://renderdoc.org/) 下载并安装
2. **Python 3.10+**: 确保已安装 Python 3.10 或更高版本

### 安装 MCP 服务器

```bash
# 克隆仓库
git clone https://github.com/yourusername/renderdoc-mcp.git
cd renderdoc-mcp

# 安装依赖
pip install -e .
```

### 配置 RenderDoc Python 模块

要使用原生 Python API(推荐),需要设置 `PYTHONPATH` 包含 RenderDoc 的 Python 模块路径:

**Windows:**
```powershell
set PYTHONPATH=%PYTHONPATH%;C:\Program Files\RenderDoc\plugins\python
```

或者在环境变量中永久设置。

如果不设置,服务器会自动回退到使用 `renderdoccmd` 命令行工具。

## 配置 Claude Desktop

在 Claude Desktop 配置文件中添加:

**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "renderdoc": {
      "command": "python",
      "args": ["-m", "renderdoc_mcp.server"],
      "env": {
        "PYTHONPATH": "C:\\Program Files\\RenderDoc\\plugins\\python"
      }
    }
  }
}
```

**macOS/Linux:** `~/.config/claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "renderdoc": {
      "command": "python",
      "args": ["-m", "renderdoc_mcp.server"],
      "env": {
        "PYTHONPATH": "/usr/share/renderdoc/plugins/python"
      }
    }
  }
}
```

## 可用工具

| 工具名称 | 描述 |
|---------|------|
| `renderdoc_check_available` | 检查 RenderDoc 是否可用 |
| `renderdoc_open_capture` | 打开 RDC 捕获文件 |
| `renderdoc_close_capture` | 关闭当前捕获文件 |
| `renderdoc_get_capture_info` | 获取捕获的详细信息 |
| `renderdoc_get_textures` | 获取所有纹理列表 |
| `renderdoc_get_buffers` | 获取所有缓冲区列表 |
| `renderdoc_get_draw_calls` | 获取 Draw Call 列表 |
| `renderdoc_get_shader_info` | 获取着色器详细信息 |
| `renderdoc_get_pixel_data` | 获取指定位置的像素数据 |
| `renderdoc_get_texture_thumbnail` | 获取纹理缩略图 |
| `renderdoc_analyze_draw_call` | 分析特定 Draw Call |
| `renderdoc_search_resources` | 搜索资源 |

## 使用示例

在 Claude Desktop 中,你可以这样使用:

```
请帮我分析 C:\captures\scene.rdc 这个捕获文件中的纹理资源
```

```
列出这个捕获中的所有 Draw Call
```

```
搜索名称包含 "normal" 的纹理
```

## 开发

```bash
# 安装开发依赖
pip install -e ".[dev]"

# 运行测试
pytest
```

## 许可证

MIT License

TDQS

A3.6/5.0

Scored across 12 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific aspects of RenderDoc capture analysis, such as checking availability, opening/closing captures, retrieving lists of resources, analyzing draw calls, or fetching specific data like pixel colors or thumbnails. There is no significant overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tool names follow a consistent 'renderdoc_verb_noun' pattern with snake_case, such as 'renderdoc_open_capture' and 'renderdoc_get_textures'. This uniformity enhances readability and predictability, allowing agents to easily infer tool purposes from their names.

Tool Count5/5

With 12 tools, the server is well-scoped for analyzing graphics captures, covering core operations like capture management, resource listing, detailed analysis, and data retrieval. Each tool serves a specific and necessary function without redundancy, making the count appropriate for the domain.

Completeness4/5

The toolset provides comprehensive coverage for capture analysis, including opening/closing captures, retrieving resource lists, analyzing draw calls and shaders, and accessing pixel data. A minor gap exists in operations like modifying captures or exporting data, but core analysis workflows are fully supported, allowing agents to perform most essential tasks.