Serial - MCP 是基于 asyncio 和 FastMCP 框架的串口通信协议转换服务器。它支持串口配置、消息收发、端口管理等多种功能模块,能有效解决串口通信中的协议转换问题,为串口设备的通信提供便捷、高效的解决方案。
python serial_MCP.py
await init_serial({
"port": "/dev/tty.usbmodem1101", # 串口号
"baudrate": 9600, # 波特率
"buffer_length": 100 # 缓冲区长度
})
await send_message({
"message": "Hello, device!" # 待发送的消息内容
})
await read_message({
"wait": False, # 是否等待消息,默认False
"timeout": 1.0 # 等待超时时间,单位秒
})
await list_serial_ports() # 返回所有可用串口信息
await get_serial_status() # 返回当前串口连接状态
await configure_serial({
"port": "/dev/tty.usbmodem1101", # 新的串口号,可选
"baudrate": 9600, # 新的波特率,可选
"list_ports": False # 是否仅列出端口,默认False
})
await close_serial() # 关闭当前串口连接
所有配置均可以通过环境变量完成:
SERIAL_PORT:指定默认使用的串口号(默认值为 /dev/tty.usb*)。SERIAL_BAUD_RATE:设置默认波特率(默认值为 9600)。SERIAL_BUFFER_LENGTH:配置消息缓冲区大小(默认值为 100)。/serial/receiveWebSocketport:必填,目标串口号。/serial/sendPOSTmessage:必填,待发送的字符串消息。port:可选,默认使用当前配置端口。/serial/statusGET{
"port": "string", // 串口号
"data": "string", // 接收到的原始数据
"timestamp": number, // 时间戳
"status": boolean // 接收状态
}
{
"message": "string" // 待发送的消息内容
}
400 Bad Request:请求参数格式错误。503 Service Unavailable:指定串口未连接或不可用。{
"error": {
"code": number, // 错误代码
"message": string // 错误描述
}
}
所有操作均支持日志输出,日志格式如下:
[INFO] 时间戳 - 模块名:操作描述
[ERROR] 时间戳 - 模块名:错误信息
asyncio:异步编程支持。websockets:WebSocket 协议实现。git checkout -b feature/new - featuregit commit -m "添加新功能"git push upstream feature/new - feature本项目采用 MIT 协议开源:
MIT License
如有任何疑问,请联系:support@serial - mcp.com。