RenderDoc MCP
RenderDoc MCP
Permite que los clientes de IA que admiten el Model Context Protocol (MCP) analicen directamente archivos de captura de RenderDoc: explorar eventos Draw/Dispatch, inspeccionar el pipeline y los Shaders, y leer datos de vértices y buffers de constantes paginados.
El repositorio incluye un servicio MCP stdio ejecutable, límites de seguridad de sesión y ruta, un backend Mock para pruebas de desarrollo y un backend de puente Replay real que se conecta a qrenderdoc 1.44.
[!IMPORTANT] Actualmente se recomienda usar el backend
qrenderdocpara conectarse a capturas reales; los backendsrenderdoc/nativesiguen siendo implementaciones reservadas.
El puente real consta de dos procesos: un Gateway MCP moderno en Python 3.11 y una extensión de UI que se ejecuta en el Python 3.6 integrado de qrenderdoc. Ambos se comunican mediante un protocolo JSON de cola de archivos local con token aleatorio; esto evita depender del módulo _socket que falta en el Python reducido de RenderDoc.
MCP Client <-- stdio --> Python 3.11 Gateway
|
authenticated JSON spool
|
qrenderdoc extension
|
RenderDoc ReplayControllerCapacidades existentes
Servicio MCP stdio y respuestas de herramientas estructuradas.
Lista blanca de rutas
.rdc, restricciones de tipo de archivo, tamaño y número de sesiones.Inicia
.exedentro de una lista blanca independiente mediante inyección de RenderDoc; los argumentos se pasan como array, sin ejecutar shell.capture_idestable,event_idexplícito, sin depender del evento seleccionado actual oculto.Acceso serial al backend por cada captura, dejando margen para el modelo de hilos de RenderDoc ReplayController.
Filtrado de acciones y paginación con cursor.
Llamada compuesta
inspect_eventpara evitar muchos viajes MCP de grano fino para una sola inspección.Lee topología, viewport/scissor, Shader, enlaces de recursos, objetivos de renderizado y mensajes de validación del evento actual.
Estructura de error unificada y recurso de resumen de captura pasivo.
Primeras herramientas:
healthlaunch_programopen_captureclose_captureget_capture_summarylist_actionsget_eventinspect_eventget_pipeline_stateget_shaderget_vertex_datalist_constant_buffersget_constant_buffer
Datos de Pipeline, Shader y Buffer
get_pipeline_statesinsectiondevuelve una instantánea genérica entre APIs yapi_specific_sections; al llamar de nuevo con cualquiera de esos nombres comosection, se pueden leer los grupos de estado de nivel superior completos de D3D11, D3D12, Vulkan u OpenGL.get_shaderleereflection,disassembly,sourceorawsegún la etapa. Los tres últimos tipos de contenido grande se paginan concursor/next_cursor;source_file_indexpermite recorrer cada archivo de código fuente incrustado.get_vertex_dataexpande instancias y vértices de draw en registros estables, devolviendo valores decodificados de todos los atributos,raw_hexexacto, offset real del buffer y metadatos de formato;uv_attributesmarca explícitamenteUV/TEXCOORD. Siguiendonext_cursorse cubren todas las instancias y vértices.list_constant_buffersenumera cada etapa de shader, bloque de reflexión y elemento de array; luego se usaget_constant_bufferpara leer todas las variables decodificadas de ese grupo. Los bytes brutos subyacentes se paginan conraw_offset/next_offset, por lo que no se pierden datos incluso si se supera el límite de lectura única.
Related MCP server: RenderDoc MCP Server
Entorno
Python 3.11+
Línea estable del SDK de Python MCP
>=1.27,<2RenderDoc/qrenderdoc 1.44 (backend de puente real)
El SDK v2 aún está en fase de prelanzamiento, por lo que este proyecto se fija temporalmente en v1.x para evitar que el código del framework cambie con interfaces de prelanzamiento.
Inicio rápido (backend Mock)
En 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 es el canal de protocolo; no escribas registros normales en stdout.
Usando MCP Inspector:
.venv\Scripts\mcp dev src\renderdoc_mcp\server.pyEl backend Mock aún requiere una ruta .rdc real y en la lista blanca, pero no analiza el contenido del archivo.
Instalación del puente qrenderdoc
Suponiendo que RenderDoc está instalado en C:\Tools\RenderDoc, ejecuta en el directorio del proyecto:
powershell -ExecutionPolicy Bypass -File .\scripts\install_qrenderdoc_bridge.ps1 `
-RenderDocRoot C:\Tools\RenderDocEl script:
Instala la extensión en
%APPDATA%\qrenderdoc\extensions\renderdoc_mcp_bridge;Genera un token aleatorio y lo escribe en
bridge_config.jsondel lado de la extensión;Genera el
.renderdoc-mcp-bridge.jsonusado por el Gateway en la raíz del proyecto.
Luego abre C:\Tools\RenderDoc\qrenderdoc.exe, ve a Tools → Manage Extensions, selecciona RenderDoc MCP Bridge, haz clic en Load primero y, si tiene éxito, marca Always Load. Al usar el backend real, qrenderdoc debe permanecer en ejecución; el directorio de cola por defecto es .renderdoc-mcp-spool, ignorado por Git dentro del proyecto.
Durante el desarrollo, también puedes hacer que qrenderdoc ejecute automáticamente un script de carga después de abrir la UI:
C:\Tools\RenderDoc\qrenderdoc.exe --ui-python .\scripts\load_qrenderdoc_bridge.pyEste comando solo se encarga de la carga actual; para uso diario se recomienda marcar Always Load en el administrador de extensiones.
Ejemplo de configuración de cliente MCP
Reemplaza las rutas con las ubicaciones reales:
{
"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"
}
}
}En la página de configuración gráfica de Codex, los argumentos deben dividirse en dos líneas: -m y renderdoc_mcp. Deja en blanco la transferencia de variables de entorno; en Working directory pon la raíz del proyecto. Como el directorio de trabajo ya contiene .renderdoc-mcp-bridge.json, no es necesario pegar manualmente el token en la configuración de MCP.
Configuración
Variable de entorno | Valor predeterminado | Descripción |
|
|
|
| directorio actual | Directorios donde se pueden abrir capturas; varios directorios separados por el separador de ruta del sistema |
| vacío (inicio prohibido) |
|
|
| Directorio para futuros artefactos como PNG, Shader, JSON, etc. |
|
| Número máximo de sesiones de captura concurrentes; el backend qrenderdoc se restringe a 1 |
|
| Límite de tamaño para una sola captura |
|
| Límite máximo de página para acciones |
|
| Límite máximo de lectura por página para vértices, buffers de constantes y contenido de Shader; se puede continuar con cursor |
| valor del archivo de configuración | Directorio de instalación de RenderDoc, por ejemplo |
|
| Archivo de configuración del puente Gateway |
| valor del archivo de configuración | Directorio de cola de solicitudes/respuestas del puente local |
| valor del archivo de configuración | Anulación opcional por variable de entorno; normalmente no requiere configuración manual |
|
| Tiempo de espera para una sola solicitud de puente |
Iniciar un programa desde RenderDoc
Primero agrega la raíz del proyecto de tu programa a RENDERDOC_MCP_ALLOWED_EXECUTABLE_ROOTS, reinicia el servicio MCP y luego llama:
{
"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
}El resultado exitoso incluye el ident de control de destino de RenderDoc y la plantilla de archivo de captura. El programa ya está inyectado por RenderDoc; puedes presionar la tecla de captura predeterminada F12 en la ventana del programa. Esta herramienta no acepta comandos de shell ni modificaciones de variables de entorno; abre hook_into_children solo si necesitas que los subprocesos también se inyecten, y api_validation solo si necesitas la capa de validación de API.
Pruebas
Después de instalar las dependencias de desarrollo:
.venv\Scripts\python -m pytest
.venv\Scripts\ruff check .También puedes ejecutar las pruebas del servicio principal sin instalar dependencias de prueba de terceros:
$env:PYTHONPATH = "src"
python -m unittest discover -s tests -vLímites de seguridad
Solo se pueden abrir archivos
.rdcdentro deRENDERDOC_MCP_ALLOWED_ROOTS.launch_programestá deshabilitado por defecto; solo permite iniciar.exedentro deRENDERDOC_MCP_ALLOWED_EXECUTABLE_ROOTS.Los argumentos de inicio se pasan como array, sin pasar por shell; el Gateway no permite modificar las variables de entorno del programa objetivo a través de herramientas.
Los mensajes locales entre el Gateway y la extensión de qrenderdoc se autentican con un token aleatorio generado en la instalación.
Los datos de Action, Shader, vértices y Buffer están sujetos a paginación o límites de lectura única.
Estado del proyecto y próximos pasos
El enlace principal del puente, el estado del pipeline, el Shader, la entrada de vértices y la lectura de buffers de constantes ya están implementados. A continuación, es adecuado continuar agregando exportación de texturas, readback de buffers genéricos, Pixel History y gestión de artefactos por tareas.
Para más detalles, consulta Descripción de la arquitectura.
Licencia
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