@gaiventures/pilotfish-mcp

中文文档
0.1.50发布于 2026/11/15MITES Module近 30 天下载 1万

给任何MCP特工一个真正的Chrome在你自己的电脑上。 免费,没有账户,没有API密钥. mcprush.com-ba6a69f5121bd8a0089bb26a (英语)

中文使用文档
文档目录15 节
  1. 为什么是领航鱼
  2. 本地还是管理?
  3. 所需资源
  4. 设置
  5. 克劳德代码
  6. 代码 CLI
  7. 光标、 Claude 桌面、 Windsurf等
  8. 超过 HTTP
  9. 工具
  10. 如何表现
  11. 设置
  12. 隐私
  13. 解决问题
  14. 更多来自领航鱼
  15. 许可证

试验鱼 MCP

npm license: MIT

一个MCP服务器,在自己的计算机上给您的AI代理一个真正的Chrome浏览器. 你的经纪人自己的模特都读了 页面并选择每个步骤; 领航鱼带出该步骤,检查并告诉代理人什么变化.

对于使用克洛德代码, Codex CLI, Cursor, Claude D桌面, VS代码或其他代码的人来说 MCP 磁共振 客户端。 自由与麻省理工获得许可:没有账户,没有API密钥,没有飞行员鱼服务器. 它需要Node.js 22或更新的Chrome,Edge或Chrome.

claude mcp add pilotfish -- npx -y @gaiventures/pilotfish-mcp

其他客户端的设置如下. 要完成全部任务 在飞行员的云浏览器,签到 使用您保存的登录符, 请见下文“ 本地或管理” .

pilotfish (local) MCP server

为什么是领航鱼

  • 它点击它的意思. 工具从页面对参考文件进行操作(browser_click {ref: "e12"}) (中文(简体) ). 如果该元素 被覆盖,去或关闭屏幕, 点击被拒绝 而不是降落在错误的东西上 报告什么改变了.
  • 它廉价地阅读页面. 代理人看到可见屏幕的紧凑轮廓. 先看完再说 只得到改变的行,和 browser_query 拔出它所需要的价值.
  • 你负责. 签名,一次性代码和CAPTCHA在浏览器窗口中交给您. 付款, 命令、信件和删除等.
  • 你的密码不在模型之外. 您配置的秘密类型为 {{name}} 占位符和蒙面符 在每一个结果.
  • 它在当地运行. 新的浏览器在您的机器和您的互联网连接上, 当您的代理商关闭时关闭 断开 Cookie的横幅被拒绝,广告和追踪器在代理商看到页面前被屏蔽.

本地还是管理?

这个包是本地版本. 管理试验鱼 (单位:千美元)@gaiventures/pilotfish-mcp-managed是一个 付费服务:领航鱼在其云浏览器中运行整个任务,并将结果交给代理商.

当地 (本套装)管理
是谁干的你经纪人的模特,一步一步领航鱼执行整个任务,返回结果
你的代理证物每一页每个任务一个或两个电话
浏览器在你的电脑,你的IP飞行员的云浏览器,即使你的电脑关闭
签名您每次签名; 无保留保存了登录和会话(一个站点的几个账户),两要素代码,电话登录代码
您产品用户的任务没有身份:每个用户的登录、会话、IP和设备分开,每个用户的费用
块块的站点你每张支票都清空了住宅IP 隐形浏览和CAPTCHA 解析,以您为最后手段
观察和历史浏览器窗口现场观看、控制、重播、每任务成本
价格免费随你便,从5元的信贷中支付

当您在您的办公桌并想要您的代理驾驶时使用本地端 。 需要完成任务时使用管理 留在运行之间的地点, 或继续运行到机器人检查。 管理需要一个领航鱼账户 (单位:千美元)与 Google 签约页:1 软件包页面 每个客户的设置 工具和价格.

无站点名称的任务 . 您的代理先搜索网页( 使用自己的搜索工具) 来选择网站, 或回答 从搜索中找到足够。 它打开一个网站与 browser_navigate 当任务需要时: 你的约会 表格 账户 有了这个包裹, 搜索是你的代理, 不是飞行员的.

所需资源

  • 22号节点或更新
  • Google Chrome, 微软边缘或Chrome. 设定 PILOTFISH_CHROME 来选择一个.

设置

克劳德代码

claude mcp add pilotfish -- npx -y @gaiventures/pilotfish-mcp

在本地窗口( 不是 WSL) 上, 使用 claude mcp add pilotfish -- cmd /c npx -y @gaiventures/pilotfish-mcp。 。 。 . 设置在 -- 作为 -e NAME=value,例如 -e PILOTFISH_HEADLESS=1。 。 。 .

代码 CLI

单位 ~/.codex/config.toml数字 :

[mcp_servers.pilotfish]
command = "npx"
args = ["-y", "@gaiventures/pilotfish-mcp"]
# browser_resume waits up to 300 s for you; Codex stops a call after 60 s by default.
tool_timeout_sec = 330
# Optional:
# env = { PILOTFISH_HEADLESS = "1", PILOTFISH_ALLOWED_HOSTS = "example.com,*.example.com" }

