基于浏览器
为什么存在: 标准的Playwright MCP服务器不支持多个并发用户。当多个AI代理试图同时使用它时,它们会在单个浏览器实例上发生冲突。Browserplex通过提供命名会话来解决这个问题,允许每个代理管理自己的隔离浏览器会话。
用于管理多个命名浏览器会话的MCP服务器。基于Playwright构建,支持Chromium、Firefox、WebKit(Safari)和Camoufox(隐形Firefox)。
安装
npm install
npm run build
用法
通过npx
{
"mcpServers": {
"browserplex": {
"type": "stdio",
"command": "npx",
"args": ["browserplex"]
}
}
}
本地开发
{
"mcpServers": {
"browserplex": {
"type": "stdio",
"command": "node",
"args": ["/path/to/browserplex/dist/index.js"]
}
}
}
浏览器类型
| 类型 | 引擎 | 用例 |
|---|
chromium | Chrome/Edge | 默认,快速,好的DevTools |
firefox | Firefox | 标准Firefox浏览器 |
webkit | Safari | 测试Safari渲染,iOS兼容性 |
camoufox | Firefox | 隐形浏览,反检测 |
工具
会话管理
| 工具 | 说明 |
|---|
session_create | 创建命名浏览器会话 |
session_list | 列出所有活动会话 |
session_destroy | 关闭并清理会话 |
导航
| 工具 | 说明 |
|---|
browser_navigate | 导航到URL |
browser_navigate_back | 返回浏览器历史记录 |
browser_snapshot | 获取页面标题、URL和可见文本内容 |
browser_take_screenshot | 捕获屏幕截图(根据LLM上下文自动调整大小;可选 savePath 将未调整大小的PNG写入磁盘) |
交互
| 工具 | 说明 |
|---|
browser_click | 单击元素(CSS选择器) |
browser_type | 在输入框中键入文本 |
browser_press_key | 按键盘键 |
browser_hover | 将鼠标悬停在元素上 |
browser_drag | 拖放元素 |
browser_select_option | 按值、标签或索引选择下拉选项 |
browser_file_upload | 将文件上传到文件输入 |
browser_fill_form | 一次填写多个表单字段 |
browser_handle_dialog | 处理JS对话框(警告、确认、提示) |
公用事业
| 工具 | 说明 |
|---|
browser_wait_for | 等待元素或页面加载 |
browser_evaluate | 在页面上下文中执行JavaScript |
browser_resize | 调整浏览器视口大小 |
browser_console_messages | 获取控制台日志消息 |
browser_network_requests | 获取网络请求 |
browser_tabs | 列出、创建、切换或关闭选项卡 |
示例用法
# Create a headed WebKit (Safari) session
session_create name="safari" type="webkit" headless=false
# Navigate to a page
browser_navigate session="safari" url="https://example.com"
# Get page content
browser_snapshot session="safari"
# Take a screenshot
browser_take_screenshot session="safari"
# Fill a form
browser_fill_form session="safari" fields=[{selector: "#email", value: "test@example.com"}, {selector: "#password", value: "secret"}]
# Click a button
browser_click session="safari" selector="button.submit"
# Check console for errors
browser_console_messages session="safari"
# Clean up
session_destroy name="safari"
特性
- 多个并发会话 -并排运行不同的浏览器
- 命名会话 -跨工具调用按名称引用会话
- 自动调整屏幕截图大小 -根据LLM上下文限制自动调整图像大小
- 结构化快照 -带有语义标记的页面内容(标题、链接、按钮)
- 控制台/网络捕获 -使用捕获的控制台消息和网络请求进行调试
- 选项卡管理 -每个会话使用多个选项卡
- 优雅的清理 -服务器关闭时会话自动关闭
发展
npm run build # Compile TypeScript
npm test # Run tests
npm run test:watch # Watch mode
许可证
麻省理工学院