Back to MCP directory
publicPublicdnsLocal runtime

serial-mcp-server

一个专业的串口通信MCP服务器,为AI助手提供全面的串口通信能力,支持嵌入式系统、物联网设备和硬件调试,具有跨平台支持和多种数据格式处理功能。

article

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

📖 查看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!

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client