RenderDoc MCP
RenderDoc MCP
Позволяет AI-клиентам с поддержкой Model Context Protocol (MCP) напрямую анализировать файлы захвата RenderDoc: просматривать события Draw/Dispatch, проверять состояние конвейера и шейдеры, а также читать постранично данные вершин и константных буферов.
Репозиторий содержит работающий MCP stdio-сервис, границы безопасности для сессий и путей, Mock-бэкенд для разработки и тестирования, а также реальный мостовой Replay-бэкенд, подключающийся к qrenderdoc 1.44.
[!IMPORTANT] Сейчас для подключения к реальным захватам рекомендуется использовать бэкенд
qrenderdoc; бэкендыrenderdoc/nativeостаются зарезервированными реализациями.
Реальный мост состоит из двух процессов: современного Python 3.11 MCP Gateway и UI-расширения, работающего во встроенном Python 3.6 qrenderdoc. Они обмениваются данными через локальную файловую очередь по JSON-протоколу со случайным токеном; это исключает зависимость от модуля _socket, отсутствующего в урезанном Python RenderDoc.
MCP Client <-- stdio --> Python 3.11 Gateway
|
authenticated JSON spool
|
qrenderdoc extension
|
RenderDoc ReplayControllerДоступные возможности
MCP stdio-сервис со структурированными ответами инструментов.
Белый список путей для
.rdc, ограничения по типу файла, размеру и числу сессий.Запуск отдельных
.exeиз белого списка через инъекцию RenderDoc; аргументы передаются массивом, без shell.Стабильный
capture_id, явныйevent_id, без зависимости от скрытого текущего выбранного события.Последовательный доступ к бэкенду для каждого capture, соблюдающий границы потоковой модели RenderDoc ReplayController.
Фильтрация Action и постраничная навигация через курсор.
Композитный вызов
inspect_event, чтобы избежать множества мелких MCP-запросов при одной проверке.Чтение топологии, viewport/scissor, шейдеров, привязки ресурсов, целей рендеринга и сообщений валидации текущего события.
Единая структура ошибок и пассивный capture summary Resource.
Первые инструменты:
healthlaunch_programopen_captureclose_captureget_capture_summarylist_actionsget_eventinspect_eventget_pipeline_stateget_shaderget_vertex_datalist_constant_buffersget_constant_buffer
Данные Pipeline, Shader и Buffer
get_pipeline_stateбез передачиsectionвозвращает общий снимок для всех API иapi_specific_sections; повторный вызов с именем любой из этих секций в качествеsectionчитает полные группы состояния верхнего уровня для D3D11, D3D12, Vulkan или OpenGL.get_shaderчитает по стадиямreflection,disassembly,sourceилиraw. Для последних трёх типов объёмного содержимого используется постраничная выдача черезcursor/next_cursor;source_file_indexпозволяет перебирать каждый встроенный файл исходного кода.get_vertex_dataраскладывает инстансы и вершины draw в стабильные записи и возвращает декодированные значения всех атрибутов, точныйraw_hex, фактическое смещение в буфере и метаданные формата;uv_attributesявно помечаетUV/TEXCOORD. Постоянно следуя заnext_cursor, можно охватить все инстансы и вершины.list_constant_buffersперечисляет каждую шейдерную стадию, блок отражения и элемент массива; затемget_constant_bufferчитает все декодированные переменные этой группы. Лежащие в основе сырые байты разбиваются на страницы черезraw_offset/next_offset, поэтому данные не теряются даже при превышении лимита одного чтения.
Related MCP server: RenderDoc MCP Server
Окружение
Python 3.11+
Стабильная линия MCP Python SDK
>=1.27,<2RenderDoc/qrenderdoc 1.44 (реальный мостовой бэкенд)
SDK v2 всё ещё находится на стадии предварительного релиза, поэтому проект временно зафиксирован на v1.x, чтобы код фреймворка не менялся вместе с предрелизными интерфейсами.
Быстрый старт (Mock-бэкенд)
В 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 — это протокольный канал, обычные логи не должны записываться в stdout.
С MCP Inspector:
.venv\Scripts\mcp dev src\renderdoc_mcp\server.pyMock-бэкенд по-прежнему требует передать реально существующий путь .rdc, находящийся в белом списке, но не разбирает содержимое файла.
Установка моста qrenderdoc
Предположим, RenderDoc установлен в C:\Tools\RenderDoc. В каталоге проекта выполните:
powershell -ExecutionPolicy Bypass -File .\scripts\install_qrenderdoc_bridge.ps1 `
-RenderDocRoot C:\Tools\RenderDocСкрипт:
установит расширение в
%APPDATA%\qrenderdoc\extensions\renderdoc_mcp_bridge;сгенерирует случайный токен и запишет его в
bridge_config.jsonна стороне расширения;создаст в корне проекта
.renderdoc-mcp-bridge.jsonдля использования Gateway.
Затем откройте C:\Tools\RenderDoc\qrenderdoc.exe, перейдите в Tools → Manage Extensions, выберите RenderDoc MCP Bridge, нажмите Load и после успешной загрузки отметьте Always Load. При использовании реального бэкенда qrenderdoc должен оставаться запущенным; каталог очереди по умолчанию — .renderdoc-mcp-spool внутри проекта, игнорируемый Git.
Для разработки можно также попросить qrenderdoc автоматически выполнить скрипт загрузки один раз после открытия UI:
C:\Tools\RenderDoc\qrenderdoc.exe --ui-python .\scripts\load_qrenderdoc_bridge.pyЭта команда отвечает только за однократную загрузку; для повседневной работы по-прежнему рекомендуется отмечать Always Load в менеджере расширений.
Пример конфигурации MCP-клиента
Замените пути на фактические расположения:
{
"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"
}
}
}На странице графической конфигурации Codex аргументы нужно разбить на две строки: -m и renderdoc_mcp. Передача переменных окружения остаётся пустой; в поле Working directory укажите корень проекта. Так как в рабочем каталоге уже есть .renderdoc-mcp-bridge.json, вручную вставлять токен в конфигурацию MCP не нужно.
Параметры конфигурации
Переменная окружения | Значение по умолчанию | Описание |
|
|
|
| текущий каталог | Каталоги, в которых можно открывать capture; несколько каталогов разделяются системным разделителем пути |
| пусто (запуск запрещён) | Корневые пути |
|
| Каталог для артефактов (PNG, Shader, JSON и т.п.), создаваемых в дальнейшем |
|
| Максимальное число одновременных сессий capture; для бэкенда qrenderdoc жёстко ограничено 1 |
|
| Верхний предел размера одного capture |
|
| Жёсткий верхний предел размера одной страницы Action |
|
| Жёсткий предел чтения содержимого вершин, константных буферов и шейдеров на одной странице; можно продолжить через курсор |
| значение из конфигурационного файла | Каталог установки RenderDoc, например |
|
| Файл конфигурации моста Gateway |
| значение из конфигурационного файла | Каталог локальной очереди запросов/ответов моста |
| значение из конфигурационного файла | Необязательное переопределение переменной окружения; обычно настраивать вручную не требуется |
|
| Таймаут одного запроса к мосту |
Запуск программы из RenderDoc
Сначала добавьте корень проекта вашей программы в RENDERDOC_MCP_ALLOWED_EXECUTABLE_ROOTS, перезапустите MCP-сервис, затем вызовите:
{
"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
}В случае успеха результат содержит ident target-control RenderDoc и шаблон файла capture. Программа уже внедрена через RenderDoc, и в её окне можно нажать клавишу F12 (по умолчанию) для захвата кадра. Инструмент не принимает shell-команды и не допускает изменения переменных окружения; включайте hook_into_children, только если требуется внедрение также в дочерние процессы, а api_validation — только если нужен слой проверки API.
Тестирование
После установки зависимостей для разработки:
.venv\Scripts\python -m pytest
.venv\Scripts\ruff check .Основные тесты сервиса можно запустить и без установки сторонних тестовых зависимостей:
$env:PYTHONPATH = "src"
python -m unittest discover -s tests -vГраницы безопасности
Можно открывать только файлы
.rdcизRENDERDOC_MCP_ALLOWED_ROOTS.launch_programпо умолчанию отключён; разрешён запуск только.exeизRENDERDOC_MCP_ALLOWED_EXECUTABLE_ROOTS.Аргументы запуска передаются массивом, минуя shell; Gateway не позволяет изменять переменные окружения целевой программы через инструменты.
Локальные сообщения между Gateway и расширением qrenderdoc аутентифицируются случайным токеном, сгенерированным при установке.
Для данных Action, Shader, вершин и Buffer действуют ограничения постраничной выдачи или лимита одного чтения.
Статус проекта и дальнейшие шаги
Основной путь моста, Pipeline state, Shader, вершинные входы и чтение константных буферов уже реализованы. В дальнейшем по задачам целесообразно добавить экспорт Texture, универсальный readback Buffer, Pixel History и управление артефактами.
Подробные границы см. в описании архитектуры.
License
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