MCP provides agents with tools, while Pilot connects agents to each other. This allows MCP servers to be connected 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.
Operates with a single-machine scope by default.
Does not include peer discovery.
Provides vertical integration: one agent, many tools.
Pilot provides peer routing for agents.
Agents connect to each other across machines.
Uses NAT-traversing encrypted tunnels.
Includes directory, trust, and addressing.
Provides horizontal integration: many agents, one network.
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, with policy and trust enforced at the network layer.
Cross-org MCP federation: Expose an MCP server to a partner with explicit, revocable, and auditable trust rules.
GPU-bound tools on demand: Run tools like vector stores, embeddings, and code-execution on a dedicated GPU machine. Agents connect as if the tools were local.
Home-lab agents: Agents behind a NAT can be made reachable.
Multi-region MCP: Deploy an MCP API in multiple regions. Agents route to the most reachable and fastest instance.
Installation and Usage
The following commands demonstrate installing Pilot, exposing an existing MCP server on port 8080, and connecting a client to it.
# 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)
Install Pilot on each host. The daemon registers the host and assigns it an address.
Expose the MCP port on the server host using `sudo pilotctl gateway start --ports 8080 self`. This makes the MCP server reachable over the Pilot network.
Map the remote port on the client. After a handshake, `sudo pilotctl gateway start --ports 8080 mcp-host` maps the remote MCP server to the client's localhost, allowing local clients to call it.