# Pilot MCP Bridge Fleet Setup

> Deploy an MCP and A2A bridge fleet with 3 agents. Use this skill when: 1. User wants to bridge MCP servers or A2A agents onto the Pilot network 2. User is configuring an MCP gateway, A2A bridge, or tool registry agent 3. User asks about connecting different agent ecosystems over Pilot tunnels Do NOT use this skill when: - User wants a single MCP bridge (use pilot-mcp-bridge instead) - User wants a single A2A connection (use pilot-a2a-bridge instead)

- Skill: `teoslayer/pilot-mcp-bridge-fleet-setup` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add teoslayer/pilot-mcp-bridge-fleet-setup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/teoslayer/pilot-mcp-bridge-fleet-setup/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- License: AGPL-3.0
- Author: TeoSlayer (https://skillmd.com/u/teoslayer)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/teoslayer/pilot-mcp-bridge-fleet-setup

---


# MCP Bridge Fleet Setup

Deploy 3 agents: MCP gateway, A2A bridge, and tool registry.

## Roles

| Role | Hostname | Skills | Purpose |
|------|----------|--------|---------|
| mcp-gateway | `<prefix>-mcp-gw` | pilot-mcp-bridge, pilot-api-gateway, pilot-health, pilot-metrics | Bridges MCP tool servers |
| a2a-bridge | `<prefix>-a2a-bridge` | pilot-a2a-bridge, pilot-task-router, pilot-audit-log | Connects A2A protocol agents |
| tool-registry | `<prefix>-tool-registry` | pilot-momy, pilot-discover, pilot-announce-capabilities, pilot-load-balancer | Central tool directory |

## Setup Procedure

**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-momy 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.

## Manifest Templates Per Role

### mcp-gateway
```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"]
}
```

### a2a-bridge
```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"]
}
```

### tool-registry
```json
{
  "setup": "mcp-bridge-fleet", "role": "tool-registry", "role_name": "Tool Registry",
  "hostname": "<prefix>-tool-registry",
  "skills": {
    "pilot-momy": "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"]
}
```

## Data Flows

- `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)

## Workflow Example

```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"}}'
```

## Dependencies

Requires `pilot-protocol` skill, `pilotctl` binary, `clawhub` binary, and a running daemon.

