浏览器自动化MCP服务

Pilot是一款基于Playwright的浏览器自动化MCP服务,支持本地和扩展模式,适用于QA自动化和AI代理的浏览器操作。

  • by TacosyHorchata
  • TypeScript
  • 本地部署
  • 32 星标
  • 更新于
在 GitHub 查看 TacosyHorchata/Pilot

使用说明

人工智能代理的浏览器自动化MCP试点

默认情况下,原生Playwright支持浏览器会话。QA自动化不需要Chrome扩展程序。

Pilot有两个浏览器后端:

  • 原生模式 (默认):隔离的Playwright浏览器上下文。这是并行QA自动化和可靠截图的支持路径。
  • 扩展模式 (传统/选择加入):当您需要现有Cookie和登录会话时,连接到您的真实Chrome个人资料。

本机模式避免 chrome.tabs.captureVisibleTab() 完全如此,因此屏幕截图并不取决于Chrome是否被突出显示,标签是否明显处于活动状态,或者扩展服务工作人员是否新鲜。


运作原理

AI Agent → MCP Server → Broker on 127.0.0.1:3131 → Native browser session
         (stdio)       (first process owns broker)  (Playwright context/page)
  1. Pilot作为MCP服务器运行 --Claude Code、Cursor或任何MCP客户端通过stdio连接
  2. 第一个Pilot流程成为经纪人 在本地主机上
  3. 稍后的Pilot进程作为代理客户端连接
  4. 每个会话都会获得一个独立的本地浏览器上下文/页面
  5. 截图来自Playwright,而不是Chrome扩展捕获API

快速开始

1.添加MCP服务器

codex mcp add pilot \
  --env PILOT_BROWSER_MODE=native \
  --env PILOT_PROFILE=full \
  -- npx -y pilot-mcp

对于本地结账:

npm install
npm run build
codex mcp add pilot \
  --env PILOT_BROWSER_MODE=native \
  --env PILOT_PROFILE=full \
  -- node /absolute/path/to/pilot/dist/index.js

2.使用它

“打开https://example.com,截取屏幕截图,并对页面进行总结。"

不安装扩展程序。无Chrome前台要求。

有关完整的本机模式操作、压力命令和清理检查,请参阅 docs/native-mode.md.


精益快照

其他工具将每页50K+个字符转储到您的上下文窗口中。Pilot保持小规模:

Other tools:   navigate(58K) → navigate(58K) → answer        = 116K chars
Pilot:         navigate(2K)  → navigate(2K)  → snapshot(9K)  =  13K chars

snapshot_diff 仅显示操作之间的变化,没有冗余的重新读取。

更少的上下文=更快的响应,更便宜的API调用,更少的幻觉。


飞行员vs@剧作家/mcp

飞行员 @剧作家/mcp
浏览器 默认情况下为本地剧作家上下文;通过传统扩展程序实现真正的Chrome 新的Chromium实例
身份验证状态 默认情况下,本地隔离;扩展模式可以使用真正的Chrome Cookie 匿名-手动设置
机器人检测 原生自动化;真实配置文件切换的扩展模式 被Cloudflare阻止
快照大小 ~2K导航,~9K满 ~50-60K
快照差异 pilot_snapshot_diff ❌
Cookie导入 Chrome、Arc、Brave、Edge、Comet 手动JSON
内嵌框架 ✅ ❌
刀具轮廓 core (9) / standard (40) / full (69) --caps 团体
运输 stdio stdio、HTTP、SSE

3个配置文件中的69个工具

LLM会随着工具列表的增长而退化。只加载您需要的内容:

简介 工具 包括什么
core 9 导航、快照、单击、填充、键入、按_key、等待、截图、snapshot_diff
standard 40 核心+领航员_act、领航员指南、证据、医生/重置、标签、滚动、悬停、拖动、iframe、身份验证、阻止、查找
full 69 标准+网络拦截、断言、剪贴板、地理位置、CDP、评估、PDF、响应式、深度检查
{
  "mcpServers": {
    "pilot": {
      "command": "npx",
      "args": ["-y", "pilot-mcp"],
      "env": { "PILOT_PROFILE": "standard" }
    }
  }
}

违约: standard. 完整工具参考→


原生模式

默认模式为本机模式:

PILOT_BROWSER_MODE=native

将其用于QA自动化、并行MCP会话和屏幕截图证据。

在QA运行之前进行验证:

PILOT_HEADLESS=1 npm run stress:screenshots
npm run stress:codex

预期:两份报告 6/6 passed.

扩展模式

扩展模式为传统模式,可选择加入:

PILOT_BROWSER_MODE=extension

仅当您需要用户已经过身份验证的真实Chrome个人资料时才使用它。

从您的真实浏览器导入Cookie: pilot_import_cookies({ browser: "chrome", domains: [".github.com"] })

支持 铬、弧形、勇敢、边缘、彗星 通过macOS钥匙链/Linux libsecret。对于验证码: pilot_handoff → 你干预→ pilot_resume.


需求

  • Node.js>=18
  • 剧作家Chromium
  • macOS或Linux
  • 仅支持扩展模式:Chrome+Pilot扩展程序

如果铬缺失:

npx playwright install chromium

安全

  • 分机正在通信 仅限本地主机 (127.0.0.1)
  • 本地代理通过以下方式进行通信 仅限本地主机 (127.0.0.1)
  • 本机会话在每个MCP会话中使用隔离的浏览器上下文
  • 输出路径验证可防止外部写入 PILOT_OUTPUT_DIR
  • 所有文件操作的路径遍历保护
  • PILOT_PROFILE 控制暴露的工具(core / standard / full)

学分

核心架构——基于引用的元素选择、快照差异、带注释的屏幕截图——移植自 堆栈 通过 加里·谭.建立在 剧作家 和那个 MCP-SDK.


如果Pilot有用, 明星回购 --它帮助别人找到它。