Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

An MCP server that enables AI agents to control a real Chrome browser with full login state through 37 structured automation tools, connecting via the Playwriter extension without needing a remote debugging port.

README.md

Playwriter Browser MCP

一个独立的 MCP (Model Context Protocol) 服务,通过 Playwriter Chrome 扩展连接用户的真实浏览器,提供 37 个结构化浏览器自动化工具

对于任意 Agent 来说,只需添加一个 MCP 配置,就能操控用户真实的 Chrome 浏览器(带完整登录态)—— 无需 --remote-debugging-port,不受 Chrome 136+ 安全限制。

为什么需要这个项目

| 方案 | 能用真实 Profile | 结构化工具 | 不需要调试端口 | |------|:-:|:-:|:-:| | Playwright MCP (@playwright/mcp) | ❌ | ✅ 38 个工具 | ❌ | | Playwriter | ✅ | ❌ 仅 1 个 execute | ✅ | | Browser MCP (本项目) | | ✅ 37 个工具 | |

Browser MCP = Playwriter 的连接方式 + Playwright MCP 的工具生态。

架构

AI Agent (Claude Code / VisionClaw / ...)
   │ MCP Protocol (HTTP / SSE)
   ▼
┌──────────────────────────────────┐
│  Browser MCP Server (port 3280)  │
│                                  │
│  37 个结构化工具:                 │
│  ├── browser_navigate            │
│  ├── browser_snapshot            │
│  ├── browser_click               │
│  ├── browser_type                │
│  ├── browser_take_screenshot     │
│  ├── ... (共 37 个)              │
│                                  │
│  连接层:                          │
│  Playwriter API → connectOverCDP │
└──────────────┬───────────────────┘
               │ WebSocket
               ▼
┌──────────────────────────────────┐
│  Playwriter Relay (port 19988)   │
│  (已有的 relay 或自动启动)        │
└──────────────┬───────────────────┘
               │ chrome.debugger API
               ▼
┌──────────────────────────────────┐
│  Chrome 浏览器 (用户真实 Profile) │
│  ├── 已登录的网站                 │
│  ├── Cookies / Sessions          │
│  └── Playwriter 扩展 (已安装)    │
└──────────────────────────────────┘

快速开始

前置条件

  1. Chrome 浏览器 — 安装 Playwriter 扩展
  2. Node.js >= 18
  3. Playwriter CLInpm install -g playwriter

启动

# 1. 安装依赖
npm install

# 2. 配置环境变量(可选)
cp .env.example .env

# 3. 启动
npm run dev

服务启动后,MCP 端点在 http://localhost:3280/mcp

多 Profile 场景

如果 Chrome 登录了多个 Google 账号,需要指定连接哪个:

# 查看可用的 Profile
playwriter browser list

# 指定 Profile 启动
PLAYWRITER_EXTENSION_ID="profile:104623951740642372686" npm run dev

MCP 工具列表 (37 个)

导航

| 工具 | 说明 | |------|------| | browser_navigate | 导航到 URL,返回页面快照 | | browser_navigate_back | 返回上一页 |

快照与截图

| 工具 | 说明 | |------|------| | browser_snapshot | 获取页面 accessibility tree(带 [ref] 标记,用于后续交互) | | browser_take_screenshot | 截图(支持 png/jpeg、全页、指定元素) |

输入操作

| 工具 | 说明 | |------|------| | browser_click | 点击元素(通过 ref 定位) | | browser_type | 向元素输入文本 | | browser_press_key | 按下键盘按键(Enter、Tab、Escape 等) | | browser_hover | 鼠标悬停在元素上 | | browser_drag | 拖拽元素到目标 | | browser_select_option | 在下拉框中选择选项 | | browser_fill_form | 批量填写表单(文本框、复选框、单选按钮) |

页面管理

| 工具 | 说明 | |------|------| | browser_tabs | 标签页管理(list / new / close / select) | | browser_close | 关闭当前页面 | | browser_wait_for | 等待文本出现/消失或指定时间 | | browser_resize | 调整浏览器窗口大小 |

代码执行

