返回市场
嵌入式调试器-MCP

嵌入式调试器-MCP

作者:Adancurusul17 星标更新:2025-08-06

项目介绍

嵌入式调试器 MCP 服务器

Rust RMCP License

一个专业的模型上下文协议(MCP)服务器,用于嵌入式调试,与 probe-rs 配合使用。提供全面的嵌入式系统调试能力,包括 ARM Cortex-M 和 RISC-V 微控制器的真实硬件集成。

📖 语言版本: English | 中文

✨ 特性

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

🏗️ 架构

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

🚀 快速开始

先决条件

硬件需求:

  • 调试探针: 支持 ST-Link V2/V3、J-Link 或 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 文件。


⭐ 如果这个项目对你有帮助,请给我们一个星!