Token导航 LogoToken导航

MCP Server · 运维云端

Serial MCP

一个基于FastMCP框架的串口通信服务器,提供异步串口通信、消息缓冲、错误处理和连接管理等功能,适用于设备与计算机之间的串口通信。

stdio官方级别未说明来源级核验工具 0
PythonClaude错误处理Claude Desktop

快速开始

作者 / 组织
PaDev1
提供方
PaDev1
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

4

仓库热度

收录来源

2 个

MCP World

选型结论

Serial MCP 属于运维云端类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

运维云端

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install -r requirements.txt

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

串行MCP

MCP服务器允许代理与连接到计算机串行端口的设备进行通信。仅使用MAC atm进行测试。

采用FastMCP框架构建的强大串行通信服务器,为串行端口通信提供可靠的接口,具有消息缓冲、错误处理和连接管理等功能。

安装

  1. 克隆存储库:
git clone https://github.com/PaDev1/Serial-MCP.git
cd Serial-MCP
  1. 安装依赖项:
pip install -r requirements.txt

安装到Claude Desktop或类似设备后,按照以下结构添加服务器

“serial_MCP”:{ “command”:“uv”, “args”:\[ “运行”, “--带有”, “fastmcp,pyserial”, “fastmcp”, “运行”, " /serial_MCP.py” \], “env”:{ “SERIAL_PORT”:", “SERIAL_bud_RATE”:“9600”, “SERIAL_BUFFER_LENGTH”:“100” } }

特性

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

可用工具

1.延迟

等待指定的秒数。

参数:

  • delay (浮点数):等待的秒数(必须为正)

退货:

  • 成功状态
  • 请求延迟时间
  • 实际延迟时间(测量)
  • 状态消息

例子:

await delay({
    "delay": 2.5  # Wait for 2.5 seconds
})

2.初始序列

使用指定参数初始化串行连接。

参数:

  • port (str):串行端口设备路径(例如,“/dev/tty.usbmodel1101”)
  • baudrate (int):通信速度(波特率)(默认值:9600)
  • buffer_length (int):缓冲区的最大消息数(默认值:100)

退货:

  • 初始化状态
  • 当前模式(真实/断开)
  • 端口和波特率信息

3.发送消息

通过串行连接发送消息,并可选择等待响应。

参数:

  • message (str):要发送的消息
  • wait_for_response (bool):发送后是否等待响应(默认值:False)
  • response_timeout (float):等待响应的时间(秒)(默认值:0.5)

退货:

  • success (bool):整体运营成功
  • status (str):操作状态(“成功”、“错误”等)
  • mode (str):当前连接模式(“真实”、“断开”)
  • write_status (str):写入操作状态:

- “成功”:消息已成功写入 - “failed”:写入操作失败 - “timeout”:写入操作超时

  • connection_state (str):当前连接状态:

- “已连接”:串行端口已连接且可用 - “断开连接”:无活动串行连接 - “error”:连接处于错误状态

  • response_status (str):响应状态:

- “not_checked”:未请求响应检查 - “已收到”:已收到响应 - “no_response”:超时内未收到响应 - “error”:检查响应时出错

  • response_messages (list):收到的消息列表(如果有的话)
  • bytes_written (int):成功写入的字节数
  • error_type (str):操作失败时的错误类型
  • message (str):人类可读状态消息
  • error_details (dict):附加错误信息(如适用)

无响应发送检查示例:

await send_message({
    "message": "Hello",
    "wait_for_response": False
})
# Returns:
{
    "success": True,
    "status": "success",
    "mode": "real",
    "write_status": "success",
    "connection_state": "connected",
    "response_status": "not_checked",
    "response_messages": [],
    "bytes_written": 6,
    "message": "Message sent successfully in real mode"
}

带响应检查的发送示例:

await send_message({
    "message": "Hello",
    "wait_for_response": True,
    "response_timeout": 1.0
})
# Returns:
{
    "success": True,
    "status": "success",
    "mode": "real",
    "write_status": "success",
    "connection_state": "connected",
    "response_status": "received",
    "response_messages": [
        {
            "timestamp": "2024-03-14T15:30:45.123456",
            "message": "Hello received"
        }
    ],
    "bytes_written": 6,
    "message": "Message sent successfully in real mode"
}

