mcp-a2a-bridge
mcp-a2a-bridge
コーディングエージェント(GitHub Copilot CLI、Claude Code、Codex、Hermes)がリモートのA2Aエージェントを呼び出せるようにするMCPサーバーです。また、オプションの読み取り専用アクティビティダッシュボードも含まれます。
リポジトリ: https://github.com/TonPC64/mcp-a2a-bridge
MIT Licenseの下でライセンスされています。
コーディングエージェント向けの手順は、AGENTS.mdから始め、インストールにはskills/setup/SKILL.md、変更やPRにはskills/contribute/SKILL.mdを使用してください。
ダッシュボードUIショーケース
オプションのダッシュボードは、未来的なLiquid Glassインターフェースを採用し、コンパクトなエージェントカード、ライブタスクアクティビティ、2カラムのタスクサマリー、ステータスインジケーター、レスポンシブレイアウトを備えています。このスクリーンショットはオプトインのフロントエンドモックデータモードを使用しているため、実際のエージェントに接続したりログを公開したりせずに安全に再現できます。

同じモックUIをローカルで実行するには:
cd /absolute/path/to/mcp-a2a-bridge/dashboard
npm ci
npm run dev:mock -- --host 127.0.0.1モックモードはUI開発とスクリーンショット専用です。通常のビルドでは、ライブのダッシュボードAPIとSSEを使用します。
Related MCP server: agntcy-mcp-server
はじめに
セットアップの選択
どちらのプロファイルもPython 3.11以降とuvが必要です。オプションのダッシュボードフロントエンドにはNode.js 24.15以降が必要で、CIは最新のNode.js 24リリースを使用します。
MCPのみ
MCPブリッジのみをインストールして実行します。Node.js/npmやダッシュボードのフロントエンドビルドは不要です。
git clone https://github.com/TonPC64/mcp-a2a-bridge.git mcp-a2a-bridge
cd mcp-a2a-bridge
uv sync --lockedMCP + ダッシュボード
オプションのダッシュボードWebランタイムをインストールし、バンドルされたフロントエンドアセットをビルドします。Node.jsとnpmが必要なのはこのビルド(またはフロントエンド開発)のときだけで、ビルド済みのダッシュボードを実行するのには不要です。
git clone https://github.com/TonPC64/mcp-a2a-bridge.git mcp-a2a-bridge
cd mcp-a2a-bridge
uv sync --extra dashboard --locked
npm --prefix dashboard ci
npm --prefix dashboard run build開発とテストには、uv sync --all-extras --lockedを使用します。これにはダッシュボードのテストスイートに必要なPythonパッケージが含まれます。以下のコマンドは/absolute/path/to/mcp-a2a-bridgeを使用します。これを自分のクローンの絶対パスに置き換えてください。他のユーザーのパスをコピーしないでください。
A2Aエージェントの設定
リポジトリのルートに.a2a-agents.jsonを作成します:
{
"agents": {
"example-agent": {
"url": "https://agent.example.invalid",
"headers": {
"Authorization": "Bearer REPLACE_WITH_YOUR_TOKEN"
}
}
}
}A2AエージェントのベースURLを使用します。ブリッジはその/.well-known/agent-card.jsonを自動的にリクエストします。エージェントが認証を必要としない場合は、Authorizationを削除するか、空のheadersオブジェクトを使用してください。レジストリには秘密情報が含まれる可能性があるため、コミットせず、必要に応じてファイルのパーミッションを制限してください。
レジストリの場所は次の順序で解決されます:
A2A_BRIDGE_CONFIGブリッジプロセスの現在のディレクトリにある
.a2a-agents.json~/.config/a2a-bridge/agents.json
リポジトリの外部でMCPコマンドを起動するホストの場合は、そのホストのMCP環境でA2A_BRIDGE_CONFIGに絶対パスを設定します。実行時にa2a_add_agentを使用して検証済みのエージェントを追加することもできます。デフォルトでは、解決されたレジストリファイルに書き込まれます。
MCPサーバーの登録
各ホストは、同じローカルチェックアウトのコマンドを起動する必要があります:
uv run --directory /absolute/path/to/mcp-a2a-bridge mcp-a2a-bridgeこれは、上記で作成した編集可能インストールを使用します。次のポータブルなパスプレースホルダーを使用してホストを設定します。
GitHub Copilot CLI — このサーバーを~/.copilot/mcp-config.jsonに追加します:
{
"mcpServers": {
"a2a": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/mcp-a2a-bridge",
"mcp-a2a-bridge"
]
}
}
}Claude Code:
claude mcp add a2a -- uv run --directory /absolute/path/to/mcp-a2a-bridge mcp-a2a-bridgeCodex — これを~/.codex/config.tomlに追加します:
[mcp_servers.a2a]
command = "uv"
args = ["run", "--directory", "/absolute/path/to/mcp-a2a-bridge", "mcp-a2a-bridge"]Hermes: MCPサーバー登録UIまたはコマンドを使用し、stdioサーバーを選択して、コマンドuvに次の引数を指定します:
run --directory /absolute/path/to/mcp-a2a-bridge mcp-a2a-bridge登録後にホストを再起動し、a2a_list_agentsを呼び出して、レジストリが利用可能でエージェントに到達可能であることを確認します。
ツール
ツール | 目的 |
| スキルと到達可能性を備えたエージェントを一覧表示する |
| メッセージを送信し、 |
| 以前に開始したタスクをポーリングする |
| 実行中のタスクをキャンセルする |
| URLでエージェントを登録する |
a2a_send_messageは最大timeout_s秒(デフォルトでは60秒)待機します。タスクがまだ実行中の場合は、task_idとともにdone: falseを返すため、a2a_get_taskでポーリングします。エージェントがstate: "input_required"を返す場合は、同じtask_idでもう一度a2a_send_messageを呼び出します。
ダッシュボード
オプションのスタンドアロンダッシュボードには、設定済みのエージェント、そのステータス/スキル、および同じマシン上のブリッジプロセスからのライブタスクアクティビティが表示されます。これは読み取り専用で、エージェントにメッセージを送信することはありません。
起動する前にdashboardプロファイルをインストールしてアセットをビルドします:
cd /absolute/path/to/mcp-a2a-bridge
uv sync --extra dashboard --locked
npm --prefix dashboard ci
npm --prefix dashboard run build
uv run mcp-a2a-bridge-dashboardデフォルトでは127.0.0.1:9100のみでリッスンします。同じマシンでhttp://127.0.0.1:9100を開きます。
フロントエンドのモックデータ
PythonサービスやSSEなしでダッシュボードUIを実行するには、オプトインのモックモードを使用します。スクリーンショット用の代表的なエージェントとタスクアクティビティが含まれています:
cd /absolute/path/to/mcp-a2a-bridge/dashboard
npm ci
npm run dev:mock -- --host 0.0.0.0同じネットワーク上でViteのURLを開きます。VITE_USE_MOCK_DATA=trueはフロントエンドのビルド/開発サーバーでのみ使用されます。通常のnpm run devおよび本番ビルドでは、引き続きライブのダッシュボードAPIとSSEを使用します。
ダッシュボードにアクティビティを表示したいすべてのブリッジプロセスでレポートを有効にします。この環境変数をMCPサーバー設定に追加します(または手動で起動するときに追加します):
A2A_BRIDGE_DASHBOARD=1 uv run --directory /absolute/path/to/mcp-a2a-bridge mcp-a2a-bridgeこのフラグがないブリッジプロセスはアクティビティをメモリ内に保持するため、共有ダッシュボードには表示されません。ダッシュボードはこれらのプロセスの前後どちらでも起動できます。
環境変数 | デフォルト | 目的 |
| — | エージェントJSONレジストリへの絶対パス |
| 未設定(オフ) |
|
|
| 共有SQLiteアクティビティデータベース |
|
| 互換プロセスによって書き込まれたアクティビティのソースラベル |
|
| ダッシュボードのバインドアドレス |
|
| ダッシュボードのポート |
| 未設定(オフ) | ダッシュボードとAPIを保護するオプションのベアラートークン |
| 未設定 | Hermesの |
| 未設定 | オーバーライドが設定されていない場合に |
LANへのデプロイ
ダッシュボードは、明示的な非ループバックバインドを設定することで、トークンなしで信頼できるLANに意図的に公開できます。このモードには認証がないため、プライベートで信頼できるネットワークでのみ使用し、パブリックインターネットには絶対に公開しないでください。
保護されたLANアクセスには、強力なトークンを設定し、独自のネットワークアクセス制御を備えたTLS終端リバースプロキシの背後にサービスを配置します:
export A2A_BRIDGE_DASHBOARD_HOST=0.0.0.0
export A2A_BRIDGE_DASHBOARD_TOKEN="$(openssl rand -hex 32)"
uv run mcp-a2a-bridge-dashboardトークンが設定されている場合、ダッシュボードのHTML、静的アセット、APIルート、SSEルートのすべてでそのトークンが必要になります。ブラウザユーザーは/loginで一度入力するだけで、生成されたHttpOnly、same-siteセッションCookieにより、EventSourceが正常に再接続できます。APIクライアントは代わりにAuthorization: Bearer <token>を送信することもできます。サービスがトークンをログに記録することはありません。トークンはアクセスを認証しますが、トラフィックを暗号化しないため、信頼できないネットワークを介して直接HTTP LANエンドポイントを使用せず、リバースプロキシでHTTPSを使用してください。
macOSの場合、launchd/com.example.a2a-bridge-dashboard.plistテンプレートを使用すると、ログイン時にダッシュボードを実行できます。LaunchAgentとしてインストールする前に、__REPO__と__HOME__のプレースホルダーを置き換えてください。
ダッシュボードフロントエンドの開発
Node.js 24.15+とnpmが必要になるのは、フロントエンドでの作業またはバンドルされたアセットの再ビルドのみです:
cd /absolute/path/to/mcp-a2a-bridge/dashboard
npm ci
npm run devViteは開発URL(通常はhttp://localhost:5173)を表示します。Pythonダッシュボードが使用するアセットは、npm run buildでビルドします。
Copilot A2Aサーバー
バンドルされたサーバーには、認証済みのcopilot CLIが必要です:
copilot-a2a-agent --port 9002 --cwd /path/to/default/repositoryCopilotを--allow-all-toolsで実行するため、127.0.0.1にバインドします。その受信アクティビティは、同じオプトインの共有SQLiteストアを使用でき、ダッシュボードでは送信元フィールドと宛先フィールド付きで表示されます。
ダッシュボードは、Hermesを変更することなく、Hermesのネイティブ監査ファイルを読み取ることもできます。A2A_BRIDGE_HERMES_AUDIT、次に$HERMES_HOME/a2a_audit.jsonl、そして~/.hermes/a2a_audit.jsonlの順にチェックします。
開発とテスト
リポジトリのルートからPythonテストスイートを実行します:
uv sync --all-extras --locked
uv run pytest -vdashboard/内でダッシュボードのテストを実行するか、本番用のダッシュボードビルドを作成します:
npm test
npm run buildCIはPython 3.11でPythonスイートを実行し、uv.lockを検証し、最新のNode.js 24リリースでダッシュボードのインストール、テスト、本番ビルドを実行します。
tests/test_integration.pyはA2Aエージェントをインプロセスで実行し、ブリッジをエンドツーエンドで検証します。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that gives AI agents the ability to discover, match with, and build relationships with other autonomous agents. Supports agent registration, matchmaking, messaging, shared goals, relationship lifecycle management, and real-time event subscriptions.51MIT
- AlicenseAqualityFmaintenanceEnables interaction with the AGNTCY multi-agent network through MCP, providing tools for agent registration, discovery, and messaging using ACP and SLIM protocols.7MIT

agentkit-meshofficial
AlicenseNot gradedqualityFmaintenanceEnables agent-to-agent discovery and delegation via MCP, with tools for registering agents, discovering them by keyword matching, and delegating tasks over HTTP.201MIT- AlicenseAqualityCmaintenanceMCP server for multi-agent AI systems providing mailbox messaging, A2A task delegation, resource coordination, and a web dashboard.2114MIT
Related MCP Connectors
Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.
Workflow diagnostics, capability routing, and x402 settlement for MCP-compatible agents.
Discover, search, invoke, and rate A2A (Agent-to-Agent) protocol agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TonPC64/mcp-a2a-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server