部署一个包含3个代理的MCP和A2A桥接集群。适用场景:1. 用户想要将MCP服务器或A2A代理桥接到Pilot网络 2. 用户正在协...
Deploy 3 agents: MCP gateway, A2A bridge, and tool registry.
RoleHostnameSkillsPurposemcp-gateway<prefix>-mcp-gwpilot-mcp-bridge, pilot-api-gateway, pilot-health, pilot-metricsBridges MCP tool serversa2a-bridge<prefix>-a2a-bridgepilot-a2a-bridge, pilot-task-router, pilot-audit-logConnects A2A protocol agentstool-registry<prefix>-tool-registrypilot-directory, pilot-discover, pilot-announce-capabilities, pilot-load-balancerCentral tool directory
Step 1: Ask the user which role and prefix.
Step 2: Install skills:
bash
# mcp-gateway:
clawhub install pilot-mcp-bridge pilot-api-gateway pilot-health pilot-metrics
# a2a-bridge:
clawhub install pilot-a2a-bridge pilot-task-router pilot-audit-log
# tool-registry:
clawhub install pilot-directory pilot-discover pilot-announce-capabilities pilot-load-balancer
Step 3: Set hostname and write manifest to ~/.pilot/setups/mcp-bridge-fleet.json.
Step 4: Both bridges handshake the registry.
json
{
"setup": "mcp-bridge-fleet", "role": "mcp-gateway", "role_name": "MCP Gateway",
"hostname": "<prefix>-mcp-gw",
"skills": {
"pilot-mcp-bridge": "Bridge MCP tool servers onto the Pilot network.",
"pilot-api-gateway": "Accept tool calls from Pilot agents.",
"pilot-health": "Monitor MCP server availability.",
"pilot-metrics": "Track tool call throughput and latency."
},
"data_flows": [
{ "direction": "send", "peer": "<prefix>-tool-registry", "port": 1002, "topic": "tool-register", "description": "Register MCP tools" },
{ "direction": "receive", "peer": "<prefix>-tool-registry", "port": 1002, "topic": "tool-call", "description": "Incoming tool calls" },
{ "direction": "send", "peer": "<prefix>-tool-registry", "port": 1002, "topic": "tool-result", "description": "Tool call results" }
],
"handshakes_needed": ["<prefix>-tool-registry"]
}
json
{
"setup": "mcp-bridge-fleet", "role": "a2a-bridge", "role_name": "A2A Bridge",
"hostname": "<prefix>-a2a-bridge",
"skills": {
"pilot-a2a-bridge": "Connect Google A2A protocol agents to Pilot.",
"pilot-task-router": "Route tasks between A2A and Pilot agents.",
"pilot-audit-log": "Log all cross-protocol task routing."
},
"data_flows": [
{ "direction": "send", "peer": "<prefix>-tool-registry", "port": 1002, "topic": "tool-register", "description": "Register A2A agents" },
{ "direction": "receive", "peer": "<prefix>-tool-registry", "port": 1002, "topic": "tool-call", "description": "Incoming task routes" }
],
"handshakes_needed": ["<prefix>-tool-registry"]
}
json
{
"setup": "mcp-bridge-fleet", "role": "tool-registry", "role_name": "Tool Registry",
"hostname": "<prefix>-tool-registry",
"skills": {
"pilot-directory": "Central directory of all available tools.",
"pilot-discover": "Serve capability queries from agents.",
"pilot-announce-capabilities": "Accept tool registrations from bridges.",
"pilot-load-balancer": "Balance tool calls across multiple providers."
},
"data_flows": [
{ "direction": "receive", "peer": "<prefix>-mcp-gw", "port": 1002, "topic": "tool-register", "description": "MCP tool registrations" },
{ "direction": "receive", "peer": "<prefix>-a2a-bridge", "port": 1002, "topic": "tool-register", "description": "A2A agent registrations" },
{ "direction": "send", "peer": "<prefix>-mcp-gw", "port": 1002, "topic": "tool-call", "description": "Route tool calls to MCP" },
{ "direction": "send", "peer": "<prefix>-a2a-bridge", "port": 1002, "topic": "tool-call", "description": "Route tasks to A2A" }
],
"handshakes_needed": ["<prefix>-mcp-gw", "<prefix>-a2a-bridge"]
}
mcp-gateway → tool-registry : MCP tool registrations (port 1002)a2a-bridge → tool-registry : A2A agent registrations (port 1002)tool-registry → mcp-gateway : tool call routing (port 1002)tool-registry → a2a-bridge : task routing (port 1002)bash
# On mcp-gateway — register a tool:
pilotctl --json publish <prefix>-tool-registry tool-register '{"name":"web-search","protocol":"mcp"}'
# On tool-registry — route a call:
pilotctl --json publish <prefix>-mcp-gw tool-call '{"call_id":"C-401","tool":"web-search","params":{"query":"Pilot Protocol"}}'
# On mcp-gateway — return result:
pilotctl --json publish <prefix>-tool-registry tool-result '{"call_id":"C-401","result":{"url":"https://pilotprotocol.network"}}'
Requires pilot-protocol skill, pilotctl binary, clawhub binary, and a running daemon.