README
🚀 Browserplex
Browserplex 是一个用于管理多个命名浏览器会话的 MCP 服务器。标准的 Playwright MCP 服务器不支持多个并发用户,当多个 AI 代理试图同时使用它时,它们会在单个浏览器实例上产生冲突。而 Browserplex 通过提供命名会话解决了这一问题,允许每个代理管理自己独立的浏览器会话。它基于 Playwright 构建,支持 Chromium、Firefox、WebKit(Safari)和 Camoufox(隐身 Firefox)等浏览器。
🚀 快速开始
Browserplex 提供了便捷的方式来管理多个浏览器会话,你可以通过以下步骤快速上手。
📦 安装指南
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"]
}
}
}
高级用法
# 创建一个有界面的 WebKit (Safari) 会话
session_create name="safari" type="webkit" headless=false
# 导航到一个页面
browser_navigate session="safari" url="https://example.com"
# 获取页面内容
browser_snapshot session="safari"
# 截取屏幕截图
browser_take_screenshot session="safari"
# 填充表单
browser_fill_form session="safari" fields=[{selector: "#email", value: "test@example.com"}, {selector: "#password", value: "secret"}]
# 点击按钮
browser_click session="safari" selector="button.submit"
# 检查控制台是否有错误
browser_console_messages session="safari"
# 清理会话
session_destroy name="safari"
📚 详细文档
浏览器类型
| 类型 | 引擎 | 使用场景 |
|------|--------|----------|
| chromium | Chrome/Edge | 默认选项,速度快,开发工具好用 |
| 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 | 截取屏幕截图(自动调整大小以适应大语言模型上下文) |
交互操作
| 工具 | 描述 |
|------|-------------|
| browser_click | 点击元素(使用 CSS 选择器) |
| browser_type | 在输入框中输入文本 |
| browser_press_key | 按下键盘按键 |
| browser_hover | 悬停在元素上 |
| browser_drag | 拖放元素 |
| browser_select_option | 通过值、标签或索引选择下拉选项 |
| browser_file_upload | 上传文件到文件输入框 |
| browser_fill_form | 一次性填充多个表单字段 |
| browser_handle_dialog | 处理 JavaScript 对话框(警告、确认、提示) |
实用工具
| 工具 | 描述 |
|------|-------------|
| browser_wait_for | 等待元素或页面加载 |
| browser_evaluate | 在页面上下文中执行 JavaScript 代码 |
| browser_resize | 调整浏览器视口大小 |
| browser_console_messages | 获取控制台日志消息 |
| browser_network_requests | 获取网络请求 |
| browser_tabs | 列出、创建、切换或关闭标签页 |
✨ 主要特性
- 多并发会话 - 可同时运行不同的浏览器。
- 命名会话 - 在工具调用中通过名称引用会话。
- 自动调整截图大小 - 图像会自动调整大小以适应大语言模型的上下文限制。
- 结构化快照 - 包含语义标记(标题、链接、按钮)的页面内容。
- 控制台/网络捕获 - 通过捕获的控制台消息和网络请求进行调试。
- 标签页管理 - 每个会话可处理多个标签页。
- 优雅清理 - 服务器关闭时会话会自动关闭。
🔧 技术细节
开发命令
npm run build # 编译 TypeScript
npm test # 运行测试
npm run test:watch # 监听模式
📄 许可证
本项目采用 MIT 许可证。
微信扫一扫