浏览器自动化服务器

一款基于Playwright和Model Context Protocol的浏览器自动化服务器,提供70种工具支持人类行为模拟、反检测、多浏览器支持和设备模拟等功能。

  • by Yukendiran2002
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Yukendiran2002/browser_mcp

使用说明

🌐 浏览器MCP服务器

最全面的AI代理浏览器MCP服务器 --70个工具具有类人行为、隐形反检测、会话重用、多浏览器支持、50多个设备预设和令牌优化输出。

建立在 剧作家 + 模型上下文协议.


✨ 主要特点

特性 描述
🤖 类人行为 贝塞尔曲线鼠标移动、变速打字、平滑滚动——避开机器人检测
🛡️ 隐形反探测 WebGL欺骗、画布指纹噪声、navigator.webdriver隐藏、插件/语言欺骗
🔄 会话重用 通过CDP或用户数据目录连接到现有的Chrome浏览器——保留Cookie、登录、标签
🌍 多浏览器 Chromium、Firefox、WebKit——在所有引擎上进行测试
📱 50+设备预设 iPhone、iPad、Pixel、Galaxy、OnePlus、台式机——全视口/UA/触摸模拟
🌐 代理支持 带有旁路规则的HTTP/HTTPS/SOCKS5代理
📊 网络监控 自动捕获所有请求/响应、控制台日志、按类型筛选
📸 视觉注释 mark_page:交互式元素上的编号框——节省大量代币
💾 存储状态 保存/加载Cookie+本地存储以实现跨会话持久性
🎯 智能操作 自然语言命令:“点击登录”,“在搜索中键入hello”
📉 令牌优化 紧凑的输出,可配置的截断——与竞争对手相比,可节省60-80%的代币
🎬 视频录制 记录浏览器会话以进行调试和回放
📍 地理位置 覆盖基于位置的测试的纬度/经度
🔒 HTTPS错误 忽略内部/临时站点的证书错误

🚀 快速开始

安装

git clone https://github.com/user/browser-mcp-server.git
cd browser-mcp-server
npm install
npx playwright install
npm run build

跑

# Auto-detect: tries CDP on port 9222, falls back to launching a new browser
node dist/index.js

# Connect to existing Chrome (preserves your logged-in sessions)
chrome --remote-debugging-port=9222
node dist/index.js --cdp http://localhost:9222

# Reuse Chrome profile (keeps all cookies, logins, extensions)
node dist/index.js --user-data-dir "C:\Users\you\AppData\Local\Google\Chrome\User Data"

# Launch Firefox with iPhone emulation and proxy
node dist/index.js --browser firefox --device "iPhone 15" --proxy-server http://proxy:8080

VS代码MCP配置

增添 .vscode/mcp.json:

{
  "servers": {
    "browser": {
      "type": "stdio",
      "command": "node",
      "args": ["path/to/browser-mcp-server/dist/index.js"]
    }
  }
}

Claude桌面配置

增添 claude_desktop_config.json:

{
  "mcpServers": {
    "browser": {
      "command": "node",
      "args": ["path/to/browser-mcp-server/dist/index.js"],
      "env": {}
    }
  }
}

🛠️ 全部70个工具

连接(1)

工具 说明
browser_connect 连接到浏览器(CDP/配置文件/临时启动)。多浏览器、设备模拟、代理。

导航(5)

工具 说明
navigate 导航到具有可配置等待条件的URL
go_back 返回浏览器历史记录
go_forward 在浏览器历史记录中前进
reload 重新加载当前页面
wait_for_navigation 等待页面导航完成

页面/标签管理(4)

工具 说明
list_pages 列出所有打开的选项卡
new_page 打开新选项卡(可选URL)
close_page 按ID关闭选项卡
focus_page 将标签放在前面/焦点

类人互动(14)

工具 说明
click 用贝塞尔曲线鼠标移动单击元素
type_text 使用类似人类的按键时间打字
fill_form 用自然停顿填充多个表单字段
select_option 按值或标签选择下拉选项
check_checkbox 选中/取消选中复选框或单选按钮
hover 鼠标自然移动悬停
press_key 按键或组合键(Enter、Ctrl+C、Tab等)
scroll 以流畅的人形动作滚动
scroll_to_element 将元素滚动到视图中
wait_for_element 等待元素出现/消失
wait_for_text 等待页面上的特定文本
drag_and_drop 以自然运动将元素拖动到目标
upload_file 上传文件到输入
handle_dialog 接受或关闭浏览器对话框

阅读/观察——令牌优化(14)

工具 说明
get_page_content 获取可见文本(默认4000个字符)
get_page_html 获取HTML(截断以保存标记)
get_element_text 获取元素文本内容
get_element_attribute 获取元素属性值
get_element_value 获取表单元素值
element_exists 快速真/假存在检查
element_count 计数匹配选择器的元素
get_bounding_box 获取元素位置和大小
take_screenshot 截图页面或元素(PNG/base64)
get_accessibility_tree 紧凑型ARIA可访问性树
get_form_elements 列表表单元素(紧凑格式)
get_links 列表页面链接(重复数据消除)
get_table_data 将表数据提取为结构化JSON
evaluate_javascript 在页面上下文中运行JavaScript

Cookie和存储(10)

工具 说明
get_cookies 获取Cookie(压缩格式)
set_cookies 设置Cookie
clear_cookies 清除所有Cookie
get_local_storage 获取本地存储
set_local_storage 设置localStorage键值对
get_session_storage 获取会话存储
set_session_storage 设置会话存储键值对
clear_storage 清除本地存储、会话存储或两者
save_storage_state 将Cookie+本地存储保存为JSON文件
load_storage_state 从JSON文件加载Cookie+本地存储

网络监控(8)

工具 说明
wait_for_network_idle 等待所有网络请求完成
wait_for_url 等待URL与模式匹配
wait_for_response 等待网络响应匹配URL
wait_for_request 等待网络请求匹配URL
get_network_log 获取捕获的网络请求/响应
get_console_logs 获取捕获的控制台消息
block_urls 按模式(广告、跟踪器等)阻止URL
set_extra_headers 设置自定义HTTP标头

设备和视口(3)

工具 说明
set_viewport 设置响应式测试的视口大小
emulate_device 模拟设备(50+预设)
list_devices 列出所有可用的设备预设

地理位置和权限(3)

工具 说明
set_geolocation 覆盖浏览器地理位置
grant_permissions 授予浏览器权限
clear_permissions 清除所有已授予的权限

框架/iFrame支架(3)

工具 说明
list_frames 列出页面上的所有框架
execute_in_frame 在特定框架中运行JavaScript
click_in_frame 单击框架内的元素

PDF(1)

工具 说明
save_as_pdf 将页面另存为PDF(A4、信纸等)

视觉注释--标记_页(5)

工具 说明
mark_page 在交互元素上用编号框注释页面
unmark_page 删除注释
click_element 从mark_page按索引单击
type_into_element 从mark_page按索引键入元素
mark_page_and_screenshot 标记+屏幕截图(最适合视觉代理)

智能工具(2)

工具 说明
get_page_summary 超紧凑页面摘要(最小标记)
smart_action 自然语言浏览器操作

浏览器管理(2)

工具 说明
get_browser_info 获取浏览器配置详细信息
close_browser 关闭浏览器并清理

📱 支持的设备预设(50+)

iPhone: SE、12 Mini、12、12 Pro、12 Pro Max、13、13 Pro、14、14 Pro、14 Pro Max、15、15 Pro、15 Pro Max、16 Pro Max

iPad: 迷你、空气、Pro 11、Pro 12.9、第10代

安卓: Pixel 5、6、7、8 Pro、Galaxy S21、S23 Ultra、Z Fold 5、A54、OnePlus 12、Moto G、小米14、华为P60

