parallel-browser-mcp
parallel-browser-mcp
parallel-browser-mcp 是一个用于并行浏览器自动化的 MCP 服务器。它通过 MCP 公开了一个数字会话模型,以便一个客户端可以同时创建和控制跨多个浏览器提供商的多个浏览器会话。
支持的提供商:
playwright(用于本地 Chromium)browserbase(通过@browserbasehq/sdk)anchor(通过anchorbrowser)cloudflare(通过 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
}
}
}
}各提供商所需的凭据:
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_CHANNEL
安装
在任何支持 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 CLI 添加服务器:
claude mcp add parallel-browser-mcp npx parallel-browser-mcp@latest如果您需要提供商配置,请使用上述标准配置在您的 Claude MCP 配置中添加环境变量。
按照 Claude Desktop MCP 安装流程,并在本地 MCP 配置文件中使用上述标准配置。
使用 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 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 Settings -> MCP -> Add new MCP Server,然后使用:
command:
npxargs:
parallel-browser-mcp@latest
或者将上述标准配置粘贴到 MCP 配置编辑器中。
将服务器添加到 .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 中使用 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-runGitHub Actions 发布:
.github/workflows/publish.yml在 GitHub 发布或手动触发时发布到 npm在使用发布工作流之前,请设置
NPM_TOKEN仓库密钥
示例
examples/local包含一个独立的 npm 包,它使用@langchain/mcp-adapters连接到parallel-browser-mcp,并针对本地 Playwright 提供商运行 LangChain 代理。examples/browserbase包含一个独立的 npm 包,它使用 Browserbase 配置将 LangChain 连接到已发布的 MCP 服务器,并提示代理使用browser_screenshot。examples/anchor包含一个独立的 npm 包,它使用 Anchor 配置将 LangChain 连接到已发布的 MCP 服务器,并提示代理使用browser_snapshot。examples/cloudflare包含一个独立的 npm 包,它使用 Cloudflare Browser Run 配置将 LangChain 连接到已发布的 MCP 服务器,并提示代理使用browser_snapshot。根目录下的
.npmignore从 npm 发布中排除了整个examples目录。
测试
该仓库包括:
针对配置加载、提供商、注册表行为、会话工具和代表性浏览器工具的单元覆盖
src/smoke/localSmoke.ts中的本地 Playwright 冒烟测试脚本
注意事项
start_session被设计得尽可能简单。特定于提供商的行为应放在 MCP 配置中,而不是工具输入中。服务器将日志记录到 stderr,以便 stdout 保持干净,供 MCP JSON-RPC 流量使用。
Browserbase 和 Anchor Browser 在连接后被标准化为 Playwright 页面操作,因此浏览器工具保持与提供商无关。
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/etairl/parallel-browser-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server