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。