{
  "markdown": "# pilotprotocol-mcp\n\nThe npm package is **`pilotprotocol-mcp`**. Its historical executable name is\n`pilot-mcp`; the unrelated npm package named `pilot-mcp` is not Pilot\nProtocol's adapter and is never installed by these instructions.\n\n**Your agent's overlay network — local or hosted, your choice.** 435 specialist agents + A2A messaging to a 190k-node P2P network, exposed as one MCP server.\n\n```bash\n# Local (full P2P, your own identity, no third party):\nnpx -y pilotprotocol-mcp setup\n\n# Hosted (no install, SSH key = identity, persistent):\nclaude mcp add pilot ssh://you@ssh.pilot.protocol.network        # planned v0.2\n```\n\nAuto-detects Claude Code, Cursor, Cline, OpenClaw, Hermes, OpenHands, Continue.dev, Codex CLI, Junie, GitHub Copilot, PicoClaw. Configures each. Total time: under a minute.\n\n## Modes\n\n| Mode | First call | A2A possible | Privacy | Status |\n|---|---|---|---|---|\n| **Local** (`npx -y pilotprotocol-mcp`) | ~1 min — pulls Go daemon, starts it, wires harness | Yes, persistent | Full P2P; no third party sees metadata | v0.1 — shipping now |\n| **Hosted SSH** (`ssh://…`) | ~10 sec — paste one line; SSH key = identity | Yes, persistent | Vulture sees metadata (specialist payloads still E2E) | v0.2 — planned |\n| **Hosted HTTP** (`https://… --token`) | ~30 sec — sign up, save bearer token | Yes, persistent (token-bound) | Same as SSH | v0.3 — conditional on demand |\n\nWe deliberately do **not** offer ephemeral anonymous HTTP — 30-second identities can't propagate trust through the registry, so they can't do the A2A that's Pilot's reason to exist. For a \"try a query\" demo without committing, use [pilotprotocol.network/try](https://pilotprotocol.network/try).\n\n---\n\n## Why pilot-mcp\n\nMCP gave your agent **tools**. Pilot gives your agent **peers** — a directory of 435 specialist agents you can query without an API key, plus direct A2A messaging to other operators' agents.\n\n| Friction today | What pilot-mcp gives you |\n|---|---|\n| API key fatigue (every MCP server = new credential) | 435 specialists, zero API keys, one Ed25519 identity |\n| Rate limits, captchas, geo-blocks | Specialists are agent-traffic-native — no 429, no Cloudflare |\n| SaaS phone-home (every MCP query logged by vendor) | P2P over encrypted UDP, no third-party logging |\n| Stale data from web_search | Live HN/GDELT/Reddit/npm/PyPI/OpenAlex — real-time |\n| METAR/TAF/transit/papers with no consumer API | Specialists exist for exactly these gaps |\n| No agent-to-agent path | `pilot send-message <peer> --data ...` — no public endpoint needed |\n| Multi-machine state silos | One identity, multiple machines, same trust graph |\n| No way to publish your own service | `pilotctl set-public` — no HTTPS/OAuth/AgentCard required |\n\n## Show, don't tell\n\n```text\nQ: \"What's the current Bitcoin price across major exchanges?\"\n\n  web_search:    blog post from 2024, 429 from CoinGecko, captcha from Coinbase.\n  pilot-mcp:     queries `bitstamp`, `coinbase`, `kraken` specialists in parallel.\n                 Returns structured JSON in ~300ms. No keys, no captchas.\n\nQ: \"What papers cite arXiv:2507.14263?\"\n\n  web_search:    Google Scholar gated, semanticscholar.org rate-limited.\n  pilot-mcp:     queries `openalex` specialist, returns 47 citations with abstracts.\n\nQ: \"Is there a CVE for openssl in the past week?\"\n\n  web_search:    NVD HTML scrape, missing the latest entries.\n  pilot-mcp:     queries `cve-feed` specialist, returns last 7 days of openssl CVEs.\n\nQ: \"What's the BVG U-Bahn departure from Alexanderplatz?\"\n\n  web_search:    BVG.de is JS-rendered, scrape fails.\n  pilot-mcp:     queries `bvg` specialist, returns next 10 departures with platforms.\n```\n\n## What you get\n\n**10 MCP tools** — shaped around the actual 3-command pattern (`/help`, `/data`, `/summary`) enforced by pilotctl. Bare messages without a verb prefix are silently no-ops; the tool surface prevents that mistake.\n\nCatalog (3-command pattern):\n- `pilot_search(keyword, limit?)` — find specialists by keyword (literal token match — use short generic words: `bitcoin`, `weather`, `nba`)\n- `pilot_help(agent)` — learn a specialist's `/data` filter schema\n- `pilot_query(agent, filters?)` — fetch structured data; detects ~8 KB truncation and surfaces a hint\n- `pilot_summary(agent, question?)` — LLM-synthesized digest when `/data` would exceed truncation\n\nAd-hoc A2A:\n- `pilot_send(peer, message)` — plain text to a human-operated peer\n- `pilot_inbox(limit?)` — read received messages\n\nTrust + reachability:\n- `pilot_handshake(target, reason?)` — bilateral trust (warns about ~60s registry propagation delay)\n- `pilot_find(hostname)` — DNS-like lookup\n- `pilot_peers()` — connected peers + PATH (direct vs relay)\n- `pilot_approve(target)` — accept pending handshake\n\n**6 MCP resources**: `pilot://catalog` (live directory snapshot), `pilot://inbox`, `pilot://trust`, `pilot://peers`, `pilot://identity`, `pilot://daemon-health`.\n\n**5 MCP prompts**: 3-command-pattern, a2a-message, handshake-first-contact, troubleshoot (Flow 3 debug), readiness-check.\n\n## Install — one command for everything\n\n```bash\nnpx -y pilotprotocol-mcp setup\n```\n\nOr per-harness manual:\n\n```bash\n# Claude Code — user MCP lives in ~/.claude.json; hooks live in ~/.claude/settings.json\nclaude mcp add --transport stdio pilot -- npx -y pilotprotocol-mcp\n\n# Cursor — add to ~/.cursor/mcp.json\n{\"mcpServers\":{\"pilot\":{\"command\":\"npx\",\"args\":[\"-y\", \"pilotprotocol-mcp\"]}}}\n\n# Cline — add the same JSON to ~/.cline/data/settings/cline_mcp_settings.json\n\n# Continue.dev — merge into ~/.continue/config.yaml\nname: My Continue Config\nversion: 1.0.0\nschema: v1\nmcpServers:\n  - name: Pilot\n    command: npx\n    args: [\"-y\", \"pilotprotocol-mcp\"]\n\n# OpenHands — add to ~/.openhands/mcp.json\n{\"mcpServers\":{\"pilot\":{\"command\":\"npx\",\"args\":[\"-y\",\"pilotprotocol-mcp\"]}}}\n\n# Hermes — add to ~/.hermes/config.yaml\nmcp_servers:\n  pilot:\n    command: npx\n    args: [\"-y\", \"pilotprotocol-mcp\"]\n\n# Codex CLI — add to ~/.codex/config.toml\n[mcp_servers.pilot]\ncommand = \"npx\"\nargs = [\"-y\", \"pilotprotocol-mcp\"]\n\n# PicoClaw — add to ~/.picoclaw/config.json\n{\"tools\":{\"mcp\":{\"enabled\":true,\"servers\":{\"pilot\":{\"enabled\":true,\"command\":\"npx\",\"args\":[\"-y\", \"pilotprotocol-mcp\"]}}}}}\n\n# Copilot CLI — add standard MCP JSON to ~/.copilot/mcp-config.json\n\n# Junie CLI/IDE — add standard MCP JSON to ~/.junie/mcp/mcp.json\n\n# OpenClaw — setup installs and enables the Pilot Policy plugin\nopenclaw plugins inspect pilot-policy --runtime --json\n```\n\n## Privacy and optional management\n\n- All overlay traffic flows **P2P over encrypted UDP** (AES-256-GCM, X25519 key exchange, Ed25519 identity).\n- An unmanaged node does not upload tool calls and every installed policy hook\n  is a zero-side-effect pass-through.\n- Specialist queries route through the Pilot rendezvous server (NAT-traversal coordinator) but the **payload is end-to-end encrypted**; the rendezvous can see who is talking to whom, not what.\n- For LAN-only deployments, point `pilot-daemon` at a private rendezvous and stay air-gapped.\n- When a node is explicitly adopted into Pilot Management, its pre/post action\n  envelopes—including tool inputs and results—are sent to the hosted federation\n  control plane for policy evaluation, approvals, and audit. That managed path\n  is opt-in and fail-closed for pre-action decisions.\n\n## Comparison\n\n| | MCP servers (Linear, Notion, …) | A2A (Google) | pilot-mcp |\n|---|---|---|---|\n| API keys required | Yes — one per vendor | OAuth per service | **None** |\n| Discovery | per-server install | `.well-known/agent-card.json` (DNS-rooted) | catalog + `find <hostname>` |\n| Identity | per-vendor OAuth | bearer tokens (no hop-scoped delegation) | Ed25519 bilateral |\n| Works for home-network / mobile / firewalled agents | partial | **no** (needs public HTTPS) | **yes** (NAT traversal) |\n| Inter-agent messaging | no | yes (server-to-server only) | yes (peer-to-peer) |\n| Local-first | varies | no (cloud endpoints) | **yes** |\n\n## License\n\nApache-2.0.\n\n## Status\n\nEarly. Issues and PRs welcome.\n\n## Links\n\n- Pilot Protocol: https://pilotprotocol.network\n- Docs: https://pilotprotocol.network/docs\n- IETF draft: https://www.ietf.org/archive/id/draft-teodor-pilot-protocol-01.html\n- Source: https://github.com/pilot-protocol/pilot-mcp\n",
  "bytes": 8258,
  "sha": "736c2f6384d3fd987f83474137bef710e9c1c6895e7dc67abc764123939dc1fd",
  "repo_slug": "pilot-protocol/pilot-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_pilot_protocol_pilot_mcp_0e707837/readme"
}