超时内无响应示例:

await send_message({
    "message": "Hello",
    "wait_for_response": True,
    "response_timeout": 0.5
})
# Returns:
{
    "success": True,
    "status": "success",
    "mode": "real",
    "write_status": "success",
    "connection_state": "connected",
    "response_status": "no_response",
    "response_messages": [],
    "bytes_written": 6,
    "message": "Message sent successfully in real mode"
}

4.read_message

从缓冲区读取消息。

参数:

  • wait (bool):如果缓冲区为空,是否等待消息(默认值:False)
  • timeout (float):等待消息的时间(秒)(默认值:1.0)

退货:

  • 带有时间戳的消息列表
  • 当前模式
  • 读取操作状态

5.列表_串行端口

列出系统上所有可用的串行端口。

参数: 无

退货:

  • 可用端口列表及详细信息
  • 端口名称和描述
  • 硬件标识符

6.获取序列状态

获取串行连接的当前状态。

参数: 无

退货:

  • 当前模式
  • 端口和波特率信息
  • 缓冲区长度
  • 可用端口
  • 最后一条错误消息
  • 串行模块可用性

7.配置序列

初始化后配置串行连接。

参数:

  • port (str,可选):要使用的新端口
  • baudrate (int,可选):要使用的新波特率
  • list_ports (bool):是否只列出端口(默认值:False)

退货:

  • 已更新配置
  • 当前模式
  • 可用端口(如果list_ports为True)

8.近距离试验

关闭当前的串行连接。

参数: 无

退货:

  • 关闭状态
  • 当前模式

9.帮助

获取有关如何使用串行MCP服务器的详细说明。

参数: 无

退货:

  • 详细的帮助信息包括:

- 工具说明和参数 - 每个工具的示例用法 - 常见的响应格式 - 连接状态 - 响应状态 - 重要使用说明

例子:

await help()
# Returns comprehensive help information about all available tools and their usage

配置

可以使用环境变量配置服务器:

  • SERIAL_PORT:串行端口设备路径(默认:“/dev/tty.usb\*”)
  • SERIAL_BAUD_RATE:通信速度(波特率)(默认值:9600)
  • SERIAL_BUFFER_LENGTH:要缓冲的最大消息数(默认值:100)

用法

启动服务器

python serial_MCP.py

API终点

初始化串行连接
await init_serial({
    "port": "/dev/tty.usbmodem1101",
    "baudrate": 9600,
    "buffer_length": 100
})
发送消息
await send_message({
    "message": "Hello, device!"
})
读取消息
await read_message({
    "wait": False,  # Whether to wait for messages
    "timeout": 1.0  # Timeout in seconds
})
列出可用端口
await list_serial_ports()
获取连接状态
await get_serial_status()
配置连接
await configure_serial({
    "port": "/dev/tty.usbmodem1101",
    "baudrate": 9600,
    "list_ports": False
})
关闭连接
await close_serial()

消息格式

缓冲区中的消息与时间戳一起存储:

{
    "timestamp": "2024-03-14T15:30:45.123456",  # ISO format
    "message": "Actual message content"
}

错误处理

服务器为各种场景提供详细的错误消息:

  • 连接失败
  • 无效参数
  • 超时条件
  • 缓冲区溢出
  • 无效消息

日志记录

日志被写入 logs/serial_MCP.log 格式如下:

[timestamp] - [level] - [message]

需求

  • Python 3.7+
  • pyserial>=3.5
  • fastmcp>=0.1.0
  • 媒染剂>=2.0.0
  • 异步>=3.4.3

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

  • 服务器基础架构的FastMCP框架
  • pyserial用于串行通信功能

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

串口通信Python本地部署消息缓冲错误处理连接管理异步通信

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Serial MCP

MCP World · 本页

0stdio有2 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Serial MCP 怎么安装?

公开资料给出的安装命令是 pip install -r requirements.txt,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Serial MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Serial MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Serial MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Serial MCP 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP