RenderDoc MCP
RenderDoc MCP
Ermöglicht KI-Clients, die das Model Context Protocol (MCP) unterstützen, die direkte Analyse von RenderDoc-Capture-Dateien: Draw-/Dispatch-Ereignisse durchsuchen, Pipeline und Shader prüfen sowie Vertex- und Konstantenpufferdaten seitenweise lesen.
Das Repository enthält einen lauffähigen MCP-stdio-Dienst, Sitzungs- und Pfadsicherheitsgrenzen, einen Mock-Backend für Entwicklungstests sowie ein echtes Replay-Brücken-Backend, das mit qrenderdoc 1.44 verbunden ist.
[!IMPORTANT] Aktuell wird empfohlen, das
qrenderdoc-Backend für echte Captures zu verwenden; die Backendsrenderdoc/nativesind weiterhin vorbehaltene Implementierungen.
Die echte Brücke besteht aus zwei Prozessen: einem modernen Python-3.11-MCP-Gateway und einer UI-Erweiterung, die im eingebetteten Python 3.6 von qrenderdoc läuft. Beide kommunizieren über ein natives Datei-Warteschlangen-JSON-Protokoll mit zufälligem Token; so wird das in der reduzierten Python-Umgebung von RenderDoc fehlende _socket-Modul umgangen.
MCP Client <-- stdio --> Python 3.11 Gateway
|
authenticated JSON spool
|
qrenderdoc extension
|
RenderDoc ReplayControllerVorhandene Fähigkeiten
MCP-stdio-Dienst mit strukturierten Tool-Antworten.
Whitelist für
.rdc-Pfade, Dateityp-, Größen- und Sitzungsanzahl-Beschränkungen.Starten von eigenständigen, in der Whitelist befindlichen
.exe-Dateien über RenderDoc-Injektion; Argumente werden als Array übergeben, keine Shell-Ausführung.Stabile
capture_id, expliziteevent_id, keine Abhängigkeit von versteckten aktuell ausgewählten Ereignissen.Serieller Backend-Zugriff pro Capture, um Grenzen für das Thread-Modell des RenderDoc-ReplayControllers zu schaffen.
Aktionsfilterung und Cursor-Paginierung.
inspect_event-Zusammengesetzter Aufruf, um viele feingranulare MCP-Roundtrips für eine einzelne Inspektion zu vermeiden.Lesen von Topologie, Viewport/Scissor, Shader, Ressourcenbindungen, Renderziele und Validierungsmeldungen des aktuellen Ereignisses.
Einheitliche Fehlerstruktur und passives Capture-Summary-Resource.
Erste Tools:
healthlaunch_programopen_captureclose_captureget_capture_summarylist_actionsget_eventinspect_eventget_pipeline_stateget_shaderget_vertex_datalist_constant_buffersget_constant_buffer
Pipeline-, Shader- und Pufferdaten
get_pipeline_stategibt ohnesectioneine API-übergreifende allgemeine Momentaufnahme undapi_specific_sectionszurück; wenn man einen dieser Namen alssectionerneut aufruft, kann man die vollständigen Top-Level-Zustandsgruppen von D3D11, D3D12, Vulkan oder OpenGL lesen.get_shaderliest je nach Stagereflection,disassembly,sourceoderraw. Die letzten drei großen Inhalte werden mitcursor/next_cursorpaginiert;source_file_indexkann jede eingebettete Quelldatei durchlaufen.get_vertex_dataexpandiert Instanzen und Draw-Vertex in stabile Datensätze und gibt die dekodierten Werte aller Attribute, exaktesraw_hex, tatsächliche Buffer-Offsets und Format-Metadaten zurück;uv_attributesmarkiert explizitUV/TEXCOORD. Durch kontinuierliches Folgen vonnext_cursorkönnen alle Instanzen und Vertex abgedeckt werden.list_constant_bufferslistet jede Shader-Stage, jeden Reflection-Block und jedes Array-Element auf; anschließend liest man mitget_constant_bufferalle dekodierten Variablen dieser Gruppe. Die zugrunde liegenden Rohbytes werden mitraw_offset/next_offsetpaginiert, sodass auch bei Überschreitung des Einzel-Leselimits keine Daten verloren gehen.
Related MCP server: RenderDoc MCP Server
Umgebung
Python 3.11+
MCP Python SDK stabile Linie
>=1.27,<2RenderDoc/qrenderdoc 1.44 (echtes Brücken-Backend)
SDK v2 befindet sich noch in der Vorabversion, daher ist dieses Projekt vorerst auf v1.x festgelegt, um Framework-Code vor Änderungen an vorläufigen Schnittstellen zu schützen.
Schnellstart (Mock-Backend)
In PowerShell:
python -m venv .venv
.venv\Scripts\python -m pip install -e ".[dev]"
$env:RENDERDOC_MCP_BACKEND = "mock"
$env:RENDERDOC_MCP_ALLOWED_ROOTS = (Get-Location).Path
.venv\Scripts\python -m renderdoc_mcpstdio ist der Protokollkanal, normale Logs sollten nicht nach stdout geschrieben werden.
Mit MCP Inspector:
.venv\Scripts\mcp dev src\renderdoc_mcp\server.pyDas Mock-Backend erfordert weiterhin einen real existierenden, in der Whitelist befindlichen .rdc-Pfad, analysiert aber den Dateiinhalt nicht.
Installation der qrenderdoc-Brücke
Angenommen, RenderDoc ist unter C:\Tools\RenderDoc installiert, führen Sie im Projektverzeichnis aus:
powershell -ExecutionPolicy Bypass -File .\scripts\install_qrenderdoc_bridge.ps1 `
-RenderDocRoot C:\Tools\RenderDocDas Skript wird:
Die Erweiterung nach
%APPDATA%\qrenderdoc\extensions\renderdoc_mcp_bridgeinstallieren;Ein zufälliges Token generieren und in
bridge_config.jsonauf der Erweiterungsseite schreiben;Im Projektstammverzeichnis eine
.renderdoc-mcp-bridge.jsonfür das Gateway erzeugen.
Öffnen Sie anschließend C:\Tools\RenderDoc\qrenderdoc.exe, gehen Sie zu Tools → Manage Extensions, wählen Sie RenderDoc MCP Bridge, klicken Sie zuerst auf Load, und aktivieren Sie nach Erfolg Always Load. Bei Verwendung des echten Backends muss qrenderdoc geöffnet bleiben; das Warteschlangenverzeichnis ist standardmäßig das im Projekt liegende, von Git ignorierte .renderdoc-mcp-spool.
Für die Entwicklung kann qrenderdoc auch nach dem Öffnen der UI ein Ladeskript automatisch ausführen:
C:\Tools\RenderDoc\qrenderdoc.exe --ui-python .\scripts\load_qrenderdoc_bridge.pyDieser Befehl lädt nur für diese Sitzung; für den täglichen Gebrauch wird empfohlen, Always Load im Erweiterungsmanager zu aktivieren.
Beispielkonfiguration für MCP-Clients
Ersetzen Sie die Pfade durch die tatsächlichen Speicherorte:
{
"mcpServers": {
"renderdoc": {
"command": "C:\\path\\to\\RenderDoc_MCP\\.venv\\Scripts\\python.exe",
"args": ["-m", "renderdoc_mcp"],
"env": {
"RENDERDOC_MCP_BACKEND": "qrenderdoc",
"RENDERDOC_MCP_ALLOWED_ROOTS": "C:\\captures",
"RENDERDOC_MCP_ALLOWED_EXECUTABLE_ROOTS": "C:\\projects\\my-renderer",
"RENDERDOC_MCP_ARTIFACT_ROOT": "C:\\path\\to\\RenderDoc_MCP\\artifacts",
"RENDERDOC_MCP_RENDERDOC_ROOT": "C:\\Tools\\RenderDoc"
},
"cwd": "C:\\path\\to\\RenderDoc_MCP"
}
}
}Auf der grafischen Konfigurationsseite von Codex müssen die Argumente in zwei Zeilen aufgeteilt werden: -m und renderdoc_mcp. Die Umgebungsvariablen-Übergabe bleibt leer; Working directory füllen Sie mit dem Projektstammverzeichnis. Da sich bereits .renderdoc-mcp-bridge.json im Arbeitsverzeichnis befindet, muss das Token nicht manuell in die MCP-Konfiguration eingefügt werden.
Konfigurationsoptionen
Umgebungsvariable | Standardwert | Beschreibung |
|
|
|
| aktuelles Verzeichnis | Verzeichnisse, in denen Captures geöffnet werden können; mehrere Verzeichnisse durch System-Pfadtrenner getrennt |
| leer (Start verboten) | Wurzelpfade für |
|
| Verzeichnis für später erzeugte Artefakte wie PNG, Shader, JSON usw. |
|
| Maximale Anzahl gleichzeitiger Capture-Sitzungen; beim qrenderdoc-Backend fest auf 1 begrenzt |
|
| Obergrenze für die Größe eines einzelnen Captures |
|
| Harte Obergrenze für eine Aktionsseite |
|
| Harte Obergrenze für das Lesen von Vertex-, Konstantenpuffer- und Shader-Inhalten pro Seite; mit Cursor fortgesetzt werden |
| Konfigurationsdatei-Wert | RenderDoc-Installationsverzeichnis, z. B. |
|
| Konfigurationsdatei für die Gateway-Brücke |
| Konfigurationsdatei-Wert | Verzeichnis für lokale Brücken-Anfrage-/Antwort-Warteschlangen |
| Konfigurationsdatei-Wert | Optionale Umgebungsvariablen-Überschreibung; normalerweise nicht manuell konfigurieren |
|
| Zeitüberschreitung für eine einzelne Brückenanfrage |
Programm von RenderDoc aus starten
Fügen Sie zuerst das Projektstammverzeichnis Ihres eigenen Programms zu RENDERDOC_MCP_ALLOWED_EXECUTABLE_ROOTS hinzu, starten Sie den MCP-Dienst neu und rufen Sie dann auf:
{
"executable": "C:\\projects\\my-renderer\\bin\\renderer.exe",
"arguments": ["--scene", "C:\\projects\\my-renderer\\scenes\\demo.json"],
"working_directory": "C:\\projects\\my-renderer",
"hook_into_children": false,
"api_validation": false
}Das erfolgreiche Ergebnis enthält die RenderDoc-Target-Control-ident und die Capture-Dateivorlage. Das Programm wurde von RenderDoc injiziert und kann im Programmfenster mit der Standard-Capture-Taste F12 aufgenommen werden. Dieses Tool akzeptiert keine Shell-Befehle oder Umgebungsvariablenänderungen; öffnen Sie hook_into_children, wenn auch Unterprozesse injiziert werden sollen, und api_validation, wenn die API-Validierungsschicht benötigt wird.
Tests
Nach Installation der Entwicklungsabhängigkeiten:
.venv\Scripts\python -m pytest
.venv\Scripts\ruff check .Auch ohne Installation von Drittanbieter-Testabhängigkeiten können die Kern-Servicetests ausgeführt werden:
$env:PYTHONPATH = "src"
python -m unittest discover -s tests -vSicherheitsgrenzen
Es können nur
.rdc-Dateien unterRENDERDOC_MCP_ALLOWED_ROOTSgeöffnet werden.launch_programist standardmäßig deaktiviert und erlaubt nur das Starten von.exe-Dateien unterRENDERDOC_MCP_ALLOWED_EXECUTABLE_ROOTS.Startargumente werden als Array übergeben, nicht über eine Shell; das Gateway erlaubt keine Änderung der Umgebungsvariablen des Zielprogramms über Tools.
Die native Nachricht zwischen Gateway und qrenderdoc-Erweiterung wird mit einem bei der Installation generierten Zufallstoken authentifiziert.
Aktions-, Shader-, Vertex- und Pufferdaten sind durch Paginierung oder Einzel-Leselimit begrenzt.
Projektstatus und nächste Schritte
Die Hauptkette der Brücke, Pipeline-State, Shader, Vertex-Eingaben und Konstantenpuffer-Lesen sind implementiert. Als Nächstes können je nach Aufgabe Texture-Export, allgemeines Buffer-Readback, Pixel History und Artefaktverwaltung hinzugefügt werden.
Detaillierte Grenzen finden Sie in der Architekturbeschreibung.
Lizenz
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 Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to analyze RenderDoc GPU frame captures for graphics debugging and performance analysis through a headless Python API. It provides a comprehensive suite of tools for inspecting pipeline states, shader bindings, and exporting frame resources like textures and meshes.150
- AlicenseAqualityNot gradedmaintenanceEnables AI assistants to analyze and inspect RenderDoc capture files, providing tools to examine draw calls, textures, buffers, and shader information. It allows developers to perform graphics debugging and resource analysis through natural language interactions.12
- AlicenseNot gradedqualityDmaintenanceExposes RenderDoc capture analysis to AI clients via MCP, enabling offline analysis of .rdc files (action tree, pipeline state, textures, shaders) and GUI state interaction on Windows.2MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to access RenderDoc capture data and assist in graphics debugging via a file-based IPC bridge.15482MIT
Related MCP Connectors
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Agent Replay Debugger MCP — record every agent step + deterministic replay. Step-debugger for
Live browser debugging for AI assistants — DOM, console, network via MCP.
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/LifeSugar/RenderDoc_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server