| 工具 | 说明 | |------|------| | browser_evaluate | 在页面中执行 JavaScript | | browser_run_code | 运行 Playwright 代码片段 |

观测

| 工具 | 说明 | |------|------| | browser_console_messages | 获取控制台日志 | | browser_network_requests | 获取网络请求列表 |

文件与对话框

| 工具 | 说明 | |------|------| | browser_file_upload | 上传文件到 file input | | browser_handle_dialog | 处理 alert/confirm/prompt 弹窗 |

Vision(坐标操作)

| 工具 | 说明 | |------|------| | browser_mouse_move_xy | 移动鼠标到坐标 | | browser_mouse_click_xy | 在坐标处点击 | | browser_mouse_drag_xy | 从坐标 A 拖拽到坐标 B | | browser_mouse_down | 按下鼠标按键 | | browser_mouse_up | 释放鼠标按键 | | browser_mouse_wheel | 滚动鼠标滚轮 |

测试验证

| 工具 | 说明 | |------|------| | browser_generate_locator | 生成 Playwright locator(用于编写测试) | | browser_verify_text_visible | 验证文本在页面上可见 | | browser_verify_element_visible | 验证元素可见 | | browser_verify_list_visible | 验证列表包含指定项 | | browser_verify_value | 验证元素的值 |

PDF 与追踪

| 工具 | 说明 | |------|------| | browser_pdf_save | 将页面保存为 PDF | | browser_start_tracing | 开始录制 Playwright trace | | browser_stop_tracing | 停止录制并保存 trace 文件 |

其他

| 工具 | 说明 | |------|------| | browser_install | 安装 Chromium 浏览器二进制文件 | | browser_session | 诊断工具:检查连接状态(无需主动调用,连接是自动的) |

接入方式

作为 HTTP MCP Server

{
  "mcpServers": {
    "browser": {
      "type": "http",
      "url": "http://localhost:3280/mcp"
    }
  }
}

接入 VisionClaw

在 VisionClaw 的 mcp-servers.json 中添加上述配置即可。Agent 无需任何额外操作,直接调用 browser_navigate 等工具,连接会自动建立。

工作流程示例

AI 使用这套工具的典型流程:

1. browser_navigate({ url: "https://x.com" })
   → 自动连接浏览器,导航到 X,返回页面快照

2. browser_snapshot()
   → 获取 accessibility tree,包含 [ref] 标记

3. browser_click({ ref: "compose-btn" })
   → 点击发帖按钮

4. browser_type({ ref: "tweet-input", text: "Hello World!" })
   → 输入帖子内容

5. browser_click({ ref: "post-btn" })
   → 发布

无需手动连接、创建 session、选择 tab —— 一切自动完成。

环境变量

| 变量 | 默认值 | 说明 | |------|--------|------| | MCP_PORT | 3280 | MCP HTTP 服务端口 | | PLAYWRITER_RELAY_PORT | 19988 | Playwriter WebSocket relay 端口 | | PLAYWRITER_RELAY_HOST | 127.0.0.1 | Relay 地址 | | PLAYWRITER_EXTENSION_ID | (自动检测) | 多 Profile 时指定连接哪个扩展 | | OUTPUT_DIR | ./output | 截图、PDF、trace 文件输出目录 |

技术原理

传统方案需要 --remote-debugging-port 来让程序操控浏览器,但 Chrome 136+ 禁止在默认 Profile 上使用该参数。

本项目利用 Playwriter 的 Chrome 扩展,通过 chrome.debugger API 从浏览器内部获取 CDP 访问权限,再通过 WebSocket relay 转发给 Playwright。这样:

  • ✅ 不需要 --remote-debugging-port
  • ✅ 可以使用用户的真实 Chrome Profile(带登录态)
  • ✅ 暴露 37 个结构化 MCP 工具(与 Playwright MCP 对齐)
  • ✅ 连接自动建立,无需手动操作

开发

npm install          # 安装依赖
npm run dev          # 开发模式启动
npm run build        # 编译 TypeScript
npm run lint         # 类型检查
npm test             # 运行测试

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Browser & Scraping servers.