mcpField
S
Serial Console MCP: AI for telecom equipment and any serial device

Serial Console MCP: AI for telecom equipment and any serial device

ローカル
github.com開発ツール14 週間前に更新

Serial Console MCP: AI for telecom equipment and any serial device について

serial-console-mcpは、AIアシスタントをルーター、無線機などのシリアル機器に接続し、コンソール操作を可能にします。汎用シリアル通信と端末処理に加え、機器プロトコル用のツールを備えています。

主な機能

  1. 01ポート列挙と複数接続の管理
  2. 02プロンプトまでの出力読み取り
  3. 03生バイトとVT100画面の処理
  4. 04JunosとIOSの操作スキル
  5. 05CAT、CI-V、GS-232の解析

活用シーン

  1. 01ルーターの状態確認と設定変更
  2. 02無線機の周波数やモードの確認・設定
  3. 03アンテナローテーターの回転と方位確認
  4. 04BIOS、UPS、実験機器のシリアルメニュー操作

MCP 対応

シリアルポートの検出・接続、入出力、画面表示、セッション記録、プロトコル解析のツールを提供するMCPサーバーです。他のMCPクライアントからstdioで起動できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sbrunner-atx-serial-console": {
"command": "uvx",
"args": [
"serial-console-mcp"
]
}
}
}
起動コマンドuvx serial-console-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiserial-console-mcp0.3.2

ツール

30

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

serial-console-mcp

既存のコンソールポートを使って、通信機器の設定をAIで行います。

build PyPI  MIT ライセンス  ·  Python 3.10+  ·  ステータス:0.3.2、Juniper EX2200 のコンソールで実機検証済み

serial-console-mcp は、Claude などのAI アシスタントを、ネットワークやラジオ局を稼働させる機器、そしてシリアルポートを備えたあらゆる機器のシリアルコンソールに接続します。

  • ルーターとスイッチ。 Juniper(Junos)および Cisco(IOS、IOS-XE)のコンソールポートとクラフトポートに対応しています。ログイン、状態の確認、安全策を設けた設定変更(Junos の commit confirmed、IOS の reload in)、および接続時の状態への復元ができます。
  • 無線機。 CI-V 経由の Icom と Xiegu、テキスト CAT プロトコル経由の Kenwood、Yaesu、Elecraft に対応しています。無線機の識別、周波数とモードの読み取りや設定ができます。
  • アンテナローテーター。 Yaesu GS-232 と、それに対応する多数のコントローラーに対応しています。方位の読み取り、回転、停止ができます。
  • シリアルポートを備えたその他の機器。 通信機器に限定されません。このサーバーは生のバイト列をやり取りし、ANSI 出力を整形したり、VT100/xterm の画面全体を維持したりできるため、IoT ゲートウェイ、警報・入退室管理パネル、UPS や PDU のメニュー、実験機器、産業用コントローラー、Linux や BIOS のコンソール、マイクロコントローラーにも対応します。

やりたいことを自然な言葉で伝えるだけです。アシスタントはこのサーバーを介してコンソールを操作し、Claude Desktop は各手順の承認を求めます。同梱の操作スキルによって、Junos と IOS の基本(プロンプトが示すモード、モードへの入り方と抜け方、日常的な質問への回答に使う show コマンド)を学習できます。

Juniper のサポートは、実機の EX2200 コンソールで検証済みです。Cisco、CI-V、CAT、ローテーターのサポートはベンダーのプロトコル仕様に基づいていますが、この環境ではまだ実機で検証されていません。その他の機器タイプでは、機器固有のヘルパーではなく汎用ツールを使います。

プログラミングの知識は必要ありません。 インストール後は、Claude にいつもどおり話しかけるだけです。

あなた: どのシリアルポートが見えますか? Claude: 2つ見つかりました。1つは COM4 の Silicon Labs CP210x のようです。おそらくお使いのデバイスです。

あなた: COM4 に 9600 ボーで接続してください。 Claude: 接続しました。

あなた: ログインして、バージョンを表示してください。

仕組み(重要なポイント)

