Serial MCP Server
使用说明
项目简介
- 该仓库实现了基于 MCP 的后端服务器,核心目标是向 AI Agent/LLM 客户端提供可拓展的上下文服务,包括通过 JSON-RPC 方式远程访问并控制串口设备、查询和管理设备规格、以及加载/维护插件以扩展能力。
主要功能点
- 串口工具集合(列端口、打开/关闭连接、读写、控制线等),支持多种输出格式和自定义参数。
- introspection 工具,提供当前打开的连接的状态与信息。
- 设备规格(specs)管理:读取、注册、搜索、附着到连接等,方便 AI 客户端理解和操作具体设备协议。
- 插件系统:插件的发现、加载、热重载、卸载,以及对工具/处理器的扩展,支持按策略开启/限制。
- 跟踪与调试:可选的工具调用追踪(Trace)与日志模块,帮助解释和审核 Tool 的执行过程。
- PTY 镜像(仅限 Unix)支持,用以将串口端口透传给外部工具时实现多路访问。
- 标准传输(stdio)与未来扩展的传输能力(如 SSE/WebSocket)设计,便于不同环境下的部署。
- MCP 客户端无需关心底层实现细节,只需通过工具名与参数进行调用,服务器返回标准化的 JSON-RPC 响应。
安装与运行
- 安装方式
- 使用开发模式安装:pip install -e .
- 或直接安装并运行你所需的环境
- 运行
- 直接以模块方式启动:python -m serial_mcp_server
- 服务器默认通过 stdio 传输与客户端通信,外部客户端可通过设置环境变量来开启插件等能力
- 可选配置
- SERIAL_MCP_PLUGINS:启用插件能力的策略,可设为 all、名称列表,或禁用
- SERIAL_MCP_LOG_LEVEL:日志等级
- SERIAL_MCP_MIRROR 与 SERIAL_MCP_MIRROR_LINK:开启 PTY 镜像及其链接路径(仅 Linux/macOS,Windows 环境会降级为 off)
- 具体插件与工具的选择构成服务器的能力边界,插件会在启动时进行扫描和注册
服务器配置(JSON) { "servers": { "serial": { "type": "stdio", "command": "python -m serial_mcp_server", "args": [], "env": { "SERIAL_MCP_PLUGINS": "all", "SERIAL_MCP_LOG_LEVEL": "WARNING", "SERIAL_MCP_MIRROR": "off" } } } } 说明
- server 名称为 serial,表示这是序列化端口相关的 MCP 服务
- type 设置为 stdio,表示通过标准输入输出进行 JSON-RPC 交互
- command / args 指定启动命令和参数(客户端通常不需要直接使用这两项,但为配置示例提供可操作性)
- env 里可控制插件策略、日志级别以及镜像等选项,具体按部署需求调整
基本使用方法
- 启动服务器后,客户端通过 MCP 协议对服务器进行请求,常用流程包括:
- 列出服务器支持的工具
- 调用具体工具(如 serial.list_ports、serial.open、serial.read、serial.write 等)进行串口操作
- 使用 introspection/spec 插件查看、注册、附着设备规格等
- 如需要扩展功能,可通过插件机制加载新的工具/处理器
- 本仓库还提供一个简单的命令行客户端工具工具串行测试(tools/serial_cli.py),可用于本地演示和快速验证 MCP 服务的行为
- 典型开发与运维工作流
- 在本地或服务器上启动服务器
- 使用 MCP 客户端(如相关 IDE 插件、Inspector、或自定义客户端)连接并执行工具
- 如有新设备或新协议,添加规格文件或插件并通过服务器的插件机制加载
关键词 串口自动化, 插件管理, 规格管理, 设备协议, 开发工具
分类ID 1