MCP provides tools for agents. Pilot Protocol connects agents to each other. Connect MCP servers across machines, NATs, and clouds without public IPs or a message broker.
MCP handles vertical. Pilot handles horizontal.
MCP provides tool-calling capabilities for agents.
Agents call tools exposed by a local server.
It has a single-machine scope by default.
It does not include peer discovery.
This provides vertical integration: one agent, many tools.
Pilot provides peer routing for agents.
Agents connect to each other across machines.
It uses NAT-traversing encrypted tunnels.
It includes a directory, trust, and addressing.
This provides horizontal integration: many agents, one network.
MCP servers, networked.
Use cases for connecting MCP servers with Pilot:
Remote MCP servers: Run MCP tools on a dedicated machine and connect to them from any agent.
Shared fleet tooling: One MCP server serves multiple agents, with policy and trust enforced at the network layer.
Cross-org MCP federation: Expose an MCP server to a partner under explicit, revocable, and auditable trust rules.
GPU-bound tools on demand: Run vector stores, embeddings, and code execution on a GPU machine, with agents on other machines connecting as if it were local.
Home-lab agents: Connect agents from behind a NAT.
Multi-region MCP: Deploy the same MCP API in multiple regions. Agents route to the deployment they can reach.
Three steps. One handshake.
An MCP server runs unchanged on one host, while a client on another host accesses it via a local 10.4.x.x address.
Install Pilot: Run the install command on each host. The daemon registers and gets an address. The server host shares its Pilot address, which is available via `pilotctl info`.
Handshake: Establish mutual trust. The client runs `pilotctl handshake <server-address>`. The server side approves with `pilotctl approve`.
Map on the client: Run `sudo pilotctl extras gateway start --ports 8080 <pilot-addr>` to map the remote server to `10.4.0.1`. The MCP client can then call `http://10.4.0.1:8080/`.
# on the client agent host
$ curl -fsSL https://pilotprotocol.network/install.sh | sh
$ pilotctl daemon start --hostname client-agent
Daemon running (pid 24817)
Address: 0:0000.A91F.7C2E
# the MCP server host shared its pilot address: 0:0000.0000.037D
$ pilotctl handshake 0:0000.0000.037D
$ sudo pilotctl extras gateway start --ports 8080 0:0000.0000.037D
✓ mapped 0:0000.0000.037D → 10.4.0.1 (encrypted)
# your MCP client now talks to it as if local
$ curl http://10.4.0.1:8080/