wsjtx-mcp について
wsjtx-mcpは、UDPメッセージプロトコル経由でWSJT-Xの微弱信号通信を操作するMCPサーバーです。アマチュア無線の運用者向けに、状態やデコードを継続監視し、コールサインで送信操作を制限します。
主な機能
- 01状態、デコード、完了したQSOの取得
- 02CQ/QRZデコードへの応答
- 03フリーテキスト設定と送信制御
- 04モード、受信設定、局位置の構成
- 05バンドアクティビティと構成の管理
活用シーン
- 01WSJT-Xの状態とデコードの確認
- 02受信したCQへの応答
- 03記録済みQSOをログツールへ渡すための取得
MCP 対応
MCPクライアントにWSJT-X操作ツールを提供し、UDPブロードキャストを監視して制御メッセージを送信します。コールサイン未設定時は受信専用となり、送信開始操作を拒否します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx wsjtx-mcpWSJTX_CALLSIGNOperator callsign — the single transmit gate. Blank = receive-only (refuses all transmit-initiating messages).WSJTX_HOSTAddress to bind/receive WSJT-X UDP broadcasts on. For a remote WSJT-X use 127.0.0.1 with the mcp-host-bridge 'wsjtx' service and set the port to 2238.WSJTX_PORTWSJT-X Settings → Reporting → UDP Server port. Default 2237. Enable 'Accept UDP requests' for control.WSJTX_MULTICASTOptional multicast group to join so multiple UDP consumers can coexist. Blank = unicast.WSJTX_INSTANCEOptional WSJT-X instance Id to target when several broadcast here.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
14掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
wsjtx-mcp
Claude Desktop や MCP Inspector などの MCP クライアントから WSJT-X (FT8/FT4/JT65/MSK144/Q65/WSPR…)を操作する MCP サーバーです。
アマチュア無線の「操作 → ログ」トリオにおける弱信号通信の役割を担います。
- fldigi-mcp — fldigi(XML-RPC)を介して幅広いデジタルモードを操作します。
- n3fjp-mcp — N3FJP(TCP API)に交信記録を記録します。
- wsjtx-mcp (このプロジェクト) — WSJT-X(UDP メッセージプロトコル)を介して、FT8/FT4 の弱信号通信を操作します。
⚠️ 実験的(v0.1)です。 送信はコールサインによって制限され、オペレーターが操作の主導権を保ちます。送信時の安全性のセクションをお読みください。
異なる点
WSJT-X はリクエスト/レスポンス API を提供していません。UDP 経由で状態(Status、Decode、QSOLogged、Heartbeat、…)をブロードキャストし、少数の受信制御メッセージに応答します。そのため、このサーバーはバックグラウンド UDP リスナーを実行し、データグラムを継続的に解析して、最新の状態、デコードのバッファ、完了した交信を保持します。これらを読み取り、制御メッセージを送って WSJT-X を操作します。
事前に知っておくべき点は次のとおりです。
- UDP 経由でダイヤル周波数を制御することはできません。
Statusからダイヤル周波数を読み取り、configureでモード/サブモード/Rx DF/T-R 周期を設定できますが、QSY はこのサーバーではなく、無線機制御(Hamlib/CAT または UI)の役割です。 - 送信の開始と停止はできますが、「Enable Tx」は切り替えられません。 送信は CQ への応答(
reply)、またはsend=trueを指定したfree_textで開始し、transmit haltで停止します。「Enable Tx」「Auto Seq」「Call 1st」「Hold Tx Freq」のチェックボックスを操作する UDP コマンドはありません。これらは UI の設定のままです。 replyでハンズフリーの交信ができるのは、WSJT-X の「Auto Seq」がオンの場合だけです。replyは CQ のダブルクリックに相当します。Auto Seq が有効(FT8/FT4 では通常デフォルト)なら、WSJT-X は追加の操作なしに交信全体を進め、QSOLoggedまで処理します。Auto Seq がオフの場合、replyで開始するのは最初の送信だけです。- サーチ・アンド・パウンスに最適で、RUN には向いていません。 API は CQ への応答(CQ/QRZ デコードのみ)を目的としているため、S&P は完全に自動化できます。一方、繰り返しCQ を呼び出す(RUN)サイクルを制御する適切な方法はありません。そのためには WSJT-X 独自の「Enable Tx」を使うか、各周期で
free_textの CQ を再送信する必要があります。
要件
- WSJT-X 2.1~3.x — UDP メッセージプロトコルは schema 3 / Qt_5_4 で、これらのリリース間で安定しています(WSJT-X 3.0.2 で実機検証済み)。
- WSJT-X で、Settings → Reporting → UDP Server を設定します。
- UDP Server = このサーバーを実行するホスト(デフォルト
127.0.0.1)、ポート2237。 - 制御を許可するには、Accept UDP requests = ON にします(デフォルトでは OFF です)。 デコード/状態の監視には不要ですが、コマンドの送信には必要です。
- UDP Server = このサーバーを実行するホスト(デフォルト
インストール(Claude Desktop)
最新リリースから
wsjtx-mcp.mcpbをダウンロードしてダブルクリックするか、Claude Desktop の Settings → Extensions にドラッグします。設定フォームにコールサイン、ホスト、ポートを入力してください。docs/INSTALL.mdを参照してください。
設定
| 変数 | デフォルト | 用途 |
|---|---|---|
WSJTX_HOST | 127.0.0.1 | UDP アドレス。バインドしてリッスンします。 |
WSJTX_PORT | 2237 | WSJT-X UDP Server のポートです。 |
WSJTX_CALLSIGN | (empty) | オペレーターのコールサイン — 唯一の送信許可条件です。空欄の場合は受信専用です。 |
WSJTX_MULTICAST | (off) | 他の UDP コンシューマーと共存するため、任意で参加するマルチキャストグループを指定します。 |
WSJTX_INSTANCE | (auto) | 複数の WSJT-X インスタンスがブロードキャストしている場合に、対象とする WSJT-X Id を指定します。 |
ホスト/ポートはこのサーバーがリッスンする場所です。制御応答は、各データグラムの送信元アドレスに返されます。
ツール
| ツール | 種類 | 機能 |
|---|---|---|
status | 監視 | 最新の Status スナップショットと、リスナー/インスタンスの健全性を確認します。 |
diagnostics | 監視 | ホスト/ネットワーク、バインド状態、データグラム数、ゲートの状態を確認します。 |
decodes | 監視/操作 | read / drain(新着をポーリング)/ clear_local / replay。RX プレーンです。 |
log | 監視 | バッファーされた完了済み QSO(QSOLogged + LoggedADIF)を N3FJP に送信します。 |
reply | 送信 | バッファーされた CQ/QRZ のデコードに応答します(WSJT-X の「Auto Seq」がオンの場合、QSO を自動で順次進行させます)。 |
free_text | send の場合は 送信 | Tx5 のフリーテキストメッセージを設定します。send=true の場合、無線機をキーイングします。 |
transmit | 制御 | halt / halt_auto — 送信を停止します(UDP では Tx を有効化できません)。 |
configure | 制御 | モード/サブモード/Rx DF/T-R 周期/周波数許容差/DX コールサイン+グリッドを設定します。ダイヤル周波数は設定できません。 |
clear | 制御 | Band Activity / Rx Frequency ウィンドウをクリアします。 |
highlight | 制御 | Band Activity 内のコールサインに色を付けるか、色をクリアします。 |
location | 制御 | セッションの Maidenhead グリッドを上書きします。 |
switch_config | 制御 | 名前を指定して WSJT-X の設定を切り替えます。 |
annotate | 制御 | DX コールに Fox/Hound の並べ替え順序の注釈を設定します(限定的な用途、DX ペディション向け)。 |
wsjtx_call | 代替手段 | 名前で任意のメッセージタイプを作成して送信します(ゲートは引き続き適用されます)。 |
送信の安全性
コールサインが唯一の送信ゲートです。これは fldigi-mcp と同じです。WSJTX_CALLSIGN が空の場合、サーバーは受信専用となり、送信を開始するすべてのメッセージを拒否します。対象は reply、send=true を指定した free_text、および wsjtx_call 経由のキーイングメッセージです。transmit halt、clear、configure、highlight、location、replay、すべての読み取りは常に利用できます(電波を発射するものではありません。halt は送信を停止します)。
このゲートに加えて、次の安全策があります。
- 送信ごとの承認は Claude Desktop のツール権限プロンプトで行われます。人間が関与する制御に活用してください。
- WSJT-X 独自の Tx Watchdog と、
statusに表示されるTx Enabled/Transmittingフラグも、追加の安全シグナルです。 - Part 97 に基づく自動/リモート制御で運用する際の責任はオペレーターにあります。局の識別と、介入可能な制御オペレーターを確保してください。
他の UDP ツールとの同時実行
通常、1 台のホストで UDP 2237 を所有できるプロセスは 1 つだけです。JTAlert、GridTracker、または N1MM がすでに使用している場合は、WSJT-X のセカンダリ UDP サーバーをこちらに向けるか、複数のリスナーが共存できるマルチキャストグループ(WSJTX_MULTICAST)を使用するか、このサーバーを別のホストで実行してください。別のマシン上の WSJT-X に接続するには、mcp-host-bridge ツール(mcp-host-bridge install wsjtx --to <rig-host>)をインストールし、WSJTX_PORT=2238 を設定します。サンドボックス化された MCP クライアントがアクセスできるのはループバックだけで、ブリッジが LAN への中継を担います。docs/REMOTE-HOST.md を参照してください。
開発
uv sync
uv run ruff check .
uv run pytest
プロトコルコーデックは標準ライブラリのみで実装され、バイトフィクスチャに対するユニットテストも行われているため、テストの実行に WSJT-X は不要です。smoke_test.py では、稼働中の WSJT-X に受信専用で接続できることを確認します。実地検証済みのメッセージリファレンスは docs/WSJTX-API.md にあります。
ライセンス
MIT © 2026 Stefan Brunner (AE5VG)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。