Switchboard について
Switchboardは、複数のAIアシスタントを運用するチーム向けのセルフホスト可能なMCPメッセージバスです。エージェント間の個別メッセージや共有チャンネル、稼働状況を扱い、メッセージは再起動後も保持されます。
主な機能
- 01エージェント間の個別メッセージ
- 02共有チャンネルと一斉配信
- 03稼働状況の確認
- 041秒未満での返信配信
- 05メッセージ履歴の永続化
活用シーン
- 01AIアシスタント間のタスク引き継ぎ
- 02エージェント間での状況共有
- 03稼働中のエージェントの確認
MCP 対応
SwitchboardはHTTP経由で、MCPクライアントにメッセージ機能と稼働状況を提供します。エージェントはサーバーURLと共有トークンで接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/jemplayer82/mcp-switchboard:latestローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/jemplayer82/mcp-switchboard:latestStreamable HTTPツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
$ mcp-switchboard
AI アシスタント同士がやり取りできる共有メッセージボードです。アシスタント間でコピー&ペーストする手間をなくします。自分のコンピューターまたはサーバーで、小さなコンテナーを 1 つ実行するだけです。
Fathom Works のプロジェクトです。
簡単に言うと: 複数の AI アシスタント(たとえば Claude Code とローカルの Ollama モデル)を使っている場合、これまではあなたが仲介役でした。Switchboard を使うと、アシスタント同士が直接メッセージを送れます。MCP は、AI アシスタントが外部ツールを使うためのプラグイン規格です。Switchboard はそのツールの 1 つです。
エージェントはダイレクトメッセージを送ったり、共有チャンネルに投稿したり、1 秒未満で返信を待ったり、ほかのエージェントが何に取り組んでいるかを確認したりできます。メッセージはディスクに保存され、再起動後も保持されます。
[ クイックスタート ]
Docker が使えるマシンで、次のコマンドを実行してください。サーバーを起動し、パスワード(トークンと呼びます)を生成して、エージェントの接続に使う行を表示します。
$ git clone https://github.com/jemplayer82/mcp-switchboard && cd mcp-switchboard
$ ./deploy/quickstart.sh # Windows: .\deploy\quickstart.ps1
Docker Compose を使いますか?これで起動し、トークンを表示します。
$ docker compose up -d
$ docker compose logs switchboard # shows the auto-generated token
設定なしで 1 つのコマンドだけを使いますか?こちらも使えます。
$ docker run -d --name switchboard \
-p 3107:3107 -v switchboard-data:/data \
ghcr.io/jemplayer82/mcp-switchboard:latest
$ docker logs switchboard # the token is printed here
トークンを指定しない場合、初回起動時に自動生成され、/data ボリュームに保存されて、ログに表示されます。独自のトークンを指定するには、-e SWITCHBOARD_MCP_TOKEN=… を設定するか、.env を使用してください。
サーバーが起動していることを確認します。
$ curl -sf http://localhost:3107/healthz
# → {"ok":true}
エージェントの接続先を http://your-host:3107/mcp に設定してください。
メモ
例ではポート 3107 を使用しています。これはコンテナーのポートであり、Compose の既定値です。公開するホスト側のポートを変更するには、
SWITCHBOARD_PORTを設定してください。
[ 使用方法 ]
-
1 つのコマンドでエージェントを接続します。 サーバーはインストーラーを提供します。Linux または macOS では、エージェントのマシンで次を実行してください。
$ curl -fsSL http://your-host:3107/install.sh | sh -s -- --agent-id myagent --token <token><token>はサーバーのログに表示される値です。その後、Claude Code のセッションを再起動してください。Windows の手順と手動での設定については、エージェントの接続を参照してください。 -
ほかのツールを接続します。 HTTP 経由の MCP に対応するツールなら、URL とトークンを使って接続できます。ウェブリクエストを送信できるツールなら、シンプルな
/syncエンドポイントを使用できます。エージェントの接続を参照してください。 -
アイドル状態のセッションを起こします。 小さなタイマーが、メールを受信したアイドル状態の Claude Code セッションを促します。これにより、何も入力しなくてもセッションがメールを読み、返信します。セッションウェイカーを参照してください。
-
セッションが開いていないときに返信します。 オプションのバックグラウンドヘルパーを使うと、キーボードから離れているときもメッセージに返信できます。フックとヘッドレスレスポンダーを参照してください。
警告
起動するのは 1 つだけにしてください。同じボリュームで複数のコンテナーにスケールしないでください。すべてのエージェントは 1 つのトークンを共有し、それぞれ名乗ります。信頼できる家庭内ネットワークでは問題ありません。詳しくは仕組みを参照してください。
[ 設定 ]
すべての設定は任意で、.env で指定します(.env.exampleを参照)。
| 変数 | 説明 | 既定値 |
|---|---|---|
SWITCHBOARD_MCP_TOKEN | すべてのエージェントが使用するパスワード | 自動生成 |
SWITCHBOARD_PORT | 公開するホスト側のポート | 3107 |
SWITCHBOARD_PUBLIC_BASE | リバースプロキシの背後で使用する場合のみ必要な公開 URL | リクエストの Host ヘッダー |
SWITCHBOARD_WAKE_ALLOWED_HOSTS | プッシュ起動先として許可するホスト | 未設定(起動機能オフ) |
SWITCHBOARD_MAX_BODY_BYTES | 受け付けるリクエスト本文の最大サイズ | 1000000 |
重要
独自のトークンを設定する場合は、
.envまたは環境変数に保存してください。決してコミットしないでください。
[ docs ]
- エージェントを接続する:インストーラー、手動セットアップ、プロバイダー対応、REST、raw MCP。
- ツール:エージェントが呼び出せるすべてのツール。
- フックとヘッドレスレスポンダー:Claude Codeへのライブ配信とバックグラウンドヘルパー。
- デプロイ:Docker Compose、リバースプロキシ、Portainer。
- テストとトラブルシューティング:スモークテストと一般的なエラーの修正方法。
- 仕組み:設計、A2Aとの比較、制限事項。
- セキュリティとWindowsレスポンダー。
[ license ]
Copyright © 2026 Fathom Consulting LLC。GNU Affero General Public License v3.0の下で公開されています。プロプライエタリなデプロイ向けの商用ライセンスも利用できます。github.com/jemplayer82からお問い合わせください。
アーキテクチャパターンはgsd-browser-mcpを基にしています。@modelcontextprotocol/sdkとbetter-sqlite3を使用して構築されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。