MCP

用 serial-mcp-server 列举并自动化串口流程

适合要让助手或脚本访问本机串口、并用 JSON 宏重放时序的人,前提是 Rust 1.74+,第一次先 list-ports,不要对未知端口写入。

官方来源 · serial-mcp-server

安装

cargo build --release

适合谁

如果你要让助手或脚本访问串口/UART,并且希望同一套流程既能当 MCP 工具、也能当命令行用,serial-mcp-server 对口。它提供 MCP stdio 服务,以及可脚本化的 CLI,给 CI 和无需配置 MCP 的 agent skill 用。当前发布目标是 0.3.0。

它适合本机已有 Rust 1.74 或更新版本、并且在做硬件操作时能提供串口设备或 USB 转串口适配器、还具备该端口系统权限的人。仓库:

https://github.com/adancurusul/serial-mcp-server

只想在浏览器里点一点、没有编译环境的人先停——官方入口是克隆后 cargo build --release。

3 分钟完成第一次尝试

官方主路径是从源码编译。先决条件:Rust 1.74+。第一次不要接真实设备:只列举本机端口,避免误写串口。

安装位置是克隆下来的仓库根目录:

git clone https://github.com/adancurusul/serial-mcp-server.git
cd serial-mcp-server
cargo build --release

二进制在 target/release/serial-mcp-server。也可 cargo install --path . --locked 装到 PATH,但第一次用仓库里编好的二进制即可。

低风险第一次调用:

serial-mcp-server list-ports --json

这是只读枚举,不向设备写数据。也可先跑 serial-mcp-server --help 确认命令在。不要把文档里的端口占位符当成真实设备名去写。

可观察成功信号:list-ports --json 打出 JSON 端口列表(可以为空),进程正常退出。若权限不足,先解决操作系统对所选串口的权限,不要换未写明的启动器。

使用案例

案例一:先看有哪些口,再对其中一个做探测。对应命令是 list-ports --json,以及带 --baud 115200 --json 的 probe。端口名必须来自列表,不要手写虚构路径。probe 会访问硬件,确认设备已接好再执行。

案例二:把多步时序收成 JSON 宏。设备常常要:发命令、等几毫秒、读到提示或应答、再发下一条。宏包记录该过程,可供人、CLI 或助手做 macro validate、macro list、macro plan,并在无硬件时模拟。MCP 侧也有内存中的宏包加载/列出/卸载、plan 与 run。真正 macro run 或 write/read 会操作真实端口,先确认连线再跑。

使用边界

0.3.0 把 Quick 移出了公共 API;Quick 风格的用法应写成宏。不要再找 Quick 接口。

write 默认示例数据是 H,并带 --read --timeout-ms 1000 --json;这会向端口发送数据。超时和波特率摘录只示范了 115200 与 1000 ms,不是所有设备的安全默认值。

没有写图形界面或云端串口。MCP 是 stdio。未点名客户端。宏可以先模拟,但 run 仍可能改变设备状态。权限不够或没有驱动时,硬件命令会失败。