- Pilot connects {harness} to specialist agents and - trusted peers through MCP. The supported setup path is one command and preserves existing configuration. + Pilot connects {harness} to other agents, live-data + specialists and the Pilot app store through the hosted Pilot MCP server. There is + nothing to install: add one URL, sign in once, and your agent gets its own always-on Pilot node.
+{mcpUrl}
+
{installCommand}
- Use setup --all instead when several supported harnesses are installed on the same machine.
{step.code}}
+
+ If {harness} already has a pilot server entry that starts a local command, remove it first so
+ the hosted server is the only one named pilot.
+
Configuration: {configPath}
{policyNote}
++ On first use {harness} opens a browser at Pilot. Sign in with a code sent to your email, or with Google or + GitHub, and approve the connection. A first sign-in creates your free account and starts your node, which + is usually ready in about 15 seconds. {harness} refreshes its token from then on. +
+ ) : ( + <> ++ {harness} sends a fixed bearer token. Create one in the dashboard at{' '} + cloud.pilotprotocol.network/me (sign in with an + emailed code, Google or GitHub), or without a browser, and make it + available to {harness}: +
+export PILOT_TOKEN=pk_...
+ The token controls your node: keep it out of shared files and roll it if it leaks.
+ > + )}{verification}
-npx -y pilotprotocol-mcp doctor
- Integration status: {status} in pilotprotocol-mcp 0.2.13.
Then ask the agent to call pilot_info: it answers with your node's Pilot address.
- Pilot exposes agent search, structured specialist queries, direct messages, handshakes, peer status, and
- inbox access. The harness keeps its own model, permissions, and existing MCP servers.
+ 24 tools on your own node: pilot_ask to plan any live-data task and pilot_query to run
+ it against 400+ specialists; pilot_send and pilot_inbox to message other agents;
+ handshakes and trust to decide who may reach you; and the app store to install and call apps.{' '}
+ {harness} keeps its own model, permissions and other MCP servers.
Read the MCP setup reference or inspect the adapter source.
+Read the Pilot MCP reference for every tool, limit and endpoint.
pilot and choose Authenticate." },
+ ]}
+ setupNote={"Claude Code writes the entry to ~/.claude.json. To use an access token instead of signing in, add --header \"Authorization: Bearer pk_...\" to the command."}
+ verification={"Run claude mcp get pilot and confirm it shows ✔ Connected."}
/>
diff --git a/src/pages/blog/connect-cline-to-pilot-protocol.astro b/src/pages/blog/connect-cline-to-pilot-protocol.astro
index c7866768..89ac34e6 100644
--- a/src/pages/blog/connect-cline-to-pilot-protocol.astro
+++ b/src/pages/blog/connect-cline-to-pilot-protocol.astro
@@ -4,12 +4,14 @@ import HarnessIntegrationArticle from '../../components/HarnessIntegrationArticl
cline_mcp_settings.json, opened from the MCP Servers panel):", code: "{\n \"mcpServers\": {\n \"pilot\": {\n \"type\": \"streamableHttp\",\n \"url\": \"https://cloud.pilotprotocol.network/mcp\",\n \"disabled\": false\n }\n }\n}" },
+ { text: "Cline asks you to authorize on first connection; follow it to the sign-in page." },
+ ]}
+ setupNote={"Keep \"type\": \"streamableHttp\": without it Cline uses the older SSE transport. To use an access token instead, add \"headers\": { \"Authorization\": \"Bearer pk_...\" }."}
+ verification={"Open the MCP Servers panel (or run cline config mcp) and confirm pilot is connected."}
/>
diff --git a/src/pages/blog/connect-codex-cli-to-pilot-protocol.astro b/src/pages/blog/connect-codex-cli-to-pilot-protocol.astro
index f27f1672..b057a077 100644
--- a/src/pages/blog/connect-codex-cli-to-pilot-protocol.astro
+++ b/src/pages/blog/connect-codex-cli-to-pilot-protocol.astro
@@ -4,12 +4,14 @@ import HarnessIntegrationArticle from '../../components/HarnessIntegrationArticl
url = \"https://cloud.pilotprotocol.network/mcp\" to ~/.codex/config.toml. To use an access token instead of signing in, add bearer_token_env_var = \"PILOT_TOKEN\" to that table and export PILOT_TOKEN."}
+ verification={"Run codex mcp list, or /mcp inside Codex, and confirm pilot is listed with its tools."}
/>
diff --git a/src/pages/blog/connect-cursor-to-pilot-protocol.astro b/src/pages/blog/connect-cursor-to-pilot-protocol.astro
index 9e1b25cf..61e12e28 100644
--- a/src/pages/blog/connect-cursor-to-pilot-protocol.astro
+++ b/src/pages/blog/connect-cursor-to-pilot-protocol.astro
@@ -4,12 +4,14 @@ import HarnessIntegrationArticle from '../../components/HarnessIntegrationArticl
.cursor/mcp.json in a project), keeping any servers already there:", code: "{\n \"mcpServers\": {\n \"pilot\": { \"url\": \"https://cloud.pilotprotocol.network/mcp\" }\n }\n}" },
+ { text: "Open Cursor's MCP settings and connect pilot; Cursor opens the sign-in page." },
+ ]}
+ setupNote={"To use an access token instead, add \"headers\": { \"Authorization\": \"Bearer pk_...\" } next to url."}
+ verification={"Check that pilot is enabled with its tools listed in Cursor's MCP settings. If it fails, the Output panel's MCP Logs channel shows why."}
/>
diff --git a/src/pages/blog/connect-gemini-cli-to-pilot-protocol.astro b/src/pages/blog/connect-gemini-cli-to-pilot-protocol.astro
index fdebdb4b..4e405011 100644
--- a/src/pages/blog/connect-gemini-cli-to-pilot-protocol.astro
+++ b/src/pages/blog/connect-gemini-cli-to-pilot-protocol.astro
@@ -4,12 +4,14 @@ import HarnessIntegrationArticle from '../../components/HarnessIntegrationArticl
\"httpUrl\" for the address: in Gemini CLI a plain \"url\" means the older SSE transport. To use an access token instead of signing in, add --header \"Authorization: Bearer pk_...\" to the command."}
+ verification={"Run /mcp (or gemini mcp list) and confirm pilot is CONNECTED."}
/>
diff --git a/src/pages/blog/connect-github-copilot-to-pilot-protocol.astro b/src/pages/blog/connect-github-copilot-to-pilot-protocol.astro
index 0bb9e339..5498e60d 100644
--- a/src/pages/blog/connect-github-copilot-to-pilot-protocol.astro
+++ b/src/pages/blog/connect-github-copilot-to-pilot-protocol.astro
@@ -2,14 +2,16 @@
import HarnessIntegrationArticle from '../../components/HarnessIntegrationArticle.astro';
---
--header \"Authorization: Bearer pk_...\" to the command."}
+ verification={"Run copilot mcp get pilot, or /mcp show pilot in a session."}
/>
diff --git a/src/pages/blog/connect-hermes-to-pilot-protocol.astro b/src/pages/blog/connect-hermes-to-pilot-protocol.astro
index b445e3e4..de23079a 100644
--- a/src/pages/blog/connect-hermes-to-pilot-protocol.astro
+++ b/src/pages/blog/connect-hermes-to-pilot-protocol.astro
@@ -4,12 +4,14 @@ import HarnessIntegrationArticle from '../../components/HarnessIntegrationArticl
url and auth: oauth to ~/.hermes/config.yaml. To use an access token instead, replace auth: oauth with headers: {Authorization: \"Bearer ${PILOT_TOKEN}\"}. Run /reload-mcp in an open session to pick up the change."}
+ verification={"Run hermes mcp test pilot."}
/>
diff --git a/src/pages/blog/connect-junie-to-pilot-protocol.astro b/src/pages/blog/connect-junie-to-pilot-protocol.astro
index 39b3bb17..080f72a3 100644
--- a/src/pages/blog/connect-junie-to-pilot-protocol.astro
+++ b/src/pages/blog/connect-junie-to-pilot-protocol.astro
@@ -4,12 +4,14 @@ import HarnessIntegrationArticle from '../../components/HarnessIntegrationArticl
.junie/mcp/mcp.json in a project):", code: "{\n \"mcpServers\": {\n \"pilot\": { \"url\": \"https://cloud.pilotprotocol.network/mcp\" }\n }\n}" },
+ { text: "Run /mcp in Junie. Pilot shows Authorization required; select it to sign in through the browser." },
+ ]}
+ setupNote={"To use an access token instead, add \"headers\": { \"Authorization\": \"Bearer pk_...\" } next to url."}
+ verification={"Run /mcp and confirm pilot is Active."}
/>
diff --git a/src/pages/blog/connect-openhands-to-pilot-protocol.astro b/src/pages/blog/connect-openhands-to-pilot-protocol.astro
index 35fefa9b..63809511 100644
--- a/src/pages/blog/connect-openhands-to-pilot-protocol.astro
+++ b/src/pages/blog/connect-openhands-to-pilot-protocol.astro
@@ -4,12 +4,14 @@ import HarnessIntegrationArticle from '../../components/HarnessIntegrationArticl
--auth oauth with --header \"Authorization: Bearer pk_...\"."}
+ verification={"Run openhands mcp get pilot, or /mcp in a conversation."}
/>
diff --git a/src/pages/blog/connect-picoclaw-to-pilot-protocol.astro b/src/pages/blog/connect-picoclaw-to-pilot-protocol.astro
index 9a6f0750..ff9da718 100644
--- a/src/pages/blog/connect-picoclaw-to-pilot-protocol.astro
+++ b/src/pages/blog/connect-picoclaw-to-pilot-protocol.astro
@@ -4,13 +4,13 @@ import HarnessIntegrationArticle from '../../components/HarnessIntegrationArticl
tools.mcp.servers.pilot in ~/.picoclaw/config.json. Keep \"type\": \"http\": without it PicoClaw uses the older SSE transport. The node runs in Pilot's cloud, so the device itself only makes HTTPS calls."}
+ verification={"Run picoclaw mcp test pilot, or /list mcp in a chat."}
/>
diff --git a/src/pages/blog/direct-communication-protocols-ai-agents-guide.astro b/src/pages/blog/direct-communication-protocols-ai-agents-guide.astro
index 234ef438..ebb293e2 100644
--- a/src/pages/blog/direct-communication-protocols-ai-agents-guide.astro
+++ b/src/pages/blog/direct-communication-protocols-ai-agents-guide.astro
@@ -12,7 +12,7 @@ const faqItems = [
},
{
question: "Does Pilot Protocol replace MCP or A2A?",
- answer: "No. Pilot Protocol is a network-layer overlay that gives agents addressing, encrypted tunnels, NAT traversal, and per-peer trust. It complements application-layer protocols like MCP and A2A — for example, the pilot-mcp bridge lets MCP tools run over Pilot's encrypted tunnels without changing your MCP logic."
+ answer: "No. Pilot Protocol is a network-layer overlay that gives agents addressing, encrypted tunnels, NAT traversal, and per-peer trust. It complements application-layer protocols like MCP and A2A — for example, an MCP server can be exposed over Pilot's encrypted tunnels without changing your MCP logic."
},
{
question: "Which protocol handles NAT traversal for AI agents?",
@@ -120,7 +120,7 @@ const bodyContent = `
MCP is excellent at what it targets: structured, schema-validated tool calls from a single model context. It is not a network protocol. It has no concept of agent addressing, NAT traversal, or agent-to-agent transport. Two MCP servers cannot discover or call each other natively.
-Pilot ships a pilot-mcp bridge that runs an MCP server over Pilot's encrypted tunnels, so MCP tools become reachable across NAT without any changes to your MCP logic.
An MCP server can run over Pilot's encrypted tunnels, so MCP tools become reachable across NAT without any changes to your MCP logic (see MCP + Pilot). Pilot also runs its own hosted MCP server, Pilot MCP, which puts an MCP client's agent on the network directly.
The protocols operate at different layers and are not mutually exclusive. A practical production stack often combines them:
pilot-mcp if those tools need to be reachable across NAT.~/.openclaw/openclaw.json; you can also add it from Settings → MCP. To use an access token instead, replace --auth oauth with --header \"Authorization: Bearer pk_...\" (with OAuth on, a static header is ignored). If an earlier Pilot plugin (pilot-policy) is installed, disable it."}
+ verification={"Run openclaw mcp doctor pilot --probe."}
date="March 1, 2026"
- dateModified="2026-09-05"
/>
diff --git a/src/pages/blog/overlay-network-ai-agents.astro b/src/pages/blog/overlay-network-ai-agents.astro
index 0374a9ff..d9e6ae63 100644
--- a/src/pages/blog/overlay-network-ai-agents.astro
+++ b/src/pages/blog/overlay-network-ai-agents.astro
@@ -55,7 +55,7 @@ const bodyContent = `An AI agent that only works when it's sitting on the sam
The core daemon is written in Go and distributed as a static binary (CGO-free) on supported platforms. It is fully open source under AGPL-3.0 (source at github.com/pilot-protocol). SDKs are available for Go, Python (pilotprotocol on PyPI), Node, and Swift, plus an MCP server (pilot-mcp) for agents that already speak MCP, and a plain-text mirror of the site at /plain for agents that just want to read documentation directly.
The core daemon is written in Go and distributed as a static binary (CGO-free) on supported platforms. It is fully open source under AGPL-3.0 (source at github.com/pilot-protocol). SDKs are available for Go, Python (pilotprotocol on PyPI), Node, and Swift, plus a hosted MCP server (Pilot MCP) for agents that already speak MCP, and a plain-text mirror of the site at /plain for agents that just want to read documentation directly.
curl -fsSL https://pilotprotocol.network/install.sh | sh
pilotctl daemon start
diff --git a/src/pages/index.astro b/src/pages/index.astro
index 24be4c2a..2eaa4a6c 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -395,26 +395,26 @@ const featuredBlurbs: Record = {
- $ npx -y pilotprotocol-mcp setup
- # pulls the Go daemon, starts it, and writes the
- # server entry into every MCP harness config
+ # add one URL to any MCP client
+ https://cloud.pilotprotocol.network/mcp
+ # sign in once: your agent gets its own always-on node
- ✓ pilot · Claude Code · Cursor · Cline · Codex CLI
- tools → specialist directory · typed queries · A2A messaging
+ ✓ pilot · Claude · ChatGPT · Cursor · Claude Code · Codex
+ tools → A2A messaging · trust · live data · app store
- One command. The whole overlay, native in your MCP client.
- Every feature of Pilot is available right inside your MCP client.
+ One URL. The whole overlay, native in your MCP client.
+ Nothing to install. Sign in once and your agent has its own Pilot node: it messages other agents, queries live data and installs apps, right inside your MCP client.
It connects as itself, straight to the network, with no API keys to manage.
-
@@ -3253,12 +3253,12 @@ const featuredBlurbs: Record = {
if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
var LINES = [
- [{ t: '$ ', c: 'c' }, { t: 'npx', c: 'y' }, { t: ' -y pilotprotocol-mcp setup' }],
- [{ t: '# pulls the Go daemon, starts it, and writes the', c: 'c' }],
- [{ t: '# server entry into every MCP harness config', c: 'c' }],
+ [{ t: '# add one URL to any MCP client', c: 'c' }],
+ [{ t: 'https://cloud.pilotprotocol.network/mcp', c: 'y' }],
+ [{ t: '# sign in once: your agent gets its own always-on node', c: 'c' }],
[],
- [{ t: '✓', c: 'g' }, { t: ' pilot · ' }, { t: 'Claude Code · Cursor · Cline · Codex CLI', c: 'p' }],
- [{ t: ' tools → specialist directory · typed queries · A2A messaging' }]
+ [{ t: '✓', c: 'g' }, { t: ' pilot · ' }, { t: 'Claude · ChatGPT · Cursor · Claude Code · Codex', c: 'p' }],
+ [{ t: ' tools → A2A messaging · trust · live data · app store' }]
];
// One full type-out of the script; when done, wait, then replay (loop).
@@ -3282,7 +3282,7 @@ const featuredBlurbs: Record = {
return;
}
lineDiv.appendChild(cursor);
- var isCmd = (li === 0);
+ var isCmd = (li === 1);
var si = 0;
function nextSeg() {
if (si >= segs.length) {
diff --git a/src/pages/plain/index.astro b/src/pages/plain/index.astro
index 4e0d2518..fef71a3d 100644
--- a/src/pages/plain/index.astro
+++ b/src/pages/plain/index.astro
@@ -1,7 +1,7 @@
---
// Auto-generated by scripts/regen-plain.mjs. Edit the marketing source and re-run.
// plain-source: src/pages/index.astro
-// plain-source-sha256: 28c499be61df5bac38552bbb338d08007eb606d21002dc9b7be9df607eccc10c
+// plain-source-sha256: 9b6212b104e94a947a656a1e14a3d4c8329c36ae5b4ca3b3ca791f5500f6aa0b
import PlainLayout from '../../layouts/PlainLayout.astro';
---
@@ -54,15 +54,9 @@ import PlainLayout from '../../layouts/PlainLayout.astro';
pilotctl skills set-mode disabled
MCP Integration
-Pilot can be integrated into MCP clients with one command.
-npx -y pilotprotocol-mcp setup
-Supported clients include:
-
- - Claude Code
- - Cursor
- - Cline
- - Codex
-
+Pilot connects to any MCP client with one URL. Nothing to install: sign in once and your agent gets its own always-on Pilot node.
+https://cloud.pilotprotocol.network/mcp
+Works with Claude, ChatGPT, Cursor, Claude Code, Codex and any other MCP client. Setup for each: Pilot MCP docs.
Agent Economy
Agents can install a wallet app to pay and get paid using the x402 standard.