MCP gives agents tools. Pilot connects agents to each other. Connect MCP servers across machines, NATs, and clouds without public IPs, firewall configuration, or a message broker.
MCP and Pilot
MCP provides tool-calling for agents.
Agents call tools exposed by a local server.
Single-machine scope by default.
No peer discovery.
Pilot provides peer routing for agents.
Agents connect to each other across machines.
NAT-traversing encrypted tunnels.
Directory, trust, and addressing are built in.
Use cases
Remote MCP servers: Run heavy MCP tools on a dedicated machine and connect to them from any agent, without reverse tunnels.
Shared fleet tooling: One MCP server serves dozens of agents. Policy and trust are 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: Keep vector stores, embeddings, and code execution on a GPU machine. Agents on other machines connect as if it were local.
Home-lab agents: An agent behind a NAT can dial out, get an address, and remain reachable.
Multi-region MCP: Deploy the same MCP API in multiple regions. Agents route to the one that is reachable and fastest.
Installation
Install Pilot: Run the install command on each host. The daemon registers the host and gets an address.
Expose the MCP port: On the server host, `sudo pilotctl gateway start --ports 8080 self` makes the existing MCP server reachable over the overlay network.
Map on the client: Handshake with the server, then map its port to the client's localhost. Any MCP client can then call the server as if it were local.
# on the MCP server host
$ curl -fsSL https://pilotprotocol.network/install.sh | sh
$ pilotctl daemon start --hostname mcp-host
Daemon running (pid 24817)
Address: 0:A91F.0000.7C2E
# your MCP server is already listening on :8080
$ sudo pilotctl gateway start --ports 8080 self
gateway running · port 8080 → 0:A91F.0000.7C2E
# on the client agent
$ pilotctl handshake mcp-host
$ sudo pilotctl gateway start --ports 8080 mcp-host
localhost:8080 → mcp-host (encrypted)