renderdoc-mcp
renderdoc-mcp
$\Large\color{#ff69b4}{\textsf{Dies ist ein persönliches }}$ $\Large\color{#ff69b4}{\mathtt{✨ vibe\text{-}coding ✨}}$ $\Large\color{#ff69b4}{\textsf{Projekt —}}$ $\Large\color{#ff69b4}{\textsf{aus Spaß gebaut, nicht für den Produktiveinsatz.}}$
$\small\color{gray}{\textsf{Ich habe keine Ahnung, warum dieses Repo so viele Sterne hat...}}$
MCP-Server für RenderDoc – lassen Sie KI-Assistenten GPU-Frame-Aufnahmen (.rdc-Dateien) für Grafik-Debugging und Leistungsanalyse analysieren.
Basiert auf dem Model Context Protocol, funktioniert mit Claude Desktop, Claude Code und jedem MCP-kompatiblen Client.
Funktionen
42 Tools, die den gesamten RenderDoc-Analyse-Workflow abdecken
10 High-Level-Tools für die Ein-Klick-Analyse (Draw-Call-Zustand, Frame-Übersicht, Diff, Stapelexport, Pixelbereichsabtastung usw.)
3 integrierte Prompts für geführtes Debugging
Menschenlesbare Ausgabe – Mischmodi, Tiefenfunktionen, Topologie werden als Namen statt Zahlen angezeigt
GPU-Eigenheiten-Erkennung – erkennt automatisch Adreno/Mali/PowerVR/Apple-spezifische Fallstricke anhand des Treibernamens
Headless – keine GUI erforderlich, läuft vollständig über RenderDocs Python-Replay-API
Reines Python – einzelnes
pip install, kein Build-SchrittUnterstützt D3D11-, D3D12-, OpenGL-, Vulkan- und OpenGL-ES-Aufnahmen
Schnellstart
1. Voraussetzungen
Python 3.10+
RenderDoc installiert (Download)
Sie benötigen das Python-Modul
renderdoc.pyd(Windows) oderrenderdoc.so(Linux)Es ist in jeder RenderDoc-Installation enthalten
2. Installieren
git clone https://github.com/Linkingooo/renderdoc-mcp.git
cd renderdoc-mcp
pip install -e .3. Finden Sie Ihren renderdoc.pyd-Pfad
Das Python-Modul befindet sich in Ihrem RenderDoc-Installationsverzeichnis:
Plattform | Typischer Pfad |
Windows |
|
Linux |
|
Sie benötigen das Verzeichnis, das diese Datei enthält.
4. MCP-Client konfigurieren
Bearbeiten Sie claude_desktop_config.json (Einstellungen → Entwickler → Konfiguration bearbeiten):
{
"mcpServers": {
"renderdoc": {
"command": "python",
"args": ["-m", "renderdoc_mcp"],
"env": {
"RENDERDOC_MODULE_PATH": "C:\\Program Files\\RenderDoc"
}
}
}
}Fügen Sie zu .claude/settings.json hinzu:
{
"mcpServers": {
"renderdoc": {
"command": "python",
"args": ["-m", "renderdoc_mcp"],
"env": {
"RENDERDOC_MODULE_PATH": "C:\\Program Files\\RenderDoc"
}
}
}
}# 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_mcpVerwendungsbeispiele
Nach der Konfiguration sprechen Sie einfach mit Ihrem KI-Assistenten:
„Öffne
frame.rdcund zeig mir, was im Frame passiert"
„Finde den Draw-Call, der das Charaktermodell rendert, und prüfe seinen Pipeline-Zustand"
„Warum wird meine Schattenkarte schwarz gerendert? Prüfe den Tiefendurchlauf"
„Analysiere die Leistung – gibt es redundante Draw-Calls?"
Typischer Tool-Ablauf
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 upFür Leistungs- und Diagnoseanalyse:
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
diagnose_mobile_risks() # Comprehensive mobile GPU risk checkFür die Analyse auf niedrigerer Ebene bleiben alle granularen Tools verfügbar:
set_event(142) # Navigate to a draw call
├── get_pipeline_state() # Inspect rasterizer/blend/depth
├── get_shader_bindings("pixel") # Check what textures/buffers are bound
├── get_cbuffer_contents("pixel", 0, filter="ibl") # Read shader constants (filterable)
├── disassemble_shader("pixel", search="SampleSH") # Shader code with context search
└── save_texture(id, "rt.png") # Export a specific textureTools
Sitzungsverwaltung (4)
Tool | Beschreibung |
| Öffnet eine |
| Schließt die aktuelle Aufnahme und gibt Ressourcen frei |
| Aufnahmemetadaten: API, Aktionsanzahl, Auflösung, bekannte_GPU-Eigenheiten (Adreno/Mali/PowerVR/Apple) |
| Statistiken auf Frame-Ebene: Aktionsanzahl nach Typ, Textur-/Pufferspeicher, Renderziele, Auflösung |
Ereignisnavigation (5)
Tool | Beschreibung |
| Listet den Draw-Call-/Aktionsbaum auf – unterstützt |
| Vollständige Details für eine einzelne Aktion |
| Zu einem Ereignis navigieren (erforderlich vor Pipeline-Abfragen) |
| Nach Namensmuster und/oder Aktionsflags suchen |
| Draw-Calls nach Rendering-Zustand durchsuchen: Blend, Mindestanzahl an Scheitelpunkten, Textur-/Shader-/RT-Bindung |
Pipeline-Inspektion (4)
Tool | Beschreibung |
| Vollständiger Zustand: Topologie, Viewports, Rasterizer, Blend, Tiefe, Schablone (menschenlesbare Aufzählungen) |
| Konstante Puffer, SRVs, UAVs, Sampler für eine Shader-Stufe |
| Vertex-Attribute, Vertex-/Indexpuffer-Bindungen |
| Draw-Analyse mit einem Aufruf: Aktionsinfo, Blend-Formel, Tiefe, Schablone, Rasterizer, Texturen mit Größen, RTs, Shader |
Ressourcenanalyse (4)
Tool | Beschreibung |
| Alle Texturen (filterbar nach Format, Mindestbreite) |
| Alle Puffer (filterbar nach Mindestgröße) |
| Alle benannten Ressourcen (filterbar nach Typ, Namensmuster) |
| Welche Ereignisse eine Ressource lesen/schreiben |
Datenextraktion (8)
Tool | Beschreibung |
| Export nach PNG, JPG, BMP, TGA, HDR, EXR oder DDS |
| Pufferbytes lesen (Hex-Dump oder Float32-Array) |
| RGBA-Wert an einer Koordinate |
| Min/Max/Mittelwert pro Kanal mit Anomalieerkennung (NaN/Inf/negativ); unterstützt |
| Einen rechteckigen Pixelbereich (bis zu 64×64) mit Pixel-für-Pixel-Anomalie-Flags lesen |
| Stapelexport aller an einen Draw-Call gebundenen Texturen (automatische Namen, überspringt Platzhalter) |
| RT-Schnappschuss bei einem Ereignis speichern (Farbe + optionale Tiefe) |
| Netz als OBJ exportieren mit Positionen, Normalen, UVs aus Post-VS-Daten |
Shader-Analyse (3)
Tool | Beschreibung |
| Shader-Disassemblierung mit automatischer Fallback-Kette; unterstützt |
| Eingabe-/Ausgabesignaturen, Ressourcenbindungslayout |
| Tatsächliche Konstantenpuffer-Variablenwerte; unterstützt |
Erweitert (6)
Tool | Beschreibung |
| Vollständiger Pixel-für-Pixel-Änderungsverlauf über alle Ereignisse |
| Post-Transformations-Vertexdaten (VS out / GS out) |
| Zwei Draw-Calls vergleichen – zeigt Zustandsunterschiede mit menschenlesbaren Auswirkungen |
| Render-Pass-Grenzen automatisch erkennen anhand von Clear-/RT-Wechseln, jeden Durchlauf zusammenfassen |
| Gleichmäßige Rasterabtastung einer RT-Region – erkennt NaN/Inf/negativ/überbelichtete Hotspots |
| Pixelweises Shader-Debugging – gibt Variablenverfolgung oder Pixelwert + Shader-Info als Fallback zurück |
Leistungsanalyse (4)
Tool | Beschreibung |
| Teuerste Render-Passes – verwendet GPU-Zähler, falls verfügbar, sonst Dreiecksanzahl-Heuristik |
| Overdraw-Schätzung pro Renderzielgruppe |
| Schreib-/Lese-Bandbreitenschätzung pro Renderziel |
| Findet redundante Zustandswechselmuster und Batching-Möglichkeiten |
Diagnose (4)
Tool | Beschreibung |
| Scannt alle Float-RTs auf negativ/NaN/Inf – findet das erste Ereignis, das sie einführt, erkennt TAA-Akkumulation |
| Prüft R11G11B10-Vorzeichenbitverlust, flache Tiefenpuffer, SRGB/Linear-Konflikte |
| Vergleicht Reflexionsdurchläufe mit Hauptszenen-Draws – findet Shader-/Blend-/Formatursachen |
| Umfassende Prüfung über Präzisions-/Leistungs-/Kompatibilitäts-/GPU-spezifische Risikokategorien |
Prompts
Integrierte Prompt-Vorlagen, die KI durch gängige Arbeitsabläufe führen:
Prompt | Beschreibung |
| Einzelnen Draw-Call eingehend untersuchen: Pipeline → Shader → CBuffer → Ausgaben |
| Systematische Diagnose anhand einer Problembeschreibung |
| Frame-weite Leistungsanalyse: Pass-Timing, Overdraw, Bandbreite, Zustandsänderungen |
So funktioniert es
AI Assistant ←—MCP—→ renderdoc-mcp server ←—Python API—→ renderdoc.pyd ←→ GPU replayDer Server verwendet RenderDocs Headless-Replay-API (renderdoc.pyd), um:
.rdc-Aufnahmedateien ohne GUI zu öffnenFrames wiederzugeben und den Pipeline-Zustand bei jedem Ereignis abzufragen
Texturen, Puffer, Shader-Daten und Pixelverlauf zu extrahieren
Strukturiertes JSON zurückzugeben, über das die KI nachdenken kann
Entwicklung
# Install in dev mode
pip install -e .
# Run tests (no RenderDoc needed — uses mocks)
python -m pytest tests/ -v
# Project structure
src/renderdoc_mcp/
├── server.py # FastMCP server, 3 prompt definitions
├── session.py # Capture lifecycle, resource/texture caches (singleton)
├── util.py # Serialization, enum maps, blend formula, module loader
└── tools/
├── session_tools.py # open/close/info (GPU quirks) + get_frame_overview
├── event_tools.py # list/get/set/search actions + find_draws
├── pipeline_tools.py # pipeline state, shader bindings, vertex inputs + get_draw_call_state
├── resource_tools.py # texture/buffer/resource enumeration
├── data_tools.py # save/read/pick/stats + read_texture_pixels + export_draw_textures, save_render_target, export_mesh
├── shader_tools.py # disassembly (fallback chain, search), reflection, cbuffer contents (filter)
├── advanced_tools.py # pixel history, post-VS data + diff_draw_calls (implications), analyze_render_passes, sample_pixel_region, debug_shader_at_pixel
├── performance_tools.py # get_pass_timing, analyze_overdraw, analyze_bandwidth, analyze_state_changes
└── diagnostic_tools.py # diagnose_negative_values, diagnose_precision_issues, diagnose_reflection_mismatch, diagnose_mobile_risksLizenz
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
MCP server for Wan AI video generation
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fjxyyzg3/renderdoc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server