RenderDocSAFE
MCP server for RenderDoc — AI-assisted GPU frame capture analysis
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
⚠️ 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) orrenderdoc.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:
819886475360OBSERVED · 2026-10-07Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add renderdoc-mcp -- uvx renderdoc-mcp
{
"mcpServers": {
"renderdoc-mcp": {
"command": "uvx",
"args": [
"renderdoc-mcp"
]
}
}
}Exposed tools (42)
38 read · 4 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
analyze_bandwidth | read | Estimate GPU memory bandwidth consumption for the frame. |
analyze_overdraw | read | Analyze overdraw across the frame or within a specific render pass. |
analyze_render_passes | read | Auto-detect render pass boundaries and summarize each pass. |
analyze_state_changes | read | Analyze pipeline state changes between consecutive draw calls. |
close_capture | read | Close the currently open capture file and free resources. |
debug_shader_at_pixel | read | Debug the shader at a specific pixel using RenderDoc |
diagnose_mobile_risks | read | Comprehensive mobile GPU risk assessment for the current frame. |
diagnose_negative_values | read | Scan all float render targets for negative/NaN/Inf pixels and trace their origin. |
diagnose_precision_issues | read | Detect floating-point precision issues in the frame. |
diagnose_reflection_mismatch | read | Diagnose why a reflection looks different from the original object. |
diff_draw_calls | read | Compare two draw calls and return their state differences. |
disassemble_shader | read | Disassemble the shader bound at the specified stage. |
export_draw_textures | read | Batch export all textures bound to a draw call |
export_mesh | read | Export mesh data from a draw call as OBJ format. |
find_draws | read | Search draw calls by rendering state filters. |
get_action | read | Get detailed information about a specific action/draw call. |
get_buffer_data | read | Read raw data from a buffer resource. |
get_capture_info | read | Get information about the currently open capture. |
get_cbuffer_contents | read | Get the actual values of a constant buffer at the specified shader stage. |
get_draw_call_state | read | Get complete draw call state in a single call. |
get_frame_overview | read | Get a frame-level statistics overview of the current capture. |
get_pass_timing | read | Get per-render-pass or per-draw-call GPU timing estimates. |
get_pipeline_state | read | Get the full graphics pipeline state at the current or specified event. |
get_post_vs_data | write | Get post-vertex-shader transformed vertex data for the current draw call. |
get_resource_usage | read | Get the usage history of a resource across all events. |
get_shader_bindings | read | Get resource bindings for a specific shader stage at the current event. |
get_shader_reflection | read | Get reflection information for the shader at the specified stage. |
get_texture_stats | read | Get min/max/average statistics for a texture at the current event. |
get_vertex_inputs | read | Get vertex input layout and buffer bindings at the current event. |
list_actions | read | List the draw call / action tree of the current capture. |
list_buffers | read | List all buffers in the capture. |
list_resources | read | List all named resources in the capture. |
list_textures | read | List all textures in the capture. |
open_capture | read | Open a RenderDoc capture (.rdc) file for analysis. |
pick_pixel | read | Get the RGBA value of a specific pixel in a texture. |
pixel_history | read | Get the full modification history of a pixel across all events in the frame. |
read_texture_pixels | read | Read actual pixel values from a rectangular region of a texture. |
sample_pixel_region | read | Batch-sample pixels from a render target and auto-detect anomalies. |
save_render_target | write | Save the current render target(s) at a specific event. |
save_texture | write | Save a texture resource to an image file. |
search_actions | read | Search for actions by name pattern and/or flags. |
set_event | write | Navigate the replay to a specific event ID. |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (1)
Gates applied: no_behavioural_pass, no_license.
819886475360full audit observations/trust-audit/mcp-server/linkingooo__renderdoc.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | 819886475360 | SAFE | B | 89 | first audit |
Questions
What is the RenderDoc MCP server?
MCP server for RenderDoc — AI-assisted GPU frame capture analysis
What tools does RenderDoc expose?
42 in total: 38 read-only, 4 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is RenderDoc safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does RenderDoc need?
No credential environment variables were found in its source, so it appears to need none.
How current is this page?
The grade is for one exact copy of the source (819886475360), read on 2026-10-07. The repository is watched and re-audited when it changes.