🌐 浏览器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 |
📄 许可证
麻省理工学院