Back to MCP directory
publicPublicdnsLocal runtime

browserplex

Browserplex是一个基于Playwright的多用户浏览器会话管理MCP服务器,支持Chromium、Firefox、WebKit和隐身模式,为多个AI代理提供隔离的浏览器会话环境,解决单实例冲突问题。

article

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 许可证。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client