Embedded xLink MCP
by vividcode-ai
README.md
# Embedded xLink MCP 服务器
[](https://rust-lang.org)
[](https://github.com/modelcontextprotocol/rust-sdk)
[](LICENSE)
专业的模型上下文协议 (MCP) 嵌入式调试服务器,基于 probe-rs 构建。为 AI 助手提供包括 ARM Cortex-M、RISC-V 微控制器在内的全面嵌入式系统调试功能,支持真实硬件集成。
> 📖 **语言版本**: [English](README.en.md) | [中文](README.md)
## ✨ 功能特性
- 🚀 **生产就绪**: 真实硬件集成,提供22个综合调试工具
- 🔌 **多探针支持**: J-Link, ST-Link V2/V3, DAPLink, Black Magic Probe
- 🎯 **完整调试控制**: 连接、暂停、运行、复位、单步执行
- 💾 **内存操作**: 支持多种数据格式的Flash和RAM读写
- 🛑 **断点管理**: 硬件和软件断点的实时控制
- 📱 **Flash编程**: 完整的Flash操作 - 擦除、编程、验证
- 📡 **RTT双向通信**: 实时传输,支持交互式命令/响应系统
- 🏗️ **多架构支持**: ARM Cortex-M, RISC-V,经过STM32集成测试
- 🤖 **AI集成**: 与Claude和其他AI助手完美兼容
- 🧪 **全面测试**: 所有22个工具在真实STM32G431CBTx硬件上验证通过
## 🏗️ 架构
```
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ MCP 客户端 │◄──►│ xLink MCP │◄──►│ 调试探针 │
│ (Claude/AI) │ │ MCP 服务器 │ │ 硬件 │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ 目标设备 │
│ (ARM/RISC-V) │
└──────────────────┘
```
## 🚀 快速开始
### 前置要求
**硬件要求:**
- **调试探针**: ST-Link V2/V3, J-Link, 或 DAPLink 兼容探针
- **目标板**: STM32 或其他支持的微控制器
- **连接线**: 用于探针和目标板的USB线
**软件要求:**
- Rust 1.70+
- probe-rs 兼容的调试探针驱动程序
### 安装
```bash
# 克隆并从源码构建
git clone https://github.com/vividcode-ai/embedded-xLink-mcp.git
cd embedded-xLink-mcp
cargo build --release
```
### 基本使用
**配置 MCP 客户端**
#### Claude Desktop 配置示例
添加到 Claude Desktop 配置文件:
**Windows 示例:**
```json
{
"mcpServers": {
"embedded-debugger": {
"command": "C:\\path\\to\\embedded-xLink-mcp\\target\\release\\embedded-xLink-mcp.exe",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}
```
**macOS/Linux 示例:**
```json
{
"mcpServers": {
"embedded-debugger": {
"command": "/path/to/embedded-xLink-mcp/target/release/embedded-xLink-mcp",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}
```
其他例如cursor ,claude code 等参考对应工具文档
## 🎯 试试 STM32 演示
我们提供了一个全面的 **STM32 RTT 双向通信演示**,展示了所有功能:
```bash
# 进入示例目录
cd examples/STM32_demo
# 构建固件
cargo build --release
# 与 MCP 服务器配合使用,获得完整的调试体验
```
**演示内容:**
- ✅ **交互式 RTT 通信**: 发送命令并获得实时响应
- ✅ **全部 22 个 MCP 工具**: 在真实 STM32 硬件上完整验证
- ✅ **斐波那契计算器**: 实时数据流与控制命令
- ✅ **硬件集成**: 在 STM32G431CBTx + ST-Link V2 上测试
[📖 查看 STM32 演示文档 →](examples/STM32_demo/README.md)
### AI 助手使用示例
#### 列出可用的调试探针
```
请列出系统上可用的调试探针
```
#### 连接并烧录固件
```
使用 ST-Link 探针连接到我的 STM32G431CBTx,然后烧录位于 examples/STM32_demo/target/thumbv7em-none-eabi/release/STM32_demo 的固件
```
#### 交互式 RTT 通信
```
请连接 RTT 并显示终端通道的数据。然后发送命令 'L' 来切换 LED。
```
#### 内存分析
```
读取地址 0x08000000 处的 64 字节内存并分析数据格式
```
#### 测试全部 22 个 MCP 工具
```
请帮我测试所有 22 个 MCP 嵌入式调试工具与我的 STM32 开发板。先连接到探针,然后系统性地测试每个工具类别:探针管理、内存操作、调试控制、断点、Flash 操作、RTT 通信和会话管理。
```
## 🛠️ 完整工具集 (22个工具)
所有工具均通过真实 STM32 硬件测试和验证:
### 🔌 探针管理 (3个工具)
| 工具 | 描述 | 状态 |
|------|------|------|
| `list_probes` | 发现可用的调试探针 | ✅ 生产就绪 |
| `connect` | 连接到探针和目标芯片 | ✅ 生产就绪 |
| `probe_info` | 获取详细会话信息 | ✅ 生产就绪 |
### 💾 内存操作 (2个工具)
| 工具 | 描述 | 状态 |
|------|------|------|
| `read_memory` | 支持多种格式的Flash/RAM读取 | ✅ 生产就绪 |
| `write_memory` | 向目标内存写入数据 | ✅ 生产就绪 |
### 🎯 调试控制 (4个工具)
| 工具 | 描述 | 状态 |
|------|------|------|
| `halt` | 停止目标执行 | ✅ 生产就绪 |
| `run` | 恢复目标执行 | ✅ 生产就绪 |
| `reset` | 硬件/软件复位 | ✅ 生产就绪 |
| `step` | 单指令步进 | ✅ 生产就绪 |
### 🛑 断点管理 (2个工具)
| 工具 | 描述 | 状态 |
|------|------|------|
| `set_breakpoint` | 设置硬件/软件断点 | ✅ 生产就绪 |
| `clear_breakpoint` | 移除断点 | ✅ 生产就绪 |
### 📱 Flash 操作 (3个工具)
| 工具 | 描述 | 状态 |
|------|------|------|
| `flash_erase` | 擦除Flash内存扇区/芯片 | ✅ 生产就绪 |
| `flash_program` | 编程 ELF/HEX/BIN 文件 | ✅ 生产就绪 |
| `flash_verify` | 验证Flash内容 | ✅ 生产就绪 |
### 📡 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 双向通信**: 完整的交互式通信与实时命令
- ✅ **Flash 操作**: 完整的擦除、编程、验证工作流
- ✅ **会话管理**: 多会话支持与强大的错误处理
- ✅ **AI 集成**: 完美的 MCP 协议兼容性
## 🙏 致谢
感谢以下开源项目:
- [probe-rs](https://probe.rs/) - 嵌入式调试工具包
- [rmcp](https://github.com/modelcontextprotocol/rust-sdk) - Rust MCP SDK
- [tokio](https://tokio.rs/) - 异步运行时
## 📄 许可证
本项目采用 MIT 许可证。详细信息请参阅 [LICENSE](LICENSE) 文件。
---
⭐ 如果这个项目对你有帮助,请给我们一个 Star!
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues