关于 Parallel Browser Mcp
parallel-browser-mcp 是一个 MCP 服务,用于并行自动化浏览器,可在同一客户端中同时控制多个浏览器会话。它支持本地 Playwright Chromium、Browserbase、Anchor Browser 和 Cloudflare Browser Run 等多种提供方,并使用统一的工具接口。适合需要并发浏览网页或抓取数据的开发者。
主要功能
- 01内存中同时运行多个浏览器会话
- 02跨多个提供方的统一工具接口
- 03提供页面导航、点击、填写与截图等工具
- 04支持可选的 CloakBrowser 隐身 Chromium
适用场景
- 01并行打开多个页面进行数据抓取
- 02使用大模型在浏览器中执行表单填写与截图
- 03在不同云浏览器提供方之间切换测试同一流程
MCP 相关
该项目是 MCP 服务,通过 start_session、close_session 及 browser_* 系列工具,让 MCP 客户端以数字会话 ID 控制浏览器。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y parallel-browser-mcpBROWSER_MCP_CONFIGInline JSON configuration for providers and defaults. See README for shape.BROWSER_MCP_CONFIG_PATHPath to a JSON file with provider configuration.BROWSERBASE_API_KEY密钥Browserbase API key (required when using the browserbase provider).BROWSERBASE_PROJECT_IDBrowserbase project ID (required when using the browserbase provider, unless set in config).ANCHOR_API_KEY密钥Anchor Browser API key (required when using the anchor provider).CLOUDFLARE_API_TOKEN密钥Cloudflare API token (required when using the cloudflare provider).CLOUDFLARE_ACCOUNT_IDCloudflare account ID (required when using the cloudflare provider).PLAYWRIGHT_USE_CLOAKBROWSERSet to 'true' to launch the local Playwright provider via CloakBrowser (https://cloakbrowser.dev/) stealth Chromium. Requires installing the optional 'cloakbrowser' npm package.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
26收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| provider | enum | 否 | browserbase | anchor | playwright | cloudflare |
| sessionName | string | 否 |
详细介绍
parallel-browser-mcp
parallel-browser-mcp 是一款用于并行浏览器自动化的 MCP 服务。它通过 MCP 提供数字会话模型,让一个客户端能够同时创建和控制多个浏览器提供方上的多个浏览器会话。
支持的提供方:
playwright:用于本地 Chromiumbrowserbase:通过@browserbasehq/sdkanchor:通过anchorbrowsercloudflare:通过 Cloudflare Browser Run
每个浏览器会话都会分配一个数字 ID,例如 1、2、3,每个 browser_* 工具都接受 sessionId。
功能
- 在内存中维护多个并发浏览器会话
- 在 Browserbase、Anchor Browser、Cloudflare Browser Run 和本地 Playwright 之间共享提供方抽象
- MCP 会话工具:
start_sessionclose_sessionclose_all_sessionsget_sessions
- 浏览器工具:
browser_navigatebrowser_go_backbrowser_clickbrowser_fillbrowser_fill_formbrowser_screenshotbrowser_snapshotbrowser_hoverbrowser_dragbrowser_select_optionbrowser_generate_locatorbrowser_get_page_structurebrowser_evaluatebrowser_keyboard_pressbrowser_keyboard_typebrowser_mouse_movebrowser_mouse_click_xybrowser_mouse_dragbrowser_upload_filebrowser_wait_for_selectorbrowser_wait_for_timeout
快速开始
corepack pnpm install
corepack pnpm build
通过 stdio 在本地运行:
node dist/index.js
将其作为 npm 包 CLI 运行:
npx parallel-browser-mcp@latest
配置
提供方专属设置在 MCP 服务配置级别进行配置,而非针对每次工具调用单独配置。
服务按以下顺序读取配置:
BROWSER_MCP_CONFIGBROWSER_MCP_CONFIG_PATH- 直接使用环境变量默认值
- 内置默认值
推荐的配置格式:
{
"defaultProvider": "playwright",
"providers": {
"browserbase": {
"projectId": "proj_123",
"keepAlive": true
},
"anchor": {
"recording": false
},
"playwright": {
"launchOptions": {
"headless": true
},
"useCloakBrowser": false
}
}
}
通过 CloakBrowser 使用隐身 Chromium
对于需要绕过机器人检测的会话,playwright 提供方可选择启动 CloakBrowser,而非原生 Chromium。可在每份配置中启用,也可通过环境变量启用:
{
"providers": {
"playwright": { "useCloakBrowser": true }
}
}
PLAYWRIGHT_USE_CLOAKBROWSER=true
cloakbrowser 是可选的对等依赖——仅在需要隐身功能时安装:
npm install cloakbrowser
CloakBrowser 二进制文件(约 200MB 的隐身 Chromium)会在首次启动会话时自动下载。现有的 launchOptions / contextOptions 仍然适用,提供方的其他行为与标准 Playwright 完全相同。
各提供方所需的凭据:
playwright:无browserbase:BROWSERBASE_API_KEY,以及配置中的projectId或BROWSERBASE_PROJECT_IDanchor:ANCHOR_API_KEYcloudflare:CLOUDFLARE_API_TOKEN、CLOUDFLARE_ACCOUNT_ID
可选的环境变量默认值:
BROWSERBASE_PROJECT_IDBROWSERBASE_KEEP_ALIVEBROWSERBASE_CONTEXT_IDBROWSERBASE_PERSISTPLAYWRIGHT_STORAGE_STATE_PATHPLAYWRIGHT_EXECUTABLE_PATHPLAYWRIGHT_CHANNELPLAYWRIGHT_USE_CLOAKBROWSER(设为true,即可通过 CloakBrowser 启动隐身 Chromium;需要npm install cloakbrowser)
安装
在支持 stdio 的任意 MCP 客户端中使用以下标准配置:
{
"mcpServers": {
"parallel-browser-mcp": {
"command": "npx",
"args": ["parallel-browser-mcp@latest"],
"env": {
"BROWSER_MCP_CONFIG": "{\"defaultProvider\":\"playwright\",\"providers\":{\"playwright\":{\"launchOptions\":{\"headless\":true}}}}",
"BROWSERBASE_API_KEY": "your_browserbase_key",
"ANCHOR_API_KEY": "your_anchor_key"
}
}
}
}
Claude Code
使用 Claude Code CLI 添加服务:
claude mcp add parallel-browser-mcp npx parallel-browser-mcp@latest
如果需要配置提供方,请使用上述标准配置,在 Claude MCP 配置中添加环境变量。
Claude Desktop
按照 Claude Desktop 的 MCP 安装流程,在本地 MCP 配置文件中使用上述标准配置。
Codex
使用 Codex CLI:
codex mcp add parallel-browser-mcp npx "parallel-browser-mcp@latest"
或将以下内容添加到 ~/.codex/config.toml:
[mcp_servers.parallel-browser-mcp]
command = "npx"
args = ["parallel-browser-mcp@latest"]
Copilot
使用 Copilot CLI 交互流程:
/mcp add
或将以下内容添加到 ~/.copilot/mcp-config.json:
{
"mcpServers": {
"parallel-browser-mcp": {
"type": "local",
"command": "npx",
"tools": ["*"],
"args": ["parallel-browser-mcp@latest"],
"env": {
"BROWSER_MCP_CONFIG": "{\"defaultProvider\":\"playwright\",\"providers\":{\"playwright\":{\"launchOptions\":{\"headless\":true}}}}",
"BROWSERBASE_API_KEY": "your_browserbase_key",
"ANCHOR_API_KEY": "your_anchor_key"
}
}
}
}
Cursor
前往 Cursor Settings -> MCP -> Add new MCP Server,然后使用:
- 命令:
npx - 参数:
parallel-browser-mcp@latest
或将上述标准配置粘贴到 MCP 配置编辑器中。
Gemini
将服务添加到 .gemini/settings.json:
{
"mcpServers": {
"parallel-browser-mcp": {
"command": "npx",
"args": ["parallel-browser-mcp@latest"],
"env": {
"BROWSER_MCP_CONFIG": "{\"defaultProvider\":\"playwright\",\"providers\":{\"playwright\":{\"launchOptions\":{\"headless\":true}}}}",
"BROWSERBASE_API_KEY": "your_browserbase_key",
"ANCHOR_API_KEY": "your_anchor_key"
}
}
}
}
VS Code
在 VS Code 中使用 MCP 安装流程和上述标准配置,或使用 VS Code CLI 安装:
code --add-mcp '{"name":"parallel-browser-mcp","command":"npx","args":["parallel-browser-mcp@latest"]}'
示例流程
- 使用
{ "provider": "playwright" }调用start_session - 读取返回的会话
id - 使用
{ "sessionId": 1, "url": "https://example.com" }调用browser_navigate - 使用相同的
sessionId调用其他任意browser_*工具 - 完成后调用
close_session
开发
corepack pnpm install
corepack pnpm typecheck
corepack pnpm test
corepack pnpm test:coverage
corepack pnpm build
corepack pnpm smoke:local
发布
此仓库已配置为发布 npm 包:
- CLI 入口点为
parallel-browser-mcp - 生产构建会排除测试和冒烟测试脚本
- 发布的包仅包含
dist、README.md和.env.example
发布前:
corepack pnpm typecheck
corepack pnpm test
corepack pnpm build
npm pack --dry-run
GitHub Actions 发布:
.github/workflows/publish.yml会在发布 GitHub Release 或手动触发时发布到 npm- 使用发布工作流前,请设置
NPM_TOKEN仓库机密
示例
examples/local包含一个独立的 npm 包,它使用@langchain/mcp-adapters连接到parallel-browser-mcp,并通过本地 Playwright 提供方运行 LangChain Agent。examples/browserbase包含一个独立的 npm 包,它使用 Browserbase 配置将 LangChain 连接到已发布的 MCP 服务,并提示 Agent 使用browser_screenshot。examples/anchor包含一个独立的 npm 包,它使用 Anchor 配置将 LangChain 连接到已发布的 MCP 服务,并提示 Agent 使用browser_snapshot。examples/cloudflare包含一个独立的 npm 包,它使用 Cloudflare Browser Run 配置将 LangChain 连接到已发布的 MCP 服务,并提示 Agent 使用browser_snapshot。- 根目录的
.npmignore会在发布 npm 包时排除整个examples目录。
测试
此仓库包含:
- 覆盖配置加载、提供方、注册表行为、会话工具和代表性浏览器工具的单元测试
- 位于
src/smoke/localSmoke.ts的本地 Playwright 冒烟测试脚本
备注
start_session刻意保持精简。提供方特定的行为应在 MCP 配置中设置,而不是作为工具输入。- 服务将日志写入 stderr,以确保 stdout 不受影响,可用于 MCP JSON-RPC 通信。
- Browserbase 和 Anchor Browser 连接后会统一为 Playwright 页面操作,因此浏览器工具不依赖特定提供方。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。