一个专业的模型上下文协议(MCP)服务器,用于嵌入式调试,与 probe-rs 配合使用。提供全面的嵌入式系统调试能力,包括 ARM Cortex-M 和 RISC-V 微控制器的真实硬件集成。
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ MCP 客户端 │◄──►│ 嵌入式 │◄──►│ 调试探针 │
│ (Claude/AI) │ │ 调试器 MCP │ │ 硬件 │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ 目标设备 │
│ (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 服务器进行完整的调试体验
示例展示的内容:
请列出系统上可用的调试探针
使用 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 文件。
⭐ 如果这个项目对你有帮助,请给我们一个星!