Serial-MCP

Serial-MCP

site icon
2025.04.20 0
Python串行通信设备通信其它
Serial-MCP 是一个基于 FastMCP 框架构建的串行通信服务器,专为与计算机串口连接的设备通信而设计。它提供了异步串行通信、消息缓冲、错误处理和连接管理等核心功能,适用于需要与串口设备进行可靠通信的场景。
View on GitHub

Overview

基本能力

产品定位

Serial-MCP 是一个串行通信服务器,旨在为代理(Agents)提供与计算机串口连接的设备进行通信的能力。

核心功能

  • 异步串行通信:基于 asyncio 实现高效的 I/O 操作。
  • 消息缓冲:支持可配置的缓冲区大小,并带有时间戳支持。
  • 连接管理:自动端口检测和连接处理。
  • 错误处理:全面的错误检测和报告机制。
  • 环境配置:支持环境变量和运行时配置。
  • 日志记录:带有时间戳和错误跟踪的详细日志。

适用场景

  • 与串口设备进行通信的自动化测试。
  • 嵌入式系统开发中的设备调试。
  • 需要与硬件设备进行串行通信的任何应用场景。

工具列表

  1. delay:等待指定的秒数。
  2. init_serial:初始化串行连接。
  3. send_message:通过串行连接发送消息。
  4. read_message:从缓冲区读取消息。
  5. list_serial_ports:列出系统上所有可用的串行端口。
  6. get_serial_status:获取当前串行连接的状态。
  7. configure_serial:初始化后配置串行连接。
  8. close_serial:关闭当前的串行连接。
  9. help:获取如何使用 Serial MCP 服务器的详细说明。

常见问题解答

  • 如何配置串行端口:通过环境变量 SERIAL_PORTSERIAL_BAUD_RATESERIAL_BUFFER_LENGTH 进行配置。
  • 如何处理连接失败:服务器提供详细的错误消息,包括连接失败的原因。
  • 如何查看日志:日志写入 logs/serial_MCP.log 文件。

使用教程

使用依赖

  1. 确保已安装 Python 3.7+。
  2. 安装依赖:
pip install -r requirements.txt

安装教程

  1. 克隆仓库:
git clone https://github.com/PaDev1/Serial-MCP.git
cd Serial-MCP
  1. 安装依赖:
pip install -r requirements.txt
  1. 配置服务器:
"serial_MCP": {
    "command": "uv",
    "args": [
        "run",
        "--with",
        "fastmcp,pyserial",
        "fastmcp",
        "run",
        "<path to>/serial_MCP.py"
    ],
    "env": {
        "SERIAL_PORT": "<your serial port name>",
        "SERIAL_BAUD_RATE": "9600",
        "SERIAL_BUFFER_LENGTH": "100"
    }
}

调试方式

  1. 启动服务器:
python serial_MCP.py
  1. 使用 API 端点进行调试:
  2. 初始化串行连接:
await init_serial({
    "port": "/dev/tty.usbmodem1101",
    "baudrate": 9600,
    "buffer_length": 100
})
  • 发送消息:
await send_message({
    "message": "Hello, device!"
})
  • 读取消息:
await read_message({
    "wait": False,
    "timeout": 1.0
})
  • 列出可用端口:
await list_serial_ports()
  • 获取连接状态:
await get_serial_status()
  • 配置连接:
await configure_serial({
    "port": "/dev/tty.usbmodem1101",
    "baudrate": 9600,
    "list_ports": False
})
  • 关闭连接:
await close_serial()

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。