Serial Mcp Server

Serial Mcp Server

🚀 串行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切换、计数器系统、闪烁模式。
  • 命令接口:带有交互式命令处理的帮助系统。

📖 查看STM32演示文档 →

💻 使用示例

基础用法

与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、十六进制、二进制数据。
  • 超时处理:可配置读写超时时间。
  • 连接池:支持多个并发串行连接。

性能特点

  • 端口发现:快速枚举可用端口。
  • 连接速度:快速建立连接。
  • 数据吞吐量:高效的数据传输,延迟极低。
  • 会话稳定性:经过长时间运行测试。

🙏 致谢

感谢以下开源项目:

📄 许可证

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


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

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

相似服务问题

相关AI产品