我用 C++ 写了个 MCP ,让 AI 看懂了每一帧 GPU 在画什么

你有没有想过,调试 GPU 渲染问题的时候,不用自己一个个翻 Draw Call,而是直接对 AI 说一句:"帮我看看这一帧哪里不对"?

我做到了。

看效果

上面是真实的使用场景 ------ 我在 Claude Code 里打开了一个 D3D11 的 CubeWorld 抓帧,AI 自动分析了整帧的渲染结构、Pipeline 状态、Draw Call 序列,最后给出了完整的技术报告。

整个过程我只打了一句话。

这个项目是什么

renderdoc-mcp ------ 一个把 RenderDoc(图形程序员人手一个的 GPU 调试器)的全部能力通过 MCP 协议暴露给 AI 的工具。

59 个 MCP Tools。C++ 从零手写。覆盖了你能想到的所有 GPU 调试场景:

  • 打开 .rdc 抓帧,浏览每一个 Draw Call

  • 检查完整的 Pipeline 状态(Shader、RT、混合、光栅化...)

  • 反汇编任意 Shader 阶段的 HLSL/GLSL/SPIR-V

  • 像素级调试:Pixel History、像素拾取、Shader 单步

  • 实时注入应用程序抓帧,边跑边调

  • 两帧 Diff 对比(Draw Call / Pipeline / 像素 / Pass 结构 / 资源 / 统计,6 维度)

  • CI 断言框架:assert_pixel、assert_state、assert_image...

  • 渲染结果一键导出 PNG

一句话总结:RenderDoc 能做的,AI 现在也能做了。

为什么我觉得这件事值得做

图形编程的调试体验,说实话,一直很痛苦。

一帧画面背后可能有上千个 Draw Call、几十个 Render Pass、复杂的资源绑定关系。RenderDoc 的 GUI 给你展示了一切,但问题是 ------ 信息量太大了。你得自己筛选、自己定位、自己关联。一个渲染 Bug 查下来,半天就没了。

而 AI 擅长的恰恰是处理大量结构化信息、快速筛选和关联。

MCP 协议给了我一个标准化的桥接方案,让我可以把 RenderDoc 的专业能力"翻译"成 AI 能理解和操作的接口。所以我把整个 Replay API 包了一层,写成了 59 个 Tool,让 Claude、Codex 这些 AI 助手可以像图形工程师一样操作 RenderDoc。

它不只是"能用",是真的好用

很多 MCP 项目只是把 API 简单包一下就完事了。renderdoc-mcp 不是。

我在架构上花了很多心思:

分层设计 ------ 协议层(mcp-proto)和业务层(renderdoc-core)完全解耦。协议层不知道 RenderDoc 的存在,业务层不知道 MCP 的存在。两者通过桥接层连接。这意味着如果明天出了新的 AI 协议,我只需要换一个协议层。

双入口 ------ 除了 MCP Server,还有一个 CLI(renderdoc-cli),直接链接 Core 层,不经过任何协议开销。Shell 脚本、CI 管道可以直接调用。

Diff 引擎 ------ 这是我最得意的部分。同时加载两个 .rdc 文件,用 LCS 算法对齐 Draw Call 序列,从 6 个维度深度对比。版本回归检测、渲染正确性验证,一键搞定。

CI 断言框架 ------ 5 个 assert 工具,让 GPU 渲染也能像普通代码一样跑自动化测试。push 一个 commit,CI 自动抓帧验证渲染结果。

几个真实场景

场景 1:排查渲染异常

"帮我打开这个 rdc,画面右上角有块黑色区域。"

AI 自动:打开 → 遍历 Draw Call → 定位可疑 Pass → 检查 Pipeline → 发现 Scissor Rect 配错 → 导出对比图 → 给修复建议。

场景 2:版本对比

"这两个版本的抓帧,帮我对比下变化。"

AI 自动:同时加载两帧 → 概览差异 → 发现新增 3 个 Draw → 检查新 Draw 状态 → 像素级确认差异 → 总结回归点。

场景 3:CI 自动验证

每次构建后自动抓帧 → 验证关键像素 → 检查 Draw Call 数量 → 检测资源浪费 → 输出报告。

技术细节(给感兴趣的同学)

  • C++17,CMake 构建

  • JSON-RPC 2.0 over stdio,遵循 MCP 2025-03-26 规范

  • nlohmann/json 做序列化,stb_image 做图像编码

  • 声明式工具注册,自动参数校验和错误码映射

  • Session 隔离架构:主分析 Session 和 Diff Session 独立共存

  • 支持 D3D11、D3D12、OpenGL、Vulkan 全部图形 API

  • MIT 开源协议

最后

这个项目花了我不少精力,从架构设计到 59 个 Tool 的实现,再到 Diff 引擎和 CI 断言框架,每一块都是从零写的。

如果你是图形程序员,建议试一下 ------ 体验过 AI 帮你调 GPU 之后,就回不去了。

如果你对 MCP 生态感兴趣,这个项目也是一个不错的参考 ------ 怎么用 C++ 从零构建一个生产级的 MCP Server。

Star 一下,就是最好的支持。

GitHub: https://github.com/JiaboLi-GitHub/renderdoc-mcp


开源不易,感谢每一个 Star。

相关推荐
Autumn_ing20 小时前
AI Skills 怎么用于原型设计?把需求澄清、页面生成和测试接起来
产品经理·墨刀·skill·墨刀ai客户端·ai原型·原型skill·设计skill
DolitD1 天前
UE像素流与云渲染技术方案对比分析
3d·云原生·ue5·云计算·图形渲染
梦想恒远1 天前
MCP 调不通却不报错:HTTP 200 之后的两种静默失败
mcp
jerrywus1 天前
我用 GPT-6.1-sol 做了台会讲解的 3D 售货机:60 罐饮料,一口没喝上
前端·agent·claude
濮水大叔1 天前
AI Vibe Coding 实战(三):把 SMS 开发方案落成 Spec 文档
ai编程·claude·vibecoding
Danny转行做跨境1 天前
亚马逊选品数据源实测: 一个 CLI 调 61 个接口
跨境电商·mcp·sorftime
aiks_yuan1 天前
Postman 自动给 Claude Code、Codex、Cursor 装插件怎么查和卸载:本机实测 5 处痕迹(Postman 12.34)
claude
ZzT1 天前
AI-SDLC 实践 01|用好 Claude Code/Codex 提供的六种能力
ai编程·claude
Whoami!1 天前
F-《AI接口协议:API调模型、MCP接工具、A2A连Agent》
人工智能·mcp·a2a·ai协议
一缕82年的清风1 天前
智能体“自适应慢思考”的算力黑洞:当 Claude 5.5 与 GPT-6.1 Sol 陷入推理自旋,为什么高并发架构必须重构“认知预算熔断与快慢推测执行”?
gpt·claude·gemini