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 シリアル変換アダプタを出せ、そのポートの OS 権限もある人に向く。リポジトリ:

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 を出し(空でもよい)、プロセスが正常終了する。権限が足りなければ、選んだシリアルに対する OS 権限を先に直す。書いていないランチャに乗り換えない。

利用ケース

ケース1:どの口があるかを見てから、一つをプローブする。対応コマンドは list-ports --json と、--baud 115200 --json 付きの probe。ポート名はその出力から取る。架空パスを手で書かない。probe はハードウェアに届く。機器が繋がっていることを確認してから実行する。

ケース2:多段のタイミングを 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 だけを示しており、全機器の安全既定値ではない。

GUI もクラウドシリアルも書いていない。MCP は stdio。クライアントは名指しされていない。マクロは先に模擬できるが、run は機器状態を変えうる。権限不足やドライバなしではハードウェアコマンドは失敗する。