シリアルコンソールは、単純な一問一答のチャネルではありません。入力した内容がそのまま返され、通知なしのメッセージ(ログやインターフェースの状態変化)が自動で出力されることがあり、何ページもの出力を返すこともあります。そのため、ポートを開いた時点でバックグラウンドリーダーがデータを継続的に読み取り、バッファーに格納します。これにより Claude は次の操作ができます。

  • コマンドを送信する(書き込むだけで、応答の終了を推測しません)。次に、
  • プロンプト(# 、> 、login: など)が現れるまで読み取ることで、長い応答も途中で切らずに全体を取得する。
  • ストリーミング出力や通知なしの出力を取得するため、待機中のデータを読み取る。

これは minicom や expect が使うのと同じ方式で、インタラクティブな CLI を適切に扱えます。

ツール
ツール説明
list_serial_ports説明と USB ハードウェア ID を含むポート一覧を表示し、ここで開いているポートに印を付けます
list_presetsデバイスファミリーごとの一般的な設定:Cisco/Juniper/Linux コンソール、全画面コンソール(BIOS、BMC、メニュー)、Kenwood/Elecraft/Yaesu CAT、Icom と Xiegu CI-V、ローテーター、Arduino、NMEA GPS
connect / reconnect_last / disconnect名前でポートを開きます。デフォルトは 9600 8N1、フロー制御なしです。ボーレート、データビット、パリティ、ストップビット、RTS/CTS、XON/XOFF、行末、プロンプトはすべて設定可能で、プリセットから読み込むこともできます。複数のポートを同時に使用できます
send_keys / screen名前で Ctrl-C、Esc、Tab、矢印キー、F キーを押します。全画面コンソール(BIOS、BMC、メニュースイッチ、vi)の VT100/xterm 画面を表示します
send_text / send_hexASCII 行(CR/LF/CRLF/なし)または生の 16 進バイト列を書き込みます。書き込み専用です
read_until_promptバッファー内の出力を、リテラルまたは正規表現のプロンプトまで返し、残りは保持します。auto_reply は --More-- のページを読み進めます
read_availableテキストと 16 進数で、到着済みのデータを返します
query_textバッファーをクリアして送信し、プロンプトが表示されるか、行がアイドル状態になるまで読み取ります
expect1 回の呼び出しで、送信と待機を行うステップをスクリプト化したリストです。ログインやコマンドシーケンスに使用します
set_lines / pulse_line / send_breakDTR と RTS を制御します(PTT、Arduino のリセット)。BREAK を送信します
capture_start / capture_stop / get_transcriptセッションをファイルに記録します(生データ、またはタイムスタンプ付き TX/RX)。ローリングトランスクリプトを再読み込みします
port_in_use_by / detect_baudポートを使用中のプログラムを確認します。読み取り可能なテキストが得られるボーレートを確認します
cat_build / cat_parseKenwood、Elecraft、Yaesu の ; コマンド:周波数設定の作成、ID、FA、MD、IF、エラー応答のデコード
civ_build / civ_parse / civ_freqIcom CI-V フレーム:作成、デコード(エコーと応答、BCD 周波数、モード、PTT)、変換
rotator_build / rotator_parseGS-232 ローテーターコマンド(読み取り、移動、停止、速度)と位置応答
clear_buffer / status管理機能です。status は、制御線の状態とともに開いているすべてのポートを表示します

ポートは名前(「rig」、「rotator」)で開きます。ツールはデフォルトで、最後に 使用したポートを使います。各接続にはターミナルモードがあります。dumb(生バイト、デフォルト)、 ansi(色とエスケープシーケンスを除去し、CR/バックスペースによる上書きを適用します。 デバイスがスペースとバックスペースで画面を書き直した後も、表示どおりの行で プロンプトを照合します。コンソールプリセットで使用)、または xterm/vt100(screen で読み取れる実際の画面です。 pip install 'serial-console-mcp[screen]' が必要です。デスクトップ拡張機能には含まれています)。受信バッファーは ポートごとに 4 MB に制限されています。デバイスのストリームを何時間も読み取らずにいると、 古いバイト列が破棄され、その数が status に表示されます。

操作スキル

skills/ にある 3 つのスキルファイルは、fldigi-mcp のスキルと同じように、 エージェントに操作上の規律を教えます。これらを ~/.claude/skills/ またはプロジェクトの .claude/skills/ にコピーしてください。

スキル内容
serial-consoleコンソールのモデル、6 つのルール、ターミナルモード、キー、プリセット
junos-operatingプロンプトから判別する Junos のモード(% シェル、> 運用、# 設定)、BSD シェルからの脱出と復帰、configure exclusive、show | compare、commit confirmed、rollback、cli -c と start shell、EX2200 で確認済みのヘルスおよびインターフェース表示コマンド(show chassis routing-engine、show interfaces terse/brief)
ios-operatingIOS のモード(>、#、(config)#)、enable/configure terminal/end、安全策としての reload in 10、write memory、日常的な表示コマンド(show ip interface brief、show processes cpu sorted)
環境変数
変数効果
SERIAL_CONSOLE_READ_ONLY=1読み取り形式のコマンド(show、ID;、CI-V の読み取り)を除く書き込みを拒否し、制御線の変更も拒否します
SERIAL_CONSOLE_ALLOW=<regex>読み取り専用の許可リストを上書きします
SERIAL_CONSOLE_IDLE_MINUTES=15指定した時間アイドル状態のポートを自動的に閉じます(デフォルト:無効)

サーバーの設定を claude_desktop_config.json の "env" の下に設定します。

インストール

  1. リリースページから serial-console-mcp.mcpb をダウンロードします。 同じファイルを Mac、Windows、Linux で使用できます。
  2. Claude Desktop で Settings → Extensions → Advanced settings → Install Extension… に進み、ファイルを選択します。短い設定フォームで読み取り専用モードとアイドルタイムアウトを設定できます。どちらも有効にしない限りオフです。
  3. 新しいチャットで、**「どのシリアルポートが見えますか?」**と入力します。Claude がポートを一覧表示したら完了です。

ターミナルも、Python も、手動で設定する項目もありません。

0.3.x の .pkg または .exe インストーラーからアップグレードしますか? Claude Desktop がサーバーを 2 つ起動しないように、まず古いコピーを削除してください。Mac では次のコマンドを実行します。

"/Library/Application Support/SerialConsoleMCP/serial-console-mcp" configure --remove
sudo rm -rf "/Library/Application Support/SerialConsoleMCP"

Windows では、Settings → Apps で Serial Console MCP をアンインストールします。その後、Claude Desktop を終了して再起動します。

PyPI からのインストール

Python 3.10 以降と uv または pipx がすでにインストールされている場合は、拡張機能を使わずにインストールできます。

uvx serial-console-mcp --version                                   # fetches and runs it
uvx serial-console-mcp configure --command uvx --arg serial-console-mcp

または

pipx install serial-console-mcp
serial-console-mcp configure --command "$(which serial-console-mcp)"

configure は claude_desktop_config.json に serial-console エントリーを書き込みます(既存の設定とマージし、最初に古いファイルをバックアップします)。 Claude Desktop を終了して再起動します。serial-console-mcp configure --remove で設定を元に戻せます。他の MCP クライアントも、stdio 経由で同じコマンドを起動できます。

ソースからのインストール(開発者向け)

git clone https://github.com/sbrunner-atx/serial-console-mcp.git
cd serial-console-mcp
uv sync                       # or: python3 -m venv .venv && . .venv/bin/activate && pip install -e . pytest
uv run pytest                 # fake serial port, no hardware needed
uv run serial-console-mcp configure --command "$PWD/.venv/bin/serial-console-mcp"

パッケージは src/serial_console_mcp/ にあります。server.py は MCP サーバー、configure.py は Claude Desktop の登録スクリプトです。manifest.json はデスクトップ拡張機能を記述するファイルで、npx @anthropic-ai/mcpb pack でビルドできます。BUILD.md では、提供終了となった .pkg および .exe インストーラーについて説明しています。

使い方

自然な言葉で依頼できます。例:

  • 「シリアルポートを一覧表示して。」
  • 「/dev/cu.usbserial-10 のコンソールに 9600 ボーで接続して。」
  • 「/dev/cu.BLTH に 38400 ボー、データビット 8、パリティなし、ストップビット 1、XON/XOFF フロー制御で接続して。」
  • 「kenwood-cat プリセットを使って Kenwood に接続し、rig という名前を付けて。もう一方のポートでローテーターに接続して。」
  • 「admin としてログインして show version を実行して」(expect を 1 回呼び出し:復帰、ログイン、パスワード、コマンド)。
  • 「この機器のボーレートはいくつ?」(detect_baud)。
  • 「rig のキーを 2 秒間押して」(確認後に pulse_line("RTS", 2000))。
  • 「IC-7300 に周波数を問い合わせて」(civ_build、send_hex、read_available、civ_parse)。
  • 「TS-590 は何にチューニングされている?」(query_text("FA;")、cat_parse)。
  • 「ローテーターを 45 度に回して確認して」(rotator_build、query_text、rotator_parse)。
  • 「このコンソールセッションをファイルに記録して。」
  • 「Ctrl-C を送って。ping がまだ実行中だから。」(send_keys)
  • 「BIOS コンソールを 115200 で開いて画面を見せて。2 行下に移動して Enter を押して。」(screen-console プリセット、screen、send_keys)
  • 「前回と同じポートに再接続して。」(接続を記憶しています)
  • 「復帰を送ってから、ログインプロンプトが表示されるまで読み取って。」
  • 「admin としてログインして show interfaces terse を実行し、全件を表示して。」
  • 「今、デバイスが出力しているものをそのまま読み取って。」
  • 「終わったら切断して。」

ルーターやスイッチのコンソールでは、待機するプロンプトを Claude に伝えてください(多くの場合、特権モードでは # 、ユーザーモードでは > )。Claude はそのプロンプトを検出するまで読み取ります。Icom の無線機(CI-V)では、Claude に伝えてください。無線機が必要とする 16 進数コマンドを送信できます。

うまく動作しない場合

「シリアルポートが見つかりません。」

  • デバイスの電源は入っていますか?
  • USB ケーブルは充電専用ではなく、データ通信に対応したケーブルですか?(よくある見落としです。)
  • Windows の場合は、デバイス マネージャーを開き、**ポート(COM と LPT)**を確認してください。何も表示されない場合は、ケーブルのドライバー(多くの場合、FTDI、CP210x、または CH340)が必要です。

「ポートを開けませんでした」/「アクセスが拒否されました。」

  • シリアルポートを使用できるプログラムは一度に 1 つだけです。ターミナル(PuTTY/minicom/screen)、WSJT-X、コンテスト用ログソフト、デバイス付属のソフトウェアなど、ポートを使用している可能性のあるものをすべて終了してください。

Claude がシリアルポートにまったくアクセスできないと言います。

  • インストール後、Claude Desktop を完全に終了してから再起動したことを確認してください。
  • 新しいチャットを開始し、「どのシリアルポートが見えますか?」ともう一度尋ねてください。

接続できましたが、コマンドを送っても応答がありません。

  • ほとんどの場合、ボーレートか、機器に適した行末文字が正しくありません。Unix 系のコンソールでは通常、改行(LF)を使い、無線機では通常、復帰(CR)を使います。Claude にまず復帰を送信して、新しいプロンプトを表示するよう頼んでください。

安全性について

このツールは、あなたが(Claude を通じて)送信するよう指示した内容を、ケーブルで接続されているデバイスにそのまま送信します。Claude Desktop ではツール呼び出しごとに承認を求められるため、実行前にすべてのコマンドを確認できます。内容をよく読んでください。ルーターや無線機のコンソールセッションでは、設定変更、再起動、送信が行われる可能性があります。このサーバーは、どのコマンドが危険かを推測しません。問題がありそうな場合は拒否し、アシスタントに入力させたくない操作には、実際のターミナルを使ってください。

ライセンス

MIT。LICENSEを参照してください。

73!

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。