RenderDoc MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/Linkingooo/renderdoc-mcp.git
cd renderdoc-mcp
pip install -e .
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add -e "RENDERDOC_MODULE_PATH=${RENDERDOC_MODULE_PATH}" renderdoc-mcp-2efd -- node "<FULL_PATH_TO_RENDERDOC_MCP>/dist/index.js"

Replace <FULL_PATH_TO_RENDERDOC_MCP>/dist/index.js with the actual folder you prepared in step 1.

Required:RENDERDOC_MODULE_PATH
README.md

Analyze GPU frame captures for graphics debugging and performance analysis.

renderdoc-mcp

⚠️ Disclaimer

$\Large\color{#ff69b4}{\textsf{This is a personal }}$ $\Large\color{#ff69b4}{\mathtt{✨ vibe\text{-}coding ✨}}$ $\Large\color{#ff69b4}{\textsf{project —}}$ $\Large\color{#ff69b4}{\textsf{built for fun, not for production use.}}$

$\small\color{gray}{\textsf{I have no idea why this repo has so many stars...}}$

MCP server for RenderDoc — let AI assistants analyze GPU frame captures (.rdc files) for graphics debugging and performance analysis.

Built on the Model Context Protocol, works with Claude Desktop, Claude Code, and any MCP-compatible client.

Features

  • 42 tools covering the full RenderDoc analysis workflow
  • 10 high-level tools for one-call analysis (draw call state, frame overview, diff, batch export, pixel region sampling, etc.)
  • 3 built-in prompts for guided debugging
  • Human-readable output — blend modes, depth functions, topology shown as names not numbers
  • GPU quirk detection — auto-identifies Adreno/Mali/PowerVR/Apple-specific pitfalls from driver name
  • Headless — no GUI needed, runs entirely via RenderDoc's Python replay API
  • Pure Python — single pip install, no build step
  • Supports D3D11, D3D12, OpenGL, Vulkan, OpenGL ES captures

Quick Start

1. Prerequisites

  • Python 3.10+
  • RenderDoc installed (download)
    • You need the renderdoc.pyd (Windows) or renderdoc.so (Linux) Python module
    • It ships with every RenderDoc installation

2. Install

git clone https://github.com/Linkingooo/renderdoc-mcp.git
cd renderdoc-mcp
pip install -e .

3. Find your `renderdoc.pyd` path

The Python module is in your RenderDoc install directory:

Platform Typical path
Windows C:\Program Files\RenderDoc\renderdoc.pyd
Linux /usr/lib/renderdoc/librenderdoc.so or where you built it

You need the directory containing this file.

4. Configure your MCP client

Claude Desktop

Edit claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "renderdoc": {
      "command": "python",
      "args": ["-m", "renderdoc_mcp"],
      "env": {
        "RENDERDOC_MODULE_PATH": "C:\\Program Files\\RenderDoc"
      }
    }
  }
}
Claude Code

Add to .claude/settings.json:

{
  "mcpServers": {
    "renderdoc": {
      "command": "python",
      "args": ["-m", "renderdoc_mcp"],
      "env": {
        "RENDERDOC_MODULE_PATH": "C:\\Program Files\\RenderDoc"
      }
    }
  }
}
Run standalone
# Set the module path
export RENDERDOC_MODULE_PATH="/path/to/renderdoc"   # Linux/macOS
set RENDERDOC_MODULE_PATH=C:\Program Files\RenderDoc  # Windows

# Run
python -m renderdoc_mcp

Usage Examples

Once configured, just talk to your AI assistant:

"Open frame.rdc and show me what's happening in the frame"

"Find the draw call that renders the character model and check its pipeline state"

"Why is my shadow map rendering black? Check the depth pass"

"Analyze performance — are there any redundant draw calls?"

Typical Tool Flow

