关于 pilot-mcp
pilot-mcp 将 Pilot 的 435 个专业 Agent 和 P2P 点对点消息接入一个 MCP 服务,面向需要查询专业数据或与其他 Agent 通信的 Agent。它支持本地网络模式,并提供搜索、结构化查询、信任关系和对等节点工具。
主要功能
- 01搜索专业 Agent
- 02查询结构化数据并生成摘要
- 03与对等节点收发消息
- 04管理握手与信任关系
- 05查看节点与网络状态
适用场景
- 01查找提供特定领域数据的 Agent
- 02获取专业 Agent 返回的结构化数据
- 03向其他操作者发送消息并读取收件箱
- 04检查已连接的对等节点和信任状态
MCP 相关
它作为 MCP 服务向客户端提供 Agent 搜索、数据查询、消息、信任管理等工具,并公开目录、收件箱、身份和节点状态等资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
21收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | number | 否 | 返回的最大匹配数。默认值为 10。 |
| keyword | string | 是 | 单个简短关键词。如果首次尝试没有返回结果,请尝试同义词(专业 Agent 的简介中通常会包含多个术语)。 |
详细介绍
pilotprotocol-mcp
npm 包名为 pilotprotocol-mcp。其历史可执行文件名为
pilot-mcp;另有一个名称为 pilot-mcp 的无关 npm 包,它并非 Pilot
Protocol 的适配器,本说明也绝不会安装它。
Agent 的覆盖网络——本地部署还是托管,由你选择。 435 个专业 Agent + 面向 190k 节点 P2P 网络的 A2A 消息传递,通过一个 MCP 服务提供。
# Local (full P2P, your own identity, no third party):
npx -y pilotprotocol-mcp setup
# Hosted (no install, SSH key = identity, persistent):
claude mcp add pilot ssh://[email protected] # planned v0.2
自动检测 Claude Code、Cursor、Cline、OpenClaw、Hermes、OpenHands、Continue.dev、Codex CLI、Junie、GitHub Copilot、PicoClaw,并为每个工具完成配置。总耗时:不到一分钟。
模式
| 模式 | 首次调用 | 支持 A2A | 隐私 | 状态 |
|---|---|---|---|---|
本地(npx -y pilotprotocol-mcp) | ~1 分钟 — 获取 Go 守护进程并启动,然后连接工作环境 | 支持,持久化 | 完整 P2P;没有第三方能看到元数据 | v0.1 — 现已发布 |
托管 SSH(ssh://…) | ~10 秒 — 粘贴一行命令;SSH 密钥即身份 | 支持,持久化 | Vulture 可看到元数据(专业 Agent 负载仍采用端到端加密) | v0.2 — 计划中 |
托管 HTTP(https://… --token) | ~30 秒 — 注册并保存 bearer token | 支持,持久化(绑定令牌) | 与 SSH 相同 | v0.3 — 视需求而定 |
我们有意不提供临时匿名 HTTP——30 秒的身份无法通过注册表传播信任,因此也无法进行 A2A,而这正是 Pilot 存在的意义。如需在不做承诺的情况下“试用查询”,请使用 pilotprotocol.network/try。
为什么选择 pilot-mcp
MCP 为 Agent 提供了工具。Pilot 为 Agent 提供了对等节点——一个包含 435 个专业 Agent 的目录,你无需 API 密钥即可查询,还能直接与其他运营者的 Agent 进行 A2A 消息传递。
| 当前遇到的阻碍 | pilot-mcp 能提供什么 |
|---|---|
| API 密钥疲劳(每个 MCP 服务都需要新的凭据) | 435 个专业 Agent,零 API 密钥,一个 Ed25519 身份 |
| 速率限制、验证码、地理封锁 | 专业 Agent 原生支持 Agent 流量——没有 429,也没有 Cloudflare |
| SaaS 连接回传(供应商会记录每次 MCP 查询) | 通过加密 UDP 进行 P2P 通信,没有第三方日志记录 |
| web_search 数据陈旧 | 实时获取 HN/GDELT/Reddit/npm/PyPI/OpenAlex 数据 |
| METAR/TAF/交通/论文没有面向普通用户的 API | 正好有针对这些缺口的专业 Agent |
| 没有 Agent 到 Agent 的通信方式 | pilot send-message <peer> --data ...——无需公共端点 |
| 多机器状态彼此隔离 | 一个身份,多台机器,共享同一信任图 |
| 无法发布自己的服务 | pilotctl set-public——无需 HTTPS/OAuth/AgentCard |
展示胜于描述
Q: "What's the current Bitcoin price across major exchanges?"
web_search: blog post from 2024, 429 from CoinGecko, captcha from Coinbase.
pilot-mcp: queries `bitstamp`, `coinbase`, `kraken` specialists in parallel.
Returns structured JSON in ~300ms. No keys, no captchas.
Q: "What papers cite arXiv:2507.14263?"
web_search: Google Scholar gated, semanticscholar.org rate-limited.
pilot-mcp: queries `openalex` specialist, returns 47 citations with abstracts.
Q: "Is there a CVE for openssl in the past week?"
web_search: NVD HTML scrape, missing the latest entries.
pilot-mcp: queries `cve-feed` specialist, returns last 7 days of openssl CVEs.
Q: "What's the BVG U-Bahn departure from Alexanderplatz?"
web_search: BVG.de is JS-rendered, scrape fails.
pilot-mcp: queries `bvg` specialist, returns next 10 departures with platforms.
你将获得什么
10 个 MCP 工具——围绕 pilotctl 强制执行的实际三命令模式(/help、/data、/summary)设计。不带动词前缀的纯消息会被静默地视为无操作;这些工具能避免这种错误。
目录(三命令模式):
pilot_search(keyword, limit?)— 按关键词查找专业 Agent(按字面匹配词元——使用简短通用词:bitcoin、weather、nba)pilot_help(agent)— 了解专业 Agent 的/data筛选器架构pilot_query(agent, filters?)— 获取结构化数据;检测约 8 KB 的截断并提示用户pilot_summary(agent, question?)— 当/data结果会超过截断限制时,生成由大模型合成的摘要
临时 A2A 消息:
pilot_send(peer, message)— 向由人类运营的对等节点发送纯文本pilot_inbox(limit?)— 读取收到的消息
信任 + 可达性:
pilot_handshake(target, reason?)— 建立双边信任(会提示注册表传播约需 60 秒)pilot_find(hostname)— 类似 DNS 的查询pilot_peers()— 已连接的对等节点 + PATH(直连或中继)pilot_approve(target)— 接受待处理的握手请求
6 个 MCP 资源:pilot://catalog(实时目录快照)、pilot://inbox、pilot://trust、pilot://peers、pilot://identity、pilot://daemon-health。
5 个 MCP 提示词:三命令模式、a2a-message、handshake-first-contact、troubleshoot(流程 3 调试)、readiness-check。
安装——一条命令搞定一切
npx -y pilotprotocol-mcp setup
或按工作环境手动安装:
# Claude Code — user MCP lives in ~/.claude.json
claude mcp add --transport stdio pilot -- npx -y pilotprotocol-mcp
# Cursor — add to ~/.cursor/mcp.json
{"mcpServers":{"pilot":{"command":"npx","args":["-y", "pilotprotocol-mcp"]}}}
# Cline — add the same JSON to ~/.cline/data/settings/cline_mcp_settings.json
# Continue.dev — merge into ~/.continue/config.yaml
name: My Continue Config
version: 1.0.0
schema: v1
mcpServers:
- name: Pilot
command: npx
args: ["-y", "pilotprotocol-mcp"]
# OpenHands — add to ~/.openhands/mcp.json
{"mcpServers":{"pilot":{"command":"npx","args":["-y","pilotprotocol-mcp"]}}}
# Hermes — add to ~/.hermes/config.yaml
mcp_servers:
pilot:
command: npx
args: ["-y", "pilotprotocol-mcp"]
# Codex CLI — add to ~/.codex/config.toml
[mcp_servers.pilot]
command = "npx"
args = ["-y", "pilotprotocol-mcp"]
# PicoClaw — add to ~/.picoclaw/config.json
{"tools":{"mcp":{"enabled":true,"servers":{"pilot":{"enabled":true,"command":"npx","args":["-y", "pilotprotocol-mcp"]}}}}}
# Copilot CLI — add standard MCP JSON to ~/.copilot/mcp-config.json
# Junie CLI/IDE — add standard MCP JSON to ~/.junie/mcp/mcp.json
# OpenClaw — setup installs and enables the Pilot plugin (id `pilot-policy`), which carries the MCP server
openclaw plugins inspect pilot-policy --runtime --json
在 HTTPS 代理后运行(Agent 沙箱)
Meta Muse 等托管 Agent 虚拟机会屏蔽 UDP、污染 Pilot 主机名的 DNS 解析,并且仅允许通过需要身份验证的 HTTPS_PROXY 将流量转发到 443 端口。npx -y pilotprotocol-mcp setup 会以普通用户或 root 身份在此运行,无需 systemd 或 launchd。它会通过代理安装运行时和 harness 适配器。只有运行时的 pilot-daemon 带有 -proxy 时,节点才能在此连接到 Pilot 网络(~/.pilot/bin/pilot-daemon -h 会列出该选项)。截至 v1.13.10(含)的已发布运行时都不支持此选项;该功能随 pilot-protocol/pilotprotocol#470 加入。对于此类较旧的运行时,setup 会:
- 在仅允许通过代理联网的沙箱中(无 systemd 的 Linux,凭据在
HTTPS_PROXY中),完全不启动守护进程:它会绕过代理,直接连接 Pilot 注册表和信标(setup 自身的 UDP 探测也会因此跳过); - 说明节点无法连接到 Pilot 网络,并解释原因;
- 如果它启动的守护进程未成功运行,则停止该进程(绝不会停止 setup 运行前已存在的进程,也不会停止 install.sh 的 launchd 代理);
- 指向 pilot-sandbox 技能, 该技能目前可以让节点上线;
- 以状态码 1 退出。
详情如下:
- 发布清单和运行时归档通过代理下载(按主机名执行
CONNECT,TLS 端到端传输,仍会验证 SHA-256)。代理选择方式与pilot-daemon -proxy相同(common/netproxy v0.5.14):依次选择HTTPS_PROXY、https_proxy、ALL_PROXY、all_proxy中第一个可用的代理(普通http://优先使用HTTP_PROXY/http_proxy),并遵循NO_PROXY/no_proxy;localhost/loopback 始终不经过代理。不可用的ALL_PROXY会被跳过;不可用的HTTPS_PROXY表示不使用代理,daemon 也是如此。凭据可以进行百分号编码,也可以不编码(最后一个@之前的所有内容都是用户信息)。 PILOT_PROXY接受 pilot-daemon 和 pilotctl 接受的值:auto(默认值)、off(none、no、false和direct也表示关闭),或http:///https://代理 URL。Setup 会向 daemon 传入相同的读取结果(所有别名都会转换为off)。其他任何值(例如socks5://...或不带协议的host:port)都会被忽略并发出警告,也不会传给 daemon,因为 daemon 收到后会拒绝启动。~/.pilot/config.json中的"proxy"键必须是auto、off或 http(s) URL,否则 pilotctl 会拒绝启动 daemon;其他值会使 setup 发出警告。- 如果
pilot-daemon的-transport接受auto(install.sh会为其保存"transport": "auto"),它每次启动时都会自行选择 udp 或 compat;UDP 被阻止时,通过代理使用 compat。Setup 会让它自行选择:不传入-transport,不在~/.pilot/config.json中记录任何值,并移除之前 setup 记录的"transport": "compat"。 - 如果到 beacon 的 UDP 被阻止(三次探测均无响应),且已安装的
pilot-daemon支持-proxy但不支持-transport=auto,setup 会以-transport=compat启动它。Daemon 自身的-proxy默认值(auto)随后会使用代理环境变量;setup 从不传入-proxy,因此~/.pilot/config.json中的"proxy"键或PILOT_PROXY仍然优先(-transport=auto的运行时会优先使用PILOT_PROXY,较早的运行时则优先使用config.json)。Setup 会在~/.pilot/config.json中记录"transport": "compat",并标记为"transport_set_by": "pilot-mcp",这样重启后直接执行pilotctl daemon start仍会使用相同设置;之后的 setup 如果发现 UDP 可用、没有代理,或运行时支持-transport=auto,则会再次移除该设置。 - 你(或
install.sh)设置的"transport"永远不会被更改:可以是udp、compat、auto,也可以是 setup 会发出警告的值。对于支持-transport=auto的运行时,auto及任何大小写形式都有效;仅当已安装的pilot-daemon版本早于该功能时,setup 和doctor才会对此发出警告。 - 只有在严格晚于当前版本的稳定版发布中,并且确认其
pilot-daemon支持-proxy后,才会替换较旧的 per-user 运行时(~/.pilot/bin)。版本未知的运行时以及安装在其他位置的运行时永远不会被替换。 否则,setup 会保留运行时,并指向 pilot-sandbox 技能。 在非仅代理沙盒环境中,setup 仍会启动该 daemon,因为有些主机允许它直接联网。如果 daemon 已注册(即它成功直接联网),但未通过信任检查,则说明 UDP 被阻止:摘要会显示切换到 compat 模式的说明,此时无需代理。如果 daemon 始终无法启动,摘要会说明节点无法访问 Pilot 网络以及解决方法;setup 启动的 daemon 会再次停止,setup 并以 1 退出。 - 如果 UDP 被阻止且未使用代理,daemon 会像以前一样以默认传输方式(udp)启动,setup 会显示将已安装的运行时切换到 compat 模式的命令:
pilotctl config --set transport=compat;对于早于-proxy的运行时,还需执行pilotctl config --set registry=registry.pilotprotocol.network:443。 PILOT_TRANSPORT=udp|compat会跳过 UDP 探测;PILOT_TRANSPORT=auto会以auto值传入。只有pilot-daemon列出-proxy的运行时才会应用该设置(其 pilotctl 会将其传入;auto仅适用于-transport=auto);此前发布的运行时(v1.13.10 及更早版本)会忽略该设置,setup 会说明这一点并报告 daemon 实际运行时使用的传输方式。- 代理凭据轮换(Meta Muse 每隔几分钟轮换一次
HTTPS_PROXY中的凭据;进程会保留启动时使用的凭据,因此之后建立的新连接会因 407 而失败)。代理命令PILOT_PROXY_CMD或~/.pilot/config.json中的"proxy_cmd"会输出当前代理 URL;其遵循pilot-daemon -proxy-cmd约定(sh -c、10 秒、绝不记录输出)。如果在没有 systemd 的 Linux 容器或 VM 中,HTTPS_PROXY/https_proxy携带凭据且没有进行任何配置,setup 会使用沙盒默认命令bash -c 'case $https_proxy in *@*) printf %s "$https_proxy";; *) printf %s "${HTTPS_PROXY:-$https_proxy}";; esac'(新的 shell 会读取当前凭据;绝不会将带凭据的 URL 替换为不带凭据的 URL),与 pilotctl 和install.sh的行为完全相同。- Setup 每次发起请求以及遇到重定向时,都会在下载前运行代理命令;遇到 407 时还会再运行一次,并仅重试一次。
- 支持
-proxy-cmd的pilot-daemon会接收该命令。沙盒默认命令会作为PILOT_PROXY_CMD仅在本次启动时传入,不会保存:随-proxy-cmd提供的 pilotctl 会自行在之后每次启动时传入该命令,且仅当代理来自HTTPS_PROXY时才会这样做,因此你之后显式设置的代理会按设置使用。已配置的命令会留给 daemon 自行读取。 - 在
pilot-daemon中,已配置命令输出的 URL 会取代显式设置的PILOT_PROXY或 config.json"proxy"URL(这是-proxy-cmd的工作方式);setup 和doctor会据此报告。如果"proxy_cmd"等于install.sh保存的沙盒默认命令,则不会据此选择代理:setup 仅在代理环境变量存在时才会用它下载;如果pilot-daemon会因此覆盖显式代理,setup 和doctor会发出警告,并提示使用pilotctl config --set proxy_cmd=将其移除。 - 支持
-proxy但不支持-proxy-cmd的pilot-daemon会将HTTPS_PROXY指向 pilot-sandbox 技能的egress_relay.py,地址为127.0.0.1:3128(在~/workspace/skills或其他技能目录中查找,也可通过PILOT_EGRESS_RELAY指定;如果 relay 尚未运行,则使用python3启动),该 relay 会为每个连接重新读取凭据。如果找不到 relay,setup 会警告凭据将会过期,并指向该 relay。
npx -y pilotprotocol-mcp doctor会显示 daemon 将使用的代理(凭据会隐藏),或显示off,并指出选择该代理的设置;还会显示 daemon 能否使用该代理、代理命令的来源、daemon 是否支持该命令及其 URL 是否会取代显式代理、任何被忽略或拒绝的代理或传输设置,以及已记录的传输方式。
隐私
- 所有覆盖网络流量均通过加密 UDP 进行 P2P 传输(AES-256-GCM、X25519 密钥交换、Ed25519 身份)。
pilot-mcp不会上传工具调用,也不会安装工具钩子。安装时会移除pilot-mcp在 0.3.0 及更早版本中写入运行环境设置的钩子条目。- 专业查询会经由 Pilot rendezvous 服务(NAT 穿透协调器)进行路由,但有效载荷采用端到端加密;rendezvous 服务能看到通信双方,却无法看到通信内容。
- 对于仅限 LAN 的部署,请将
pilot-daemon指向私有 rendezvous 服务,并保持与外部网络隔离。
对比
| MCP 服务(Linear、Notion 等) | A2A(Google) | pilot-mcp | |
|---|---|---|---|
| 是否需要 API 密钥 | 是——每家供应商一个 | 每项服务使用 OAuth | 否 |
| 发现方式 | 每个服务单独安装 | .well-known/agent-card.json(以 DNS 为根) | 目录 + find <hostname> |
| 身份验证 | 每家供应商使用 OAuth | bearer token(不支持限定跳数的委派) | Ed25519 双向验证 |
| 是否适用于家庭网络、移动网络或受防火墙保护的 Agent | 部分适用 | 否(需要公开的 HTTPS) | 是(NAT 穿透) |
| Agent 间通信 | 否 | 是(仅限服务端到服务端) | 是(点对点) |
| 本地优先 | 因情况而异 | 否(云端端点) | 是 |
许可证
Apache-2.0。
状态
早期阶段。欢迎提交 Issue 和 PR。
链接
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。