桌面: Chrome 1920x1080、Chrome 1440、Firefox、Safari、Edge、小型笔记本电脑、超宽

景观: iPhone横向、iPad横向、Android横向


🔧 CLI选项

CONNECTION:
  --cdp <url>                 Connect via Chrome DevTools Protocol
  --user-data-dir <path>      Launch browser with user profile
  --executable-path <path>    Path to browser executable

BROWSER:
  --browser <engine>          chromium, firefox, or webkit (default: chromium)
  --headless                  Run in headless mode
  --timeout <ms>              Default action timeout (default: 30000)

VIEWPORT & DEVICE:
  --viewport <WxH>            Viewport size, e.g. 1920x1080
  --device <name>             Emulate device preset

NETWORK:
  --proxy-server <url>        Proxy URL
  --proxy-bypass <domains>    Domains to bypass proxy
  --ignore-https-errors       Ignore HTTPS certificate errors
  --block-service-workers     Block service workers

CONTEXT:
  --user-agent <string>       Custom user agent
  --locale <locale>           Browser locale (e.g. en-US)
  --timezone <tz>             Timezone (e.g. America/New_York)
  --color-scheme <scheme>     light, dark, or no-preference
  --geolocation <lat,lng>     Override geolocation
  --permissions <list>        Comma-separated permissions

SESSION:
  --storage-state <path>      Load session from JSON file

VIDEO:
  --record-video              Record browser session
  --video-dir <path>          Video output directory

环境变量

变量 CLI等效值
BROWSER_CDP_URL --cdp
BROWSER_USER_DATA_DIR --user-data-dir
BROWSER_EXECUTABLE_PATH --executable-path
BROWSER_ENGINE --browser
BROWSER_PROXY --proxy-server

🐳 码头工人

docker build -t browser-mcp-server .
docker run -i browser-mcp-server
docker run -i browser-mcp-server --headless --browser chromium

🏗️ 建筑

src/
├── index.ts           # CLI entry point, MCP server setup
├── browser-manager.ts # Browser lifecycle, multi-engine, stealth, tracking
├── tools.ts           # All 70 MCP tools with human-like behavior
├── resources.ts       # 6 MCP resources (page, cookies, console, network, etc.)
├── human.ts           # Human behavior engine (Bezier curves, natural typing)
├── devices.ts         # 50+ device emulation presets
├── utils.ts           # Shared utilities (selectors, accessibility, text extraction)
└── mark_page.js       # Page annotation script (numbered interactive elements)

🔒 防检测功能

  • navigator.webdriver 着手 false
  • Chrome运行时被欺骗
  • 权限查询已覆盖
  • 被欺骗的插件和语言
  • WebGL供应商/渲染器被覆盖(Intel Iris)
  • 画布指纹噪声注入
  • connection.rtt 一致性
  • 自动化命令行标志已禁用
  • 在所有互动中都有人性化的时间安排

📊 竞争优势

功能 此服务器 剧作家MCP(微软) MCP剧作家 Browserbase MCP
类人行为 ✅ 贝塞尔曲线 ❌ ❌ ❌
隐形反探测 ✅ 全套 ❌ ❌ ❌
会话重用(CDP) ✅ ✅ ❌ ❌ (云)
多浏览器 ✅ 3台发动机 ✅ ✅ ❌
设备仿真 ✅ 50+预设 ❌ ✅ 143 ❌
令牌优化 ✅ 紧凑型输出 ❌ ❌ ❌
网络监控 ✅ 自动捕捉 ❌ ❌ ❌
mark_page注释 ✅ ❌ ❌ ❌
聪明的自然动作 ✅ ❌ ❌ ❌
控制台日志捕获 ✅ 自动 ✅ ❌ ❌
视频录制 ✅ ❌ ✅ ✅
iframe支持 ✅ ✅ ❌ ❌
工具总数 70 ~20 ~30 ~15

📄 许可证

麻省理工学院