README
🚀 串行MCP服务器
这是一款专业的模型上下文协议(MCP)服务器,专为串口通信设计。它为AI助手提供了全面的串行通信能力,可用于嵌入式系统、物联网设备以及硬件调试等场景,能实现与真实硬件的集成。
🚀 快速开始
前提条件
硬件要求
- 串行设备:STM32、Arduino、ESP32或任何支持UART的设备。
- 连接方式:USB转串口转换器或内置USB - UART接口。
- USB线缆:用于将设备连接到PC。
软件要求
- Rust 1.70及以上版本。
- 串行设备驱动程序(大多数系统可自动检测)。
安装
# 从源代码克隆并构建
git clone https://github.com/adancurusul/serial-mcp-server.git
cd serial-mcp-server
cargo build --release
基本用法
配置MCP客户端
Claude桌面配置示例
添加到Claude桌面配置文件:
Windows示例:
{
"mcpServers": {
"serial": {
"command": "C:\\path\\to\\serial-mcp-server\\target\\release\\serial-mcp-server.exe",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}
macOS/Linux示例:
{
"mcpServers": {
"serial": {
"command": "/path/to/serial-mcp-server/target/release/serial-mcp-server",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}
其他工具(如cursor、claude code等)的示例,请参考相应工具的文档。
✨ 主要特性
- 🚀 生产就绪:与真实硬件集成,拥有5种全面的串行通信工具。
- 🔌 跨平台支持:支持Windows、Linux、macOS系统,并能自动检测端口。
- 📡 完整的串行控制:可列出端口、连接设备、发送/接收数据,并进行全面配置。
- 📝 多种数据格式:支持UTF - 8、十六进制、二进制编码,并具备超时处理功能。
- 🛠️ 硬件集成:已在STM32、Arduino、ESP32等嵌入式系统上进行测试。
- 🤖 AI集成:与Claude等AI助手完美兼容。
- 🧪 全面测试:所有5种工具均已通过真实硬件验证。
- ⚡ 高性能:基于Tokio异步运行时构建,支持并发连接。
🏗️ 架构
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ MCP Client │◄──►│ Serial MCP │◄──►│ Serial Device │
│ (Claude/AI) │ │ Server │ │ Hardware │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Target Device │
│ (STM32/Arduino) │
└──────────────────┘
🎯 尝试STM32演示
我们提供了一个全面的 STM32串行通信演示,展示了所有功能:
# 进入示例目录
cd examples/STM32_demo
# 构建并运行固件
cargo run --release
# 与MCP服务器配合使用,体验完整的串行通信
演示展示内容:
- ✅ 交互式串行命令:发送命令并获取实时响应。
- ✅ 所有5种MCP工具:通过真实的STM32硬件进行完整验证。
- ✅ 硬件控制:LED切换、计数器系统、闪烁模式。
- ✅ 命令接口:带有交互式命令处理的帮助系统。
💻 使用示例
基础用法
与AI助手的使用示例:
列出可用串行端口
请列出系统上可用的串行端口
连接到串行设备
以115200的波特率连接到我的STM32设备的COM19端口
发送交互式命令
发送'H'命令以获取帮助菜单,然后发送'L'以切换LED
读取设备响应
在2秒超时时间内读取串行设备的响应
完整通信测试
请帮我使用我的STM32开发板在COM19端口上测试所有5种MCP串行工具。首先列出端口,然后连接,发送一些命令,读取响应,最后关闭连接。
🛠️ 完整工具集(5种工具)
所有工具均已通过真实的STM32硬件测试和验证:
📡 串行通信(5种工具)
| 工具 | 描述 | 状态 |
|------|-------------|----------|
| list_ports | 发现系统上可用的串行端口 | ✅ 生产就绪 |
| open | 按配置打开串行连接 | ✅ 生产就绪 |
| write | 向已连接的串行设备发送数据 | ✅ 生产就绪 |
| read | 在超时时间内从串行设备读取数据 | ✅ 生产就绪 |
| close | 干净地关闭串行连接 | ✅ 生产就绪 |
✅ 5/5工具 - 真实硬件测试成功率100%
🌍 支持的硬件
串行设备
- STM32:所有具备UART功能的STM32系列。
- Arduino:Uno、Nano、ESP32、ESP8266。
- 嵌入式系统:任何带有UART/USB - 串行接口的设备。
- 工业设备:Modbus、RS485转换器。
- 物联网设备:支持串行通信的传感器、执行器。
- 其他:任何带有UART/USB - 串行接口的设备。
串行接口
- USB转串口:CH340、CH343、FTDI、CP2102。
- 内置USB:带有USB - CDC的STM32、Arduino Leonardo。
- 硬件UART:直接UART连接。
平台支持
| 平台 | 端口格式 | 示例 |
|----------|-------------|----------|
| Windows | COMx | COM1、COM3、COM19 |
| Linux | /dev/ttyXXX | /dev/ttyUSB0、/dev/ttyACM0 |
| macOS | /dev/tty.xxx | /dev/tty.usbserial - 1234 |
🏆 生产状态
✅ 完全实现并测试
当前状态:生产就绪
- ✅ 完整的串行集成:通过所有5种工具实现与真实硬件的通信。
- ✅ 硬件验证:在COM19端口上使用STM32 + CH343 USB - 串行进行测试。
- ✅ 交互式通信:完整的双向命令/响应系统。
- ✅ 多平台支持:支持Windows、Linux、macOS系统,并能自动检测。
- ✅ 连接管理:具备强大的连接处理能力和正确的清理机制。
- ✅ AI集成:与MCP协议完美兼容。
🔧 技术细节
串行实现
- 跨平台:自动检测和配置端口。
- 多种编码:支持UTF - 8、十六进制、二进制数据。
- 超时处理:可配置读写超时时间。
- 连接池:支持多个并发串行连接。
性能特点
- 端口发现:快速枚举可用端口。
- 连接速度:快速建立连接。
- 数据吞吐量:高效的数据传输,延迟极低。
- 会话稳定性:经过长时间运行测试。
🙏 致谢
感谢以下开源项目:
- serialport-rs - 串行端口通信库
- rmcp - Rust MCP SDK
- tokio - 异步运行时
📄 许可证
本项目采用MIT许可证。详情请参阅LICENSE文件。
⭐ 如果这个项目对你有帮助,请给我们点个Star!
Scan to join WeChat group