Skip to content

MCP Bridge — Claude Code 驱动浏览器

概念

MCP Bridge = stdio MCP server + 本地 Coordinator,两者打包在 @attson/atwebpilot-mcp。装了之后:

Claude Code ─(MCP stdio)─→ atwebpilot-mcp ─(WS worker)─→ Chrome 扩展 ─→ 网页

Claude Code 里就能调 browser_* 系列工具在真实网页上读、写、采。

值得先知道方向:MCP server 进程是 WS 服务端,扩展是客户端。MV3 的 service worker 没有 监听端口的能力,所以只能由扩展主动拨号。这也是配对页存在的原因 —— 服务端没法自己找到浏览器, 只能把端口告知扩展。

安装

bash
claude mcp add atwebpilot --scope user -- npx -y @attson/atwebpilot-mcp

然后照常装扩展。不用手填端口

  1. 会话启动时不绑任何端口 —— 不碰网页的会话零副作用
  2. AI 第一次调 list_tabs / browser_* 时才绑一个空闲端口,并自动打开配对页
  3. 你在浏览器里点「允许」,扩展即接入,重试那次调用即可
  4. 之后本机的会话都免确认;端口能复用时连配对页都不会弹

详见 多会话配对

可选环境变量:

变量说明
ATWEBPILOT_WS_PORT固定端口。默认是自动选一个空闲端口并复用上次那个
ATWEBPILOT_WS_TOKEN要求扩展带 bearer.<token> 子协议
ATWEBPILOT_MCP_TOOLSfull(默认,54 个)或 parity(只出对标 playwright-ext 的子集,省上下文)

Claude Code 可用的 MCP tools

工具用途
list_tabs列出扩展当前挂载的所有 tab,含 busy / mine 占用标记
open_session开启一个 session,绑定某 tab
browser_* × 54扩展全部内置工具的 MCP 包装
get_quota查询当前 session 剩余次数
close_session关闭 session
atwebpilot_skill_read读取推荐的工具使用流程与安全约定

browser_* 与扩展内置工具一一对应,参数一致,只是把 tabId 换成 session_id。详见 工具参考

不暴露的三个:askUser(MCP 会话没有人在侧边栏应答)、attachTab / detachTab (侧边栏多 tab 记账,MCP 的目标 tab 已由 open_session 绑定)。

工具列表会和扩展上报的 supported_tools 求交集,所以旧版扩展配新版 server 时不会出现 「列出来但一调就 unknown tool」。

替代 @playwright/mcp --extension

playwright-ext 的每个能力这里都有对应项(名字是 AtWebPilot 的):

playwright-extAtWebPilot
browser_snapshotbrowser_takeSnapshot(uid 可直接喂给 clickByUid / fillByUid
browser_findbrowser_findElements
browser_click / browser_typebrowser_click(含 doubleClick/button/modifiers)、browser_fillInput(含 slowly/submit
browser_drag / browser_drop同名
browser_navigate / browser_navigate_backbrowser_navigate / browser_navigateBack
browser_resizebrowser_resize
browser_take_screenshotbrowser_screenshot(含 fullPage / format / scale
browser_wait_forbrowser_waitFor(含 text / textGone
browser_evaluatebrowser_runJS
browser_console_messagesbrowser_consoleMessages
browser_network_requestsbrowser_networkRequests / browser_networkRequestDetail
browser_handle_dialogbrowser_handleDialog

两处语义差异要知道,见 页面事件录制:默认档下 handleDialog预先策略 而不是反应式;resize 动的是真实窗口。

AtWebPilot 额外有的:页面索引四件套、extractImageshttpRequestdownloadSpreadsheet (真 .xlsx)、书签与历史搜索。

手起 mcp-server(开发用)

bash
pnpm -F @attson/atwebpilot-mcp start

不绑端口;首次用到浏览器时才绑并弹配对页。用于本地调试 mcp-server 逻辑,不用装 npx 包。

详见 packages/mcp-server/README.md

MIT License