open_capture("frame.rdc")                     # Load the capture
├── get_capture_info()                         # API, GPU, known_gpu_quirks
├── get_frame_overview()                       # Frame-level stats and render passes
├── get_draw_call_state(142)                   # Complete draw call state in one call
├── diff_draw_calls(140, 142)                  # Compare two draw calls (with implications)
├── export_draw_textures(142, "./tex/")        # Batch export all bound textures
├── save_render_target(142, "./rt.png")        # Save render target snapshot
├── analyze_render_passes()                    # Auto-detect render pass boundaries
├── find_draws(blend=True, min_vertices=1000)  # Search by rendering state
├── sample_pixel_region(rt_id, 0,0,512,512)   # Scan RT region for NaN/Inf/negatives
├── pixel_history(id, 512, 384)               # Debug a specific pixel
├── export_mesh(142, "./mesh.obj")             # Export mesh as OBJ
└── close_capture()                            # Clean up

For performance and diagnostic analysis:

get_pass_timing(granularity="pass")      # Find most expensive render passes
analyze_overdraw()                        # Fill-rate pressure estimate
analyze_bandwidth()                       # Memory bandwidth estimate
analyze_state_changes()                   # Batching opportunities
diagnose_negative_values()               # Find NaN/Inf/negative color values (爆闪)
diagnose_precision_issues()              # R11G11B10, D16, SRGB mismatches
diagnose_reflection_mismatch()           # Reflection artifact diagnosis

Tools (20)

open_captureLoad a RenderDoc capture file.
get_capture_infoRetrieve API, GPU, and known GPU quirks.
get_frame_overviewGet frame-level statistics and render passes.
get_draw_call_stateGet complete state for a specific draw call.
diff_draw_callsCompare two draw calls.
export_draw_texturesBatch export all bound textures for a draw call.
save_render_targetSave a render target snapshot.
analyze_render_passesAuto-detect render pass boundaries.
find_drawsSearch for draw calls by rendering state.
sample_pixel_regionScan a render target region for NaN, Inf, or negative values.
pixel_historyDebug a specific pixel's history.
export_meshExport a mesh as an OBJ file.
get_pass_timingFind most expensive render passes.
analyze_overdrawEstimate fill-rate pressure.
analyze_bandwidthEstimate memory bandwidth usage.
analyze_state_changesIdentify batching opportunities.
diagnose_negative_valuesFind NaN, Inf, or negative color values.
diagnose_precision_issuesCheck for format mismatches like R11G11B10 or SRGB.
diagnose_reflection_mismatchDiagnose reflection artifacts.
close_captureClose the current capture.

Environment Variables

RENDERDOC_MODULE_PATHrequiredThe directory path containing the RenderDoc Python module (renderdoc.pyd or librenderdoc.so).

Configuration

claude_desktop_config.json
{"mcpServers": {"renderdoc": {"command": "python", "args": ["-m", "renderdoc_mcp"], "env": {"RENDERDOC_MODULE_PATH": "C:\\Program Files\\RenderDoc"}}}}

Try it

Open frame.rdc and show me what's happening in the frame.
Find the draw call that renders the character model and check its pipeline state.
Why is my shadow map rendering black? Check the depth pass.
Analyze performance — are there any redundant draw calls?
Find the most expensive render passes in this capture.

Frequently Asked Questions

What are the key features of RenderDoc MCP?

Supports 42 tools for comprehensive RenderDoc analysis workflows.. Provides high-level analysis for draw call states, frame overviews, and diffing.. Auto-identifies GPU-specific pitfalls from driver names.. Headless operation using RenderDoc's Python replay API.. Supports D3D11, D3D12, OpenGL, Vulkan, and OpenGL ES captures..

What can I use RenderDoc MCP for?

Debugging graphical artifacts like black shadow maps or incorrect reflections.. Optimizing GPU performance by identifying expensive render passes and overdraw.. Inspecting pipeline states and shader bindings for specific draw calls.. Batch exporting textures and meshes from a frame capture for external analysis..

How do I install RenderDoc MCP?

Install RenderDoc MCP by running: git clone https://github.com/Linkingooo/renderdoc-mcp.git && cd renderdoc-mcp && pip install -e .

What MCP clients work with RenderDoc MCP?

RenderDoc MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep RenderDoc MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare