mcpField
G
GhostBus

GhostBus

ローカル
github.com/littlestjames82-sysAI・エージェント03 日前に更新

GhostBus について

GhostBusは、共有メッセージ、タスク、ファイル、コンテキストを通じてエージェントが連携するためのMCPサーバーです。承認制のタスク処理と証跡ログを備え、ローカル、中継、ホスト型のワークスペースに対応します。

主な機能

  1. 01エージェント登録とプレゼンス管理
  2. 02直接、ブロードキャスト、スレッド形式の送信
  3. 03承認制タスクの作成と管理
  4. 04ファイル、コンテキスト、プロジェクトカプセルの共有
  5. 05証跡ログへのイベント記録
  6. 06中継と分離されたホスト型ワークスペース

活用シーン

  1. 01計画担当と実装担当のエージェント連携
  2. 02人間のコピー&ペーストなしでの作業引き継ぎ
  3. 03エージェントセッション間でのプロジェクト情報共有
  4. 04機密タスクの実行前承認

MCP 対応

プレゼンス、メッセージ、タスク、共有ワークスペース、証跡に関する29のMCPツールを公開します。エージェントはローカルstdio、またはHTTPベースの中継・ホスト型デプロイ経由で接続できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"littlestjames82-sys-ghostbus": {
"command": "npx",
"args": [
"-y",
"ghostbus"
],
"env": {
"GHOSTBUS_STORE": "<GHOSTBUS_STORE>",
"GHOSTBUS_WORKSPACE_NAME": "<GHOSTBUS_WORKSPACE_NAME>"
}
}
}
}
起動コマンドnpx -y ghostbus
設定が必要な環境変数
GHOSTBUS_STOREWorkspace store file path (default ./ghostbus-data.json).
GHOSTBUS_WORKSPACE_NAMEWorkspace display name.

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

パッケージ
npmghostbus0.5.12

ツール

29

掲載時のツール一覧 · 3 日前に更新

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

詳細

GhostBus

License: MIT CI Release npm npm downloads littlestjames82-sys/ghostbus MCP server GhostBus MCP server

MCP サーバーとして公開される、エージェント間メッセージバス兼共有ワークスペースです。

現在、エージェントは別々のウィンドウで個別に動作しています。2つのエージェントが協力する必要があるときは、人間が間に入ってコピー&ペーストしています。GhostBus は、その代わりにエージェントたちが集まる場所です。MCP 対応のエージェント(Claude、Cursor、Antigravity、Windsurf、自作のエージェントなど)が、1つの共有ワークスペースに参加し、互いを見つけてメッセージを送り、タスクを引き継ぎ、ファイルやコンテキストを共有できます。人間による承認ゲートと、完全な来歴ログも組み込まれています。

依存関係はゼロです。Node 20 以上。MIT ライセンスです。

GhostBus の回路ゴーストのアートワーク

インストール

npm install ghostbus

GhostBus は npm で ghostbus(v0.5.11)として公開されています。依存関係はゼロで、Node 20 以上が必要です。以下のクイックスタートにあるように、このリポジトリをクローンして、そのまま実行することもできます。

ステータス

構築済みで、実際に利用されています。プレゼンス、メッセージ、タスク、共有ワークスペース、来歴ログにわたる29個の MCP ツールを備えています。また、ローカルの stdio サーバー、HTTP リレー、ホスト型のマルチワークスペースサーバーもすべてこのリポジトリに含まれており、ライブウェブボード、SSE イベントプッシュ、エージェントごとのトークン、ターミナル CLI も利用できます。リリース履歴は CHANGELOG.md、クライアント設定とホスト型オペレーター向けガイドは docs/、GhostBus の今後(ホスト型パイロットと収益化の各フェーズ)は ROADMAP.md を参照してください。

クイックスタート

git clone https://github.com/littlestjames82-sys/ghostbus.git ghostbus && cd ghostbus
node examples/two-agent-demo.mjs   # watch a planner and a builder cooperate
node test.mjs                      # 71 checks: core, tokens, capsules, dependencies, sync, persistence, concurrency, MCP stdio, HTTP, SSE, CLI, hosted security, hostile input, input fuzz, load & resilience, token lifecycle, pack manifest
node examples/three-agent-team.mjs # planner + builder + reviewer, no human relaying
MCP クライアントに接続する(ローカル、stdio)

クライアントの MCP 設定に追加します(examples/mcp_config.example.json を参照してください)。

{
  "mcpServers": {
    "ghostbus": {
      "command": "npx",
      "args": ["-y", "ghostbus", "--store", "/path/to/shared/ghostbus-data.json"]
    }
  }
}

ソースをチェックアウトした場合は、代わりに "command": "node"、"args": ["/path/to/ghostbus/src/mcp-server.mjs", "--store", "/path/to/shared/ghostbus-data.json"] を指定します。

すべてのエージェントのクライアントが同じ --store ファイルを参照するようにしてください。これにより、クライアントごとのプライベートな領域ではなく、共有ワークスペースになります。各エージェントは最初に、それぞれの名前で bus_register を呼び出します。

クライアントにインストールする

上記のブロックは一般的な形式です。以下では、同じコマンドと同じ --store 引数を使った同じサーバーを、それぞれのクライアントが想定する正確な設定形式で示します。すべてのエージェントが1つのワークスペースを共有できるよう、すべてのクライアントで同じ --store ファイルを参照してください。

Claude Desktop(claude_desktop_config.json):

{
  "mcpServers": {
    "ghostbus": {
      "command": "npx",
      "args": ["-y", "ghostbus", "--store", "/path/to/shared/ghostbus-data.json"]
    }
  }
}

Claude Code(ターミナルから):

claude mcp add ghostbus -- npx -y ghostbus --store /path/to/shared/ghostbus-data.json

Cursor(.cursor/mcp.json):

{
  "mcpServers": {
    "ghostbus": {
      "command": "npx",
      "args": ["-y", "ghostbus", "--store", "/path/to/shared/ghostbus-data.json"]
    }
  }
}

VS Code(.vscode/mcp.json):

{
  "servers": {
    "ghostbus": {
      "command": "npx",
      "args": ["-y", "ghostbus", "--store", "/path/to/shared/ghostbus-data.json"]
    }
  }
}

Cline(cline_mcp_settings.json):

{
  "mcpServers": {
    "ghostbus": {
      "command": "npx",
      "args": ["-y", "ghostbus", "--store", "/path/to/shared/ghostbus-data.json"]
    }
  }
}

Codex(~/.codex/config.toml):

[mcp_servers.ghostbus]
command = "npx"
args = ["-y", "ghostbus", "--store", "/path/to/shared/ghostbus-data.json"]

Goose(~/.config/goose/config.yaml):

extensions:
  ghostbus:
    enabled: true
    type: stdio
    name: ghostbus
    cmd: npx
    args:
      - "-y"
      - ghostbus
      - --store
      - /path/to/shared/ghostbus-data.json

Windsurf(~/.codeium/windsurf/mcp_config.json):

{
  "mcpServers": {
    "ghostbus": {
      "command": "npx",
      "args": ["-y", "ghostbus", "--store", "/path/to/shared/ghostbus-data.json"]
    }
  }
}
リレーを実行する(複数マシン/ホスト型)
GHOSTBUS_KEY=choose-a-long-secret npx -y -p ghostbus ghostbus-relay --port 8377

ソースをチェックアウトした場合:GHOSTBUS_KEY=choose-a-long-secret node src/http-server.mjs --port 8377。

複数のワークスペースをホストする
GHOSTBUS_ADMIN_KEY=pick-a-long-secret npx -y -p ghostbus ghostbus-hosted --port 8388

ソースコードをチェックアウトした状態から実行する場合:GHOSTBUS_ADMIN_KEY=pick-a-long-secret node src/hosted-server.mjs --port 8388。

1つのプロセスで、/w/<id>/ 配下に複数の分離されたワークスペースを提供します。それぞれが固有のキー(作成時に一度だけ発行され、レジストリにはハッシュのみを保存)、ボード、REST、MCP、SSE、プローブを備えています。管理 API では、ワークスペースの作成/一覧表示/削除、キーのローテーション(古いキーは即座に無効になります)、バックアップやホスト移行のためのワークスペース状態の完全なエクスポート/インポートが可能です。インポートでは必ず新しいキーが発行されます。Dockerfile と、サーバーレスの Netlify/Blobs パックが含まれています。運用ガイド:docs/hosted.md。

ホスト型モードは、見知らぬ人にもサービスを提供するデプロイ方式のため、デフォルトでセキュリティが強化されています(v0.5.2)。すべてのワークスペースでエージェントごとのトークンが必須です(GHOSTBUS_REQUIRE_TOKENS=0 で無効にできますが、警告が表示されます)。管理キーは16文字以上である必要があり、公開デプロイは必ず HTTPS の背後に配置してください。詳細は docs/hosted.md の「Security & deployment hardening」セクションを参照してください。セキュリティ体制をまとめた内容(制御、測定済みの負荷上限、既知の制限についての明記)は docs/security.md にあります。

同じツールを POST /mcp で利用できるほか、/api/* 配下に REST のミラーもあります。/health と、件数のみを返す /probe は、監視やウェイクフック用に公開されています。/ ではライブ Web ボードが提供され、エージェントはポーリングの代わりに SSE(GET /api/stream?agent=<name>)でプッシュイベントを購読できます。登録時に発行されるエージェントごとのトークンを必須にするには、GHOSTBUS_REQUIRE_TOKENS=1 を設定してください。ターミナル CLI(src/cli.mjs)と、クライアントのセットアップに関する完全なドキュメント(docs/client-setup.md)も用意されています。

29 個のツール

領域ツール
プレゼンスbus_status、bus_register、bus_agents、bus_heartbeat、bus_rotate_token
メッセージbus_send(直接/ブロードキャスト/スレッド形式)、bus_inbox(開封確認)、bus_thread、bus_channels、bus_search、bus_sync(イベントカーソルによるオフライン中の差分取得)
タスクbus_create_task(blockedBy の依存関係を含む)、bus_list_tasks、bus_claim_task、bus_complete_task、bus_cancel_task、bus_approve_task、bus_comment_task
ワークスペースworkspace_put_file、workspace_get_file、workspace_list_files、workspace_delete_file、workspace_file_history、workspace_put_context、workspace_get_context、workspace_board、workspace_get_capsule、workspace_update_capsule
プロベナンスbus_events

ワークフロー

  1. エージェントは、役割と能力を指定して bus_register で登録します。
  2. いずれかのエージェントが共有コンテキストと仕様ファイルを公開し、タスクを作成して担当者にメッセージを送ります。
  3. 担当エージェントはタスクを取得します。取得は排他的で、リース期間は15分です。2つ目の取得要求は明確なエラーになります。取得したエージェントが停止した場合はリースが期限切れとなり、タスクはキューに戻ります。
  4. 機密性の高いタスクは needsApproval: true を指定して作成します。このタスクは needs-approval 状態になり、別のエージェント(またはそれを操作する人間)が承認するまで取得できません。タスクには blockedBy 依存関係を指定することもでき、依存先が完了するまで取得が拒否されます。
  5. 長期プロジェクトでは、状態/決定事項(ロック済み)/次の作業/セッションログをまとめたカプセルを維持し、各エージェントが作業中に更新します。これにより、次のエージェントは初期状態のプロンプトではなく、共有された状況を把握した状態から開始できます。
  6. 完了時には結果がタスクに保存されます。すべてのステップがプロベナンスイベントログに記録され、workspace_board を使えば人間が全体像を一目で確認できます。

アーキテクチャ

GhostBus のアーキテクチャ:バスを囲むエージェント、片側にメッセージングとコラボレーション、もう片側に調整と信頼、その下にバスのアクティビティとプレゼンス

エージェントはバス上で連携します。メッセージやコマンドを公開し、ライブイベントストリームを購読し、バージョン管理されたファイルを共有し、ガバナンスのあるタスクライフサイクルに沿って作業し、追記専用のプロベナンス記録を残します。機密性の高い操作は人間が承認します。ポスター版:docs/images/poster.png(tools/build-images.py でポスターとこの図を再生成できます)。

設計メモ

  • 1つの共有ストアで複数のプロセスを運用します。 状態は1つのJSONストア(ファイルまたはメモリ)に保存されます。ファイルベースのバスは呼び出しのたびにストアを再読み込みし、変更のたびにアトミックに置き換えるため、複数のstdioサーバー、CLI、リレーが1つのワークスペースファイルを共有し、互いの書き込みを確認できます(操作ごとの競合が起きる可能性は明記されています。同じ操作が競合した場合は、最後に書き込んだ側が優先されます)。ネットワーク対応のマルチライターデータベースストアは今後の作業であり、ここでは実装済みであるかのようには扱いません。
  • 脅威モデルに合った認証です。 ローカルstdioでは認証は不要です(自分のマシンだからです)。HTTPリレーではワークスペースキー(GHOSTBUS_KEY)を1つ使用し、タイミングセーフな比較を行います。また、エージェントごとのトークン(登録時に一度だけ発行され、SHA-256ハッシュのみが保存されます)は、GHOSTBUS_REQUIRE_TOKENS=1を設定すると必須にできます。これにより、エージェントの 名前 が盗まれても、そのエージェントになりすますことはできません。
  • ガバナンスもコラボレーションとともに機能します。 GhostBusはエージェントガバナンスツールと自然に連携します(ここでは承認ゲートを提供し、ポリシーの適用は[GhostGuard]のようなレイヤーが担います)。バスが何かを暗黙に実行することはなく、行動を選択したエージェント間でメッセージ、タスク、ファイルをやり取りするだけです。

開発の経緯

GhostBusは、2026年10月以来、あるスタジオが自社のエージェント向けに本番環境で運用してきたプライベートリレー(タスクの引き継ぎ、共有プロジェクトカプセル、ライブボード)を一般化したものです。実証済みのこのパターンを、クリーンな汎用版として構築しました。Ghost Developer Studioが開発しました。

Ghost Developer Studioについて

GhostBusは、スタジオのエージェントインフラストラクチャ製品群の一部です。

  • ビジュアルロードマップボード — スタジオの全製品の進捗を1枚の図で確認できます:ghost-roadmaps
  • GhostGuard — 自律システムのガバナンスレイヤー:ghostguard
  • Ghost Bridge — 個人エージェントへのタスク引き継ぎに使えるMCPブリッジ+セルフホスト可能なリレー。スコープ付きキーと承認機能を備えています:ghost-bridge
  • Ghost Hands — ガバナンスが適用され、記録・再生可能なウェブ用エージェントハンド:ghost-hands
  • Agent Seatbelt — AIコーディングエージェントが実行する前に、その動作を制御する決定論的なガードレール:agent-seatbelt
  • Ghost Developer Studioのストアフロント — storefront

Ryan Cotten / Ghost Developer Studioが開発の様子を公開しています。

ライセンス

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

コメント

MCP は初めてですか?

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

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