使用说明
代理浏览器mcp
浏览器自动化MCP(模型上下文协议)服务器由 代理浏览器.
此MCP服务器通过MCP协议提供全面的浏览器自动化功能,使AI代理能够以编程方式与网页交互。
特性
- 导航:导航到URL、后退/前进、重新加载页面
- 元素交互:单击、填充、键入、悬停、拖放、上传文件
- 语义定位器:按角色、文本、标签、占位符、alt文本、标题、测试ID查找元素
- 快照:获取带有元素引用的可访问性树,以进行确定性交互
- 截图:捕获整页或元素截图
- 表单:选中/取消选中复选框,选择下拉菜单,管理输入
- JavaScript执行:在页面上下文中运行自定义JavaScript
- Cookie和存储:管理Cookie、本地存储、会话存储
- 网络控制:拦截请求、模拟响应、跟踪网络活动
- 选项卡和窗口:管理多个选项卡和窗口
- 框架:在iframe之间切换
- 浏览器设置:设置视口、模拟设备、地理位置、媒体功能
- 调试:跟踪、控制台日志、页面错误
- 录制:屏幕录制和视频流
- PDF导出:将页面另存为PDF
安装
npm install agent-browser-mcp
或者从源代码构建:
git clone https://github.com/xiahanhan/agent-browser-mcp.git
cd agent-browser-mcp
npm install
npm run build
设置
1.安装Chromium浏览器
npx playwright install chromium
在Linux上,您可能还需要系统依赖关系:
npx playwright install-deps chromium
2.配置MCP客户端
添加到您的MCP客户端配置中(例如,Claude Desktop配置位于 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS或 %APPDATA%\Claude\claude_desktop_config.json 在Windows上):
选项A:直接npx安装(推荐)
{
"mcpServers": {
"agent-browser": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:quantmew/agent-browser-mcp"]
}
}
}
此方法会自动从GitHub下载并运行最新版本,无需手动安装。
选项B:本地安装
{
"mcpServers": {
"browser": {
"command": "node",
"args": ["/path/to/agent-browser-mcp/dist/index.js"]
}
}
}
3.环境变量(可选)
# Use a custom browser executable (e.g., for serverless)
export AGENT_BROWSER_EXECUTABLE_PATH="/path/to/chromium"
# Run in headed mode (show browser window)
export AGENT_BROWSER_HEADED="1"
用法
基本工作流程
-
导航到页面
browser_navigate({ url: "https://example.com" }) -
获取快照 (带有元素引用的可访问性树)
browser_snapshot() // Returns: // - heading "Example Domain" [ref=e1] [level=1] // - link "More information..." [ref=e2] -
与元素互动 使用参考文献
browser_click({ selector: "@e2" }) browser_fill({ selector: "@e3", value: "test@example.com" })
示例:登录流程
// Navigate to login page
browser_navigate({ url: "https://example.com/login" })
// Get interactive elements
browser_snapshot({ interactiveOnly: true })
// Fill login form
browser_fill({ selector: "@e1", value: "user@example.com" })
browser_fill({ selector: "@e2", value: "password" })
// Click submit button
browser_click({ selector: "@e3" })
// Wait for navigation
browser_wait_for_url({ url: "**/dashboard" })
// Take screenshot
browser_screenshot({ path: "dashboard.png" })
// Close browser
browser_close()
示例:语义定位器
// Find by ARIA role
browser_find_by_role({
role: "button",
name: "Submit",
action: "click"
})
// Find by text
browser_find_by_text({
text: "Sign In",
action: "click"
})
// Find by label
browser_find_by_label({
label: "Email",
action: "fill",
value: "test@example.com"
})
示例:表单交互
// Fill inputs
browser_fill({ selector: "#name", value: "John Doe" })
browser_select({ selector: "#country", values: "USA" })
// Check checkbox
browser_check({ selector: "#agree" })
// Upload file
browser_upload({ selector: "#file", files: "/path/to/file.pdf" })
// Submit form
browser_click({ selector: "button[type='submit']" })
示例:JavaScript执行
// Execute custom JavaScript
browser_evaluate({
script: "document.title"
})
// With arguments
browser_evaluate({
script: "(a, b) => a + b",
args: [1, 2]
})
// Wait for condition
browser_wait_for_function({
expression: "window.ready === true"
})
示例:网络控制
// Mock API response
browser_network_route({
url: "**/api/**",
response: {
status: 200,
body: '{"success": true}',
contentType: "application/json"
}
})
// Block requests
browser_network_route({
url: "**/analytics/**",
abort: true
})
// View network requests
browser_network_requests({ filter: "api" })
// Remove routes
browser_network_unroute({ url: "**/api/**" })
示例:Cookie和存储
// Get all cookies
browser_cookies_get()
// Set cookies
browser_cookies_set({
cookies: [{
name: "session",
value: "abc123",
domain: "example.com"
}]
})
// Get localStorage
browser_storage_get({ type: "local" })
// Set localStorage
browser_storage_set({
type: "local",
key: "user",
value: '{"id": 123}'
})
// Clear storage
browser_storage_clear({ type: "local" })
示例:浏览器设置
// Set viewport size
browser_set_viewport({ width: 1920, height: 1080 })
// Emulate device
browser_set_device({ device: "iPhone 14" })
// Set geolocation
browser_set_geolocation({
latitude: 37.7749,
longitude: -122.4194
})
// Emulate dark mode
browser_emulate_media({ colorScheme: "dark" })
// Set timezone
browser_set_timezone({ timezone: "America/New_York" })
示例:选项卡和窗口
// Open new tab
browser_tab_new({ url: "https://example.com" })
// List tabs
browser_tab_list()
// Switch to tab
browser_tab_switch({ index: 1 })
// Close current tab
browser_tab_close()
// Open new window
browser_window_new({
viewport: { width: 800, height: 600 }
})
工具参考
导航
browser_navigate-导航到URLbrowser_snapshot-获取可访问性树browser_screenshot-截图browser_back-回去吧browser_forward-继续browser_reload-重新加载页面browser_url-获取当前URLbrowser_title-获取页面标题
元素交互
browser_click-点击元素browser_dblclick-双击元素browser_fill-清除并填写输入browser_type-键入文本browser_press-按键browser_hover-将鼠标悬停在元素上browser_focus-焦点元素browser_select-选择下拉选项browser_check-选中复选框browser_uncheck-取消选中复选框browser_tap-轻触元件(触摸)browser_clear-清晰输入browser_scroll-滚动页面/元素browser_drag-拖放browser_upload-上传文件
获取元素信息
browser_get_text-获取文本内容browser_get_inner_text-获取内部文本browser_get_inner_html-获取内部HTMLbrowser_get_attribute-获取属性值browser_get_value-获取输入值browser_is_visible-检查是否可见browser_is_enabled-检查是否启用browser_is_checked-检查是否已检查browser_count-统计匹配元素browser_bounding_box-获取边界框browser_highlight-突出显示元素browser_styles-获取计算样式
语义定位器
browser_find_by_role-按ARIA角色查找browser_find_by_text-按文本查找browser_find_by_label-按标签查找browser_find_by_placeholder-按占位符查找browser_find_by_alt_text-按alt文本查找browser_find_by_title-按标题属性查找browser_find_by_test_id-按测试ID查找browser_find_nth-查找第N个匹配元素
等待
browser_wait-等待元素或时间browser_wait_for_url-等待URLbrowser_wait_for_load_state-等待负载状态browser_wait_for_function-等待JS条件
JavaScript
browser_evaluate-执行JavaScript
内容
browser_get_content-获取页面HTMLbrowser_set_content-设置页面HTML
browser_pdf-另存为PDF
选项卡和窗口
browser_tab_list-列表选项卡browser_tab_new-打开新选项卡browser_tab_switch-切换到选项卡browser_tab_close-关闭选项卡browser_window_new-打开新窗口
框架
browser_frame-切换到iframebrowser_main_frame-切换到主机
Cookie和存储
browser_cookies_get-获取Cookiebrowser_cookies_set-设置Cookiebrowser_storage_get-获取存储空间browser_storage_set-设置存储browser_storage_clear-清空存储
浏览器设置
browser_set_viewport-设置视口大小browser_set_device-模拟设备browser_set_geolocation-设置地理位置browser_set_offline-设置离线模式browser_emulate_media-模拟媒体功能browser_set_timezone-设置时区browser_set_locale-设置区域设置browser_set_headers-设置HTTP标头browser_set_credentials-设置HTTP凭据
网络
browser_network_route-拦截请求browser_network_unroute-删除路线browser_network_requests-获取请求browser_wait_for_download-等待下载browser_download-触发器下载browser_response_body-获取响应正文
对话框
browser_dialog_accept-接受对话框browser_dialog_dismiss-取消对话框
调试
browser_console-获取控制台消息browser_errors-获取页面错误browser_trace_start-开始跟踪browser_trace_stop-停止追踪
高级输入
browser_keyboard-键盘快捷键browser_key_down-按住键browser_key_up-释放钥匙browser_mouse_move-移动鼠标browser_mouse_down-按下鼠标按钮browser_mouse_up-松开鼠标按钮browser_wheel-鼠标滚轮
杂项
browser_select_all-选择所有文本browser_set_value-设置输入值browser_multiselect-多选下拉菜单browser_dispatch_event-调度事件browser_add_script-添加脚本标签browser_add_style-添加样式标签browser_add_init_script-添加初始化脚本browser_bring_to_front-带到前面
录制和状态
browser_screencast_start-开始屏幕录制browser_screencast_stop-停止屏幕录制browser_recording_start-开始录制browser_recording_stop-停止录制browser_recording_restart-重新开始录制browser_state_save-保存状态browser_state_load-负载状态browser_har_start-启动HAR。browser_har_stop- 停止HARbrowser_clipboard-剪贴板操作
控制
browser_close-关闭浏览器
发展
# Install dependencies
npm install
# Build
npm run build
# Development mode
npm run dev
# Type check
npm run typecheck
# Format code
npm run format
建筑
此MCP服务器包装 代理浏览器 图书馆,提供:
- 剧作家 浏览器自动化
- 使用可访问性树和元素引用生成快照
- 语义定位器(角色、文本、标签、占位符等)
- 会话管理
- 网络侦听
- 多标签/窗口支持
许可证
阿帕奇-2.0
学分
基于 代理浏览器 Vercel实验室。