浏览器池mcp
一个动态浏览器池MCP服务器 @剧作家/mcp 使能够 多个并发浏览器会话 Claude Code和其他MCP客户。
问题解决了
标准的Playwright MCP服务器一次只允许一个浏览器实例。如果你试图同时使用多个Claude Code会话中的浏览器工具,你会得到:
Browser is already in use for C:\Users\...\mcp-chrome-xxx, use --isolated to run multiple instances浏览器池mcp 通过以下方式解决此问题:
- 在动态端口上按需生成Playwright MCP实例(9000+)
- 自动检测来自其他会话的端口冲突
- 将每个Claude会话分配给自己的独立浏览器
- 30分钟后自动清理空闲实例
建筑
Claude Code Session 1 ──stdio──> browser-pool-mcp ──SSE──> Playwright MCP (port 9000)
Claude Code Session 2 ──stdio──> browser-pool-mcp ──SSE──> Playwright MCP (port 9001)
Claude Code Session 3 ──stdio──> browser-pool-mcp ──SSE──> Playwright MCP (port 9002)每个Claude Code会话都有自己的浏览器池mcp进程,该进程在可用端口上生成并连接到一个隔离的Playwright实例。
安装
先决条件
- Node.js 18+
- npm
设置
- 克隆或下载此存储库:
git clone https://github.com/everdijsje/browser-pool-mcp.git
cd browser-pool-mcp
npm install- 添加到您的Claude Code MCP配置中(
~/.claude.json):
{
"mcpServers": {
"browser": {
"type": "stdio",
"command": "node",
"args": ["/path/to/browser-pool-mcp/index.js"]
}
}
}- 重新启动Claude代码
用法
在Claude Code中正常使用浏览器工具:
Navigate to https://example.com
Take a screenshot
Click on the "Learn more" link附加工具
pool_status-检查正在运行的浏览器实例的状态pool_test-测试异步响应的调试工具
配置
环境变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
BROWSER_POOL_DEBUG | 0 | 设置为 1 启用调试日志记录 debug.log |
常数在 index.js:
| 常量 | 默认值 | 描述 |
|---|---|---|
BASE_PORT | 9000 | Playwright实例的起始端口 |
MAX_INSTANCES | 10 | 最大并发浏览器实例数 |
INSTANCE_TIMEOUT_MS | 1800000 | 终止实例前的空闲超时(30分钟) |
运作原理
- 当您调用任何浏览器工具(例如。,
browser_navigate),浏览器池mcp:
- 检查此会话是否已分配Playwright实例 - 如果没有,则查找可用端口(检查冲突) - 生成物 npx @playwright/mcp@latest --port PORT --isolated - 通过SSE上的MCP SDK客户端连接 - 将工具调用代理给Playwright
- 每个会话在其生命周期内分配一个浏览器实例
- 实例在30分钟不活动后被清理
- 当达到最大实例数时,回收最旧的空闲实例
支持的浏览器工具
所有标准Playwright MCP工具均已代理:
browser_navigate-导航到URLbrowser_snapshot-获取页面可访问性快照browser_click-点击元素browser_type-在元素中键入文本browser_screenshot-截图browser_tabs-管理浏览器选项卡browser_press_key-按键盘键browser_hover-将鼠标悬停在元素上browser_select_option-选择下拉选项browser_evaluate-运行JavaScriptbrowser_wait_for-等待条件browser_resize-调整浏览器窗口大小browser_handle_dialog-处理警报/确认browser_file_upload-上传文件browser_console_messages-获取控制台日志browser_network_requests-获取网络活动browser_navigate_back-回去吧browser_close-关闭浏览器
依赖项
@modelcontextprotocol/sdk-用于服务器和客户端通信的MCP SDKzod-架构验证@playwright/mcp-作为子进程进行序列化(通过npx安装)
许可证
麻省理工学院
作者
由Claude Code为 埃弗迪斯
