一款专业的模型上下文协议(MCP)服务器,用于结合probe-rs进行嵌入式调试。为AI助手提供针对嵌入式系统的全面调试功能,支持包括ARM Cortex - M、RISC - V微控制器在内的嵌入式系统,并可与真实硬件集成。
📖 语言版本:英文 | 中文
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ MCP客户端 │◄──►│ 嵌入式调试器MCP │◄──►│ 调试探针硬件 │
│ (Claude/AI) │ │ │ │ │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ 目标设备 │
│ (ARM/RISC - V) │
└──────────────────┘
硬件要求:
软件要求:
# 从源代码克隆并构建
git clone https://github.com/adancurusul/embedded-debugger-mcp.git
cd embedded-debugger-mcp
cargo build --release
配置MCP客户端
添加到Claude桌面端配置文件中:
Windows示例:
{
"mcpServers": {
"embedded-debugger": {
"command": "C:\\path\\to\\debugger-mcp-rs\\target\\release\\embedded-debugger-mcp.exe",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}
macOS/Linux示例:
{
"mcpServers": {
"embedded-debugger": {
"command": "/path/to/debugger-mcp-rs/target/release/embedded-debugger-mcp",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}
其他工具(如cursor、Claude Code等)的示例,请参考相应工具的文档。
我们提供了一个全面的STM32 RTT双向演示,展示了所有功能:
# 进入示例目录
cd examples/STM32_demo
# 构建固件
cargo build --release
# 结合MCP服务器进行完整的调试体验
演示展示内容:
📖 查看STM32演示文档 →
请列出系统上可用的调试探针
使用ST - Link探针连接到我的STM32G431CBTx,然后烧录位于examples/STM32_demo/target/thumbv7em-none-eabi/release/STM32_demo的固件
请连接RTT并显示终端通道的数据。然后发送命令 'L' 来切换LED状态。
从地址0x08000000读取64字节的内存并分析数据格式
请帮助我使用我的STM32开发板测试所有22种MCP嵌入式调试工具。首先连接到探针,然后系统地测试每个工具类别:探针管理、内存操作、调试控制、断点、闪存操作、RTT通信和会话管理。
所有工具均在真实的STM32硬件上进行了测试和验证:
| 工具 | 描述 | 状态 |
|---|---|---|
list_probes |
发现可用的调试探针 | ✅ 生产就绪 |
connect |
连接到探针和目标芯片 | ✅ 生产就绪 |
probe_info |
获取详细的会话信息 | ✅ 生产就绪 |
| 工具 | 描述 | 状态 |
|---|---|---|
read_memory |
以多种格式读取闪存/RAM | ✅ 生产就绪 |
write_memory |
写入目标内存 | ✅ 生产就绪 |
| 工具 | 描述 | 状态 |
|---|---|---|
halt |
停止目标执行 | ✅ 生产就绪 |
run |
恢复目标执行 | ✅ 生产就绪 |
reset |
硬件/软件复位 | ✅ 生产就绪 |
step |
单指令步进 | ✅ 生产就绪 |
| 工具 | 描述 | 状态 |
|---|---|---|
set_breakpoint |
设置硬件/软件断点 | ✅ 生产就绪 |
clear_breakpoint |
清除断点 | ✅ 生产就绪 |
| 工具 | 描述 | 状态 |
|---|---|---|
flash_erase |
擦除闪存扇区/芯片 | ✅ 生产就绪 |
flash_program |
烧录ELF/HEX/BIN文件 | ✅ 生产就绪 |
flash_verify |
验证闪存内容 | ✅ 生产就绪 |
| 工具 | 描述 | 状态 |
|---|---|---|
rtt_attach |
连接到RTT通信 | ✅ 生产就绪 |
rtt_detach |
断开RTT连接 | ✅ 生产就绪 |
rtt_channels |
列出可用的RTT通道 | ✅ 生产就绪 |
rtt_read |
从RTT上行通道读取数据 | ✅ 生产就绪 |
rtt_write |
向RTT下行通道写入数据 | ✅ 生产就绪 |
run_firmware |
完成部署 + RTT | ✅ 生产就绪 |
| 工具 | 描述 | 状态 |
|---|---|---|
get_status |
获取当前调试状态 | ✅ 生产就绪 |
disconnect |
干净地终止会话 | ✅ 生产就绪 |
✅ 22/22工具 - 在真实硬件上成功率达100%
当前状态:生产就绪
感谢以下开源项目:
本项目采用MIT许可证。详情请参阅LICENSE文件。
⭐ 如果本项目对您有帮助,请给我们一个Star!