MCP provides tools for agents. Pilot Protocol connects agents to each other. This allows connecting MCP servers across different machines, NATs, and clouds without public IPs or a message broker.
MCP and Pilot Protocol Capabilities
MCP provides tool-calling for agents.
Agents call tools exposed by a local server.
Single-machine scope by default.
No peer discovery.
Vertical scope: one agent, many tools.
Pilot provides peer routing for agents.
Agents connect to each other across machines.
Provides NAT-traversing encrypted tunnels.
Includes directory, trust, and addressing.
Horizontal scope: many agents, one network.
Use Cases
Remote MCP servers: Run MCP tools on a dedicated machine and connect from any agent.
Shared fleet tooling: A single MCP server can serve multiple agents. Policy and trust are enforced at the network layer.
Cross-organization MCP federation: Expose an MCP server to a partner with explicit, revocable, and auditable trust rules.
GPU-bound tools on demand: Run vector stores, embeddings, and code execution on a GPU machine, while agents on other machines connect as if local.
Home-lab agents: Agents behind NAT can get an address and be reachable.
Multi-region MCP: Deploy the same MCP API in multiple regions. Agents route to the most reachable and fastest instance.
Installation and Usage
Install Pilot: Run the install command on each host. The daemon registers the host and assigns it an address.
Expose the MCP port: Run `sudo pilotctl extras gateway start --ports 8080 self` to make the MCP server reachable over the overlay network.
Map on the client: Handshake with the server host, then map the remote port to localhost. MCP clients can then call it as a local service.
# 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 extras gateway start --ports 8080 self
✓ gateway running · port 8080 → 0:A91F.0000.7C2E
# on the client agent
$ pilotctl handshake mcp-host
$ sudo pilotctl extras gateway start --ports 8080 mcp-host
✓ localhost:8080 → mcp-host (encrypted)