返回 MCP 目录
public公开dns本地运行

embedded-debugger-mcp

一个专业的嵌入式调试MCP服务器,提供AI助手全面的嵌入式系统调试能力,支持ARM Cortex-M和RISC-V微控制器,与真实硬件集成。

article

README

🚀 嵌入式调试器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!

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端