MCP provides tools for agents. Pilot connects agents to each other. This allows connecting MCP servers across machines, NATs, and clouds without public IPs or a message broker.
MCP and Pilot capabilities
MCP provides tool-calling for agents.
Agents call tools exposed by a local server.
Scope is a single machine by default.
No peer discovery.
Pilot provides peer routing for agents.
Agents connect to each other across machines.
Provides NAT-traversing encrypted tunnels.
Includes a directory, trust, and addressing.
Use cases
Remote MCP servers: Run MCP tools on a dedicated machine and connect to them 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 federation: Expose an MCP server to a partner with explicit, revocable trust rules.
GPU-bound tools on demand: Run vector stores, embeddings, and code execution on a GPU machine. Agents on other machines connect as if the tools were local.
Home-lab agents: Agents behind a NAT can be reached.
Multi-region MCP: Deploy the same MCP API in multiple regions. Agents route to the most reachable and fastest instance.
Setup
Install Pilot on each host. The daemon registers the host and gets an address.
Expose the MCP port on the server host. The existing MCP server is now reachable over the overlay network.
Map the port on the client. After a handshake, map the remote host's port to localhost. Any MCP client can call it 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)