Embedded Debugger Mcp

Embedded Debugger Mcp

🚀 嵌入式调试器MCP服务器

一款专业的模型上下文协议(MCP)服务器,用于结合probe-rs进行嵌入式调试。为AI助手提供针对嵌入式系统的全面调试功能,支持包括ARM Cortex - M、RISC - V微控制器在内的嵌入式系统,并可与真实硬件集成。

📖 语言版本:英文 | 中文

✨ 主要特性

  • 🚀 生产就绪:与真实硬件集成,具备22种全面的调试工具
  • 🔌 多探针支持:支持J - Link、ST - Link V2/V3、DAPLink、Black Magic Probe等调试探针
  • 🎯 完整的调试控制:可进行连接、暂停、运行、复位、单步执行等操作
  • 💾 内存操作:支持以多种数据格式读写闪存和RAM
  • 🛑 断点管理:支持硬件和软件断点,并可进行实时控制
  • 📱 闪存编程:可完成闪存擦除、编程、验证等操作
  • 📡 RTT双向通信:具备实时传输功能,拥有交互式命令/响应系统
  • 🏗️ 多架构支持:支持ARM Cortex - M、RISC - V架构,且经过STM32集成测试
  • 🤖 AI集成:与Claude等AI助手完美兼容
  • 🧪 全面测试:所有22种工具均在真实的STM32G431CBTx硬件上进行了验证

🏗️ 架构

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   MCP客户端     │◄──►│  嵌入式调试器MCP │◄──►│  调试探针硬件    │
│   (Claude/AI)   │    │                  │    │                 │
└─────────────────┘    └──────────────────┘    └─────────────────┘
│
▼
┌──────────────────┐
│  目标设备        │
│  (ARM/RISC - V)  │
└──────────────────┘

🚀 快速开始

前提条件

硬件要求

  • 调试探针:支持J - Link、ST - Link V2/V3、DAPLink等兼容的调试探针
  • 目标开发板:STM32或其他支持的微控制器开发板
  • 连接方式:使用USB线缆连接调试探针和目标开发板

软件要求

  • Rust 1.70+
  • 与probe - rs兼容的调试探针驱动程序

安装

# 从源代码克隆并构建
git clone https://github.com/adancurusul/embedded-debugger-mcp.git
cd embedded-debugger-mcp
cargo build --release

基本用法

配置MCP客户端

Claude桌面端配置示例

添加到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演示

我们提供了一个全面的STM32 RTT双向演示,展示了所有功能:

# 进入示例目录
cd examples/STM32_demo

# 构建固件
cargo build --release

# 结合MCP服务器进行完整的调试体验

演示展示内容

  • 交互式RTT通信:发送命令并获取实时响应
  • 所有22种MCP工具:在真实的STM32硬件上进行了完整验证
  • 斐波那契计算器:通过控制命令实现实时数据流传输
  • 硬件集成:在STM32G431CBTx + ST - Link V2上进行了测试

📖 查看STM32演示文档 →

与AI助手的使用示例

列出可用的调试探针

请列出系统上可用的调试探针

连接并烧录固件

使用ST - Link探针连接到我的STM32G431CBTx,然后烧录位于examples/STM32_demo/target/thumbv7em-none-eabi/release/STM32_demo的固件

交互式RTT通信

请连接RTT并显示终端通道的数据。然后发送命令 'L' 来切换LED状态。

内存分析

从地址0x08000000读取64字节的内存并分析数据格式

测试所有22种MCP工具

请帮助我使用我的STM32开发板测试所有22种MCP嵌入式调试工具。首先连接到探针,然后系统地测试每个工具类别:探针管理、内存操作、调试控制、断点、闪存操作、RTT通信和会话管理。

🛠️ 完整工具集(22种工具)

所有工具均在真实的STM32硬件上进行了测试和验证:

🔌 探针管理(3种工具)

工具 描述 状态
list_probes 发现可用的调试探针 ✅ 生产就绪
connect 连接到探针和目标芯片 ✅ 生产就绪
probe_info 获取详细的会话信息 ✅ 生产就绪

💾 内存操作(2种工具)

工具 描述 状态
read_memory 以多种格式读取闪存/RAM ✅ 生产就绪
write_memory 写入目标内存 ✅ 生产就绪

🎯 调试控制(4种工具)

工具 描述 状态
halt 停止目标执行 ✅ 生产就绪
run 恢复目标执行 ✅ 生产就绪
reset 硬件/软件复位 ✅ 生产就绪
step 单指令步进 ✅ 生产就绪

🛑 断点管理(2种工具)

工具 描述 状态
set_breakpoint 设置硬件/软件断点 ✅ 生产就绪
clear_breakpoint 清除断点 ✅ 生产就绪

📱 闪存操作(3种工具)

工具 描述 状态
flash_erase 擦除闪存扇区/芯片 ✅ 生产就绪
flash_program 烧录ELF/HEX/BIN文件 ✅ 生产就绪
flash_verify 验证闪存内容 ✅ 生产就绪

📡 RTT通信(6种工具)

工具 描述 状态
rtt_attach 连接到RTT通信 ✅ 生产就绪
rtt_detach 断开RTT连接 ✅ 生产就绪
rtt_channels 列出可用的RTT通道 ✅ 生产就绪
rtt_read 从RTT上行通道读取数据 ✅ 生产就绪
rtt_write 向RTT下行通道写入数据 ✅ 生产就绪
run_firmware 完成部署 + RTT ✅ 生产就绪

📊 会话管理(2种工具)

工具 描述 状态
get_status 获取当前调试状态 ✅ 生产就绪
disconnect 干净地终止会话 ✅ 生产就绪

✅ 22/22工具 - 在真实硬件上成功率达100%

🌍 支持的硬件

调试探针

  • J - Link:Segger J - Link(所有型号)
  • ST - Link:ST - Link/V2、ST - Link/V3
  • DAPLink:与ARM DAPLink兼容的调试探针
  • Black Magic Probe:Black Magic Probe
  • FTDI:基于FTDI的调试探针

目标架构

  • ARM Cortex - M:M0、M0+、M3、M4、M7、M23、M33
  • RISC - V:各种RISC - V内核
  • ARM Cortex - A:基本支持

🏆 生产状态

✅ 完全实现并测试

当前状态:生产就绪

  • 完整的probe - rs集成:使用所有22种工具进行真实硬件调试
  • 硬件验证:在STM32G431CBTx + ST - Link V2上进行了测试
  • RTT双向通信:支持实时命令的全交互式通信
  • 闪存操作:完整的擦除、编程、验证工作流程
  • 会话管理:支持多会话,具备强大的错误处理能力
  • AI集成:与MCP协议完美兼容

🙏 致谢

感谢以下开源项目:

📄 许可证

本项目采用MIT许可证。详情请参阅LICENSE文件。


⭐ 如果本项目对您有帮助,请给我们一个Star!

  • 0 关注
  • 0 收藏,34 浏览
  • system 提出于 2025-10-04 10:57

相似服务问题

相关AI产品