游戏和硬件

Embedded Debugger MCP:让智能体接上调试器排查单片机

Rust 写的嵌入式调试 MCP,经 probe-rs 或 OpenOCD 连调试器:单步、读写内存、断点、烧录、RTT,崩溃后读故障寄存器并回溯到源码行。

项目与安装文档

查看项目

https://github.com/Adancurusul/embedded-debugger-mcp

单片机跑飞进了 HardFault,接下来通常是开 IDE、停核、翻 CFSR 寄存器、对着 map 文件找地址。Embedded Debugger MCP 让智能体直接接上调试探针做这些事:它能停核、读寄存器和内存,把崩溃时的栈回溯映射到源码行,再把证据交给模型分析。截至 2026-10-06 约 200 star,用 Rust 和官方 MCP Rust SDK 编写。

能做什么

  • 探针和目标控制:list_probes 发现调试器,connect 连接目标芯片,halt、run、step、reset 控制内核。
  • 内存和断点:read_memory、write_memory,以及硬件断点 set_breakpoint、clear_breakpoint。
  • 烧录:flash_program 支持 ELF、HEX、BIN,run_firmware 一步完成擦除、烧录、复位并挂上 RTT。
  • RTT 通信:读写 SEGGER RTT 通道,看固件日志或下发命令。
  • 崩溃诊断:diagnose_fault 一次读出 Cortex-M 的 CFSR、HFSR、MMFAR、BFAR 等故障寄存器和 PC、SP、LR;unwind_exception 给出带文件和行号的 DWARF 回溯。

适合谁

  • 做 STM32、nRF 等 Cortex-M 项目的固件工程师,想让 Claude Code 在改完代码后自己烧录、看日志、查崩溃。
  • RISC-V 或 ESP32 开发者,也可以通过 OpenOCD 后端接入。

接入方式

需要 Rust 稳定版工具链和一个 probe-rs 兼容的调试器(ST-Link、J-Link、DAPLink 等)。从源码构建:

git clone https://github.com/adancurusul/embedded-debugger-mcp.git
cd embedded-debugger-mcp
cargo build --release

然后在客户端里指向生成的二进制:

{
  "mcpServers": {
    "embedded-debugger": {
      "command": "/path/to/embedded-debugger-mcp/target/release/embedded-debugger-mcp",
      "args": ["serve"],
      "env": { "RUST_LOG": "info" }
    }
  }
}

编辑点评

嵌入式方向的 MCP 不多,这个做得扎实:工具都对应调试器的真实操作,崩溃诊断只报告证据、不替模型下结论,doctor 命令能在接客户端前先查环境。它会直接改硬件状态,好在默认很保守:擦除 flash 和写内存都要在配置里显式打开,固件路径可以限定在白名单内。OpenOCD 后端仍是实验性的,在 ESP32 等 Xtensa 芯片上 PC、SP 读数不对,故障诊断也只适用于 Cortex-M。发布页目前没有预编译二进制,需要自己编译。许可证为 MIT。