光标、 Claude 桌面、 Windsurf等

在《诅咒》中 ~/.cursor/mcp.json (或 .cursor/mcp.json 在一个项目中,克劳德桌面 claude_desktop_config.json,或者您的客户的等同:

{
  "mcpServers": {
    "pilotfish": {
      "command": "npx",
      "args": ["-y", "@gaiventures/pilotfish-mcp"]
    }
  }
}

设置在一个 env 对象旁边 args。 。 。 . npx -y 运行最新版本; 保留其中的编号 名称后( e)@gaiventures/pilotfish-mcp@<version>) (中文(简体) ). npx -y @gaiventures/pilotfish-mcp --version 打印 您的版本已经.

浏览器在自己的窗口中打开,当一个页面需要一个人时,在其中签名或解决一个CAPTCHA. PILOTFISH_HEADLESS=1 隐藏它; 在没有显示的 Linux 机器上, 它已经隐藏了 .

超过 HTTP

每个客户端共享一个浏览器,在127.0.0.1上:

npx -y @gaiventures/pilotfish-mcp --http --port 8931
claude mcp add --transport http pilotfish http://127.0.0.1:8931/mcp

使用 URL 的客户端 "url": "http://127.0.0.1:8931/mcp"。服务器只回答发送到 当地主机。 设定 PILOTFISH_MCP_TOKEN 要求 Authorization: Bearer <token>它必须服务于任何 其他地址。 .

工具

工具它会做什么
browser_navigate {url, snapshot?}打开一个 http(s) URL 并返回所发生事件加可见屏幕, 并计数上面和下面的内容 . snapshot: false 只返回已发生的事情和计数,以读取 browser_query 而不是采取行动.
browser_snapshot {whole_page?}该页作为紧凑的大纲,附有参考文献(第2页)[e12]<button>Search:大约在取景口周围有3个屏幕,或者全部用 whole_page。每个单词和注释都会被保留;重复的文本、关闭标记和生成的ID被忽略。 平面表行为一行,其单元格介于`
browser_click {ref}单击元素。 被遮住,被遮住或看不见时拒绝.
browser_type {ref, text, submit?}替换字段文本 . {{name}} 键入已配置的秘密.
browser_select {ref, values}选择 <select> 选项.
browser_press {key}按键或快捷键( E)Enter, (中文(简体) ), Escape, (中文(简体) ), Control+a) (中文(简体) ).
browser_scroll {direction}卷起一屏而还.
browser_actions {actions}一个调用最多可有10个步骤,例如表单的字段及其提交按钮. 每个步骤 {action, …}数字 : click, (中文(简体) ), type, (中文(简体) ), select, (中文(简体) ), press, (中文(简体) ), scroll 或者说 wait,与自己的工具相同。 一个不正确的步骤在任何东西运行之前就停止了批量;否则它会停留在失败或移动到另一页的第一个步骤上.
browser_query {expression}以 JavaScript 表达式读取返回 JSON( 最多 4000 个字符): 一个结果,价格,计数的列表. 它不能单击、输入、提交或发送数据。 最便宜的读取一页.
browser_find {query}在页面的任意位置用他们的单词查找元素,最好先匹配. 用逗号分隔几个目标.
browser_get_text {max_chars?, selector?}页面的可读文本 (PDFs 也),或一个元素的可读文本 (main, (中文(简体) ), #results隐藏秘密 最多 max_chars (违约2万).
browser_screenshot {}一个JPEG的取景口。 秘密配置时关闭, 因为图像可以显示它们.
browser_wait {seconds, until?, gone?}等待多至0.5到10秒,然后返回改变的. 与 until 或者说 gone 它返回文本出现在页面或去时的瞬间(一个结果的标签,该网站的"计算"). 动作已经等待它们启动的请求, 等待一个页面从自己的 WebSocket 中获取答案, 等待一个加载行或倒计时站点显示 .
browser_resume {timeout_s?}听到结果后 NEEDS A PERSON: 等待( 默认 300 s) 直至您处理完页面, 然后返回 .
browser_tabs {switch_to?}列出打开的标签,或切换到 switch_to: "t2"。 。 。 .
browser_close {}关闭浏览器; 下一个调用打开一个新调用 。 结尾不需要:当客户端断开时关闭.

如何表现

每个屏幕一次. 你的经纪人为它所读的每个信物付了钱 新的信物比它拥有的要贵得多 已经看过了 所以当特工在一页上行动时 它在最后8个结果中看到过 它只得到一条线 更改, 在其未更改的父行下分别标记 ~ ,其中删除的元素由参考文献列出。 校对器保持 在快照之间相同, 因此没有再次发送的行仍然有效 。 如果超过一半的屏幕被改变 整个屏幕,和 browser_snapshot 总是归还一切.

需要一个人的页面. 每次动作后,会检查页面 。 登录它没有资格,a 一次性代码或双因子快取、设备批准、登录链接、密码、三维安全或CAPTCHA NEEDS A PERSON 说明结果。 您在浏览器窗口处理它, 代理呼叫 browser_resume。 。 。 . pilotfish从未尝试通过这些页面本身:没有猜测的密码或代码,也没有CAPTCHA解析. 一个客户 支持引出 直接问你。 单靠自己清空的机器人检查首先要等出来,直到 12秒钟. BLOCKED: 表示网站拒绝了这个浏览器,并且 STOP: 标记一个不能自动化的网站.

证实. 看上去不可逆的行动(支付、发出命令、发送、删除)需要您同意。 一个客户端 诱导要求你;任何其他客户都会被拒绝行动,有原因.

设置

所有选择.

变量默认含义
PILOTFISH_HEADLESS0 窗户可以打开,否则 11 隐藏浏览器窗口。 您无法用手签名或解决 CAPTCHA .
PILOTFISH_ALLOWED_HOSTS任何公共网站逗号分隔主机名 : * 通配符( e)example.com,*.example.com) (中文(简体) ).
PILOTFISH_ALLOW_PRIVATE01 允许本地主机和私人网络测试自己的应用程序.
PILOTFISH_SECRETSJSON也一样 {"name": "value"} 或者说 {"name": {"value"?, "totp"?, "allowedHosts"?}}输入为 {{name}}; 基数32 totp 种子类型为当前二要素代码。 值从未到达模型,结果或出错.
PILOTFISH_INTERVENTION_TIMEOUT_MS180000电话要等多久才能回答客户提出的问题.
PILOTFISH_ALLOW_SCREENSHOTS除非设置了秘密1 允许屏幕截图, 即使配置了秘密 .
PILOTFISH_CHROME自动查找浏览器可执行文件的路径 .
PILOTFISH_MCP_TOKENHTTP模式:无记名符号客户端必须发送.

有秘密的例子:

"env": {
  "PILOTFISH_SECRETS": "{\"shop_password\": {\"value\": \"...\", \"allowedHosts\": [\"shop.example.com\"]}}"
}

隐私

领航鱼只连接到您代理打开的网站,加上公共广告封条列表(EasyList、EasyPrivacy和EasyPrivacy) uBlock Origin的过滤器, 每周下载一次, 并缓存到 ~/.pilotfish/adblock没有遥测,没有 飞行员服务器,没有模型供应商.

解决问题

  • 找不到铬可执行文件 : 安装 Google Chrome, 或设置 PILOTFISH_CHROME 通往边缘Chrome的道路 或铬.
  • 服务器不启动于 Windows : 开始 npx 结束 cmd /c (见上文Claude Code),并检查 node --version 22岁或更新.
  • 在您报名时, 一个呼叫时间 : 将客户端的工具超时超过 300 秒( Codex : tool_timeout_sec自此以后 browser_resume 最多300 s给你.
  • 一个网站继续屏蔽浏览器 : 这个软件包使用你自己的IP和一个平地Chrome,从不解决CAPTCHA. 清除浏览器窗口中的检查, 或者使用 管理试验鱼。 。 。 .

更多来自领航鱼

许可证

麻省理工学院

版本与发布记录

@gaiventures/pilotfish-mcp 共发布 52 个版本,首次发布于 2026/11/05;过去 12 个月发布了 52 个版本。

版本发布日期距今
0.1.50latest2026/11/15今天
0.1.492026/11/15今天
0.1.482026/11/15今天
0.1.472026/11/132 天前
0.1.462026/11/132 天前
0.1.452026/11/123 天前

关于 @gaiventures/pilotfish-mcp 的常见问题

@gaiventures/pilotfish-mcp 是什么?

给任何MCP特工一个真正的Chrome在你自己的电脑上。 免费,没有账户,没有API密钥. mcprush.com-ba6a69f5121bd8a0089bb26a (英语)

如何安装 @gaiventures/pilotfish-mcp?

在项目目录运行 npm install @gaiventures/pilotfish-mcp,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 pilotfish-mcp,可以用 npx pilotfish-mcp 直接运行。

@gaiventures/pilotfish-mcp 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/gaiventures__pilotfish-mcp 是否存在。

@gaiventures/pilotfish-mcp 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@gaiventures/pilotfish-mcp 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@gaiventures/pilotfish-mcp 可以商用吗?

@gaiventures/pilotfish-mcp 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@gaiventures/pilotfish-mcp 的下载量有多少?

根据 npm 官方下载统计,@gaiventures/pilotfish-mcp 在 2026/10/16 – 2026/11/14 这 30 天内被下载 10,337 次,日均约 345 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@gaiventures/pilotfish-mcp 还在维护吗?

最新版本 0.1.50 发布于 2026/11/15(今天);至今共发布 52 个版本,其中过去 12 个月发布了 52 个;首次发布于 2026/11/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。