Server data from the Official MCP Registry
MCP server for parallel browser automation across multiple providers.
MCP server for parallel browser automation across multiple providers.
The MCP server implements browser automation across multiple providers with reasonable security practices. Authentication is properly delegated to provider-specific API keys via environment variables, and input validation uses Zod schemas. However, arbitrary JavaScript evaluation via `browser_evaluate` poses a risk, file upload functionality could enable malicious file handling, and some error handling could be more robust. The code quality is generally good with appropriate permission scoping for its purpose. Package verification found 1 issue.
8 files analyzed · 7 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: BROWSER_MCP_CONFIG
Environment variable: BROWSER_MCP_CONFIG_PATH
Environment variable: BROWSERBASE_API_KEY
Environment variable: BROWSERBASE_PROJECT_ID
Environment variable: ANCHOR_API_KEY
Environment variable: CLOUDFLARE_API_TOKEN
Environment variable: CLOUDFLARE_ACCOUNT_ID
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-etairl-parallel-browser-mcp": {
"env": {
"ANCHOR_API_KEY": "your-anchor-api-key-here",
"BROWSER_MCP_CONFIG": "your-browser-mcp-config-here",
"BROWSERBASE_API_KEY": "your-browserbase-api-key-here",
"CLOUDFLARE_API_TOKEN": "your-cloudflare-api-token-here",
"CLOUDFLARE_ACCOUNT_ID": "your-cloudflare-account-id-here",
"BROWSERBASE_PROJECT_ID": "your-browserbase-project-id-here",
"BROWSER_MCP_CONFIG_PATH": "your-browser-mcp-config-path-here"
},
"args": [
"-y",
"parallel-browser-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
parallel-browser-mcp is an MCP server for parallel browser automation. It exposes a numeric session model over MCP so one client can create and control multiple browser sessions at the same time across multiple browser providers.
Supported providers:
playwright for local Chromiumbrowserbase via @browserbasehq/sdkanchor via anchorbrowsercloudflare via Cloudflare Browser RunEach browser session gets a numeric ID like 1, 2, 3, and every browser_* tool accepts a sessionId.
start_sessionclose_sessionclose_all_sessionsget_sessionsbrowser_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_timeoutcorepack pnpm install
corepack pnpm build
Run locally over stdio:
node dist/index.js
Run it as an npm package CLI:
npx parallel-browser-mcp@latest
Provider-specific settings are configured at the MCP server configuration level, not per tool call.
The server reads config in this order:
BROWSER_MCP_CONFIGBROWSER_MCP_CONFIG_PATHRecommended config shape:
{
"defaultProvider": "playwright",
"providers": {
"browserbase": {
"projectId": "proj_123",
"keepAlive": true
},
"anchor": {
"recording": false
},
"playwright": {
"launchOptions": {
"headless": true
}
}
}
}
Required credentials by provider:
playwright: nonebrowserbase: BROWSERBASE_API_KEY, plus a projectId in config or BROWSERBASE_PROJECT_IDanchor: ANCHOR_API_KEYcloudflare: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_IDOptional env defaults:
BROWSERBASE_PROJECT_IDBROWSERBASE_KEEP_ALIVEBROWSERBASE_CONTEXT_IDBROWSERBASE_PERSISTPLAYWRIGHT_STORAGE_STATE_PATHPLAYWRIGHT_EXECUTABLE_PATHPLAYWRIGHT_CHANNELUse the standard config below in any MCP client that supports stdio:
{
"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"
}
}
}
}
Use the Claude Code CLI to add the server:
claude mcp add parallel-browser-mcp npx parallel-browser-mcp@latest
If you need provider configuration, add the environment variables in your Claude MCP config using the standard config above.
Follow the Claude Desktop MCP install flow and use the standard config above in the local MCP configuration file.
Use the Codex CLI:
codex mcp add parallel-browser-mcp npx "parallel-browser-mcp@latest"
Or add this to ~/.codex/config.toml:
[mcp_servers.parallel-browser-mcp]
command = "npx"
args = ["parallel-browser-mcp@latest"]
Use the Copilot CLI interactive flow:
/mcp add
Or add this to ~/.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"
}
}
}
}
Go to Cursor Settings -> MCP -> Add new MCP Server, then use:
npxparallel-browser-mcp@latestOr paste the standard config above into the MCP config editor.
Add the server to .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"
}
}
}
}
Use the MCP install flow in VS Code with the standard config above, or install with the VS Code CLI:
code --add-mcp '{"name":"parallel-browser-mcp","command":"npx","args":["parallel-browser-mcp@latest"]}'
start_session with { "provider": "playwright" }idbrowser_navigate with { "sessionId": 1, "url": "https://example.com" }browser_* tool with the same sessionIdclose_session when donecorepack pnpm install
corepack pnpm typecheck
corepack pnpm test
corepack pnpm test:coverage
corepack pnpm build
corepack pnpm smoke:local
This repo is set up to publish as an npm package:
parallel-browser-mcpdist, README.md, and .env.exampleBefore publishing:
corepack pnpm typecheck
corepack pnpm test
corepack pnpm build
npm pack --dry-run
GitHub Actions publishing:
.github/workflows/publish.yml publishes to npm on GitHub release publication or manual dispatchNPM_TOKEN repository secret before using the publish workflowexamples/local contains a standalone npm package that connects to parallel-browser-mcp with @langchain/mcp-adapters and runs a LangChain agent against the local Playwright provider.examples/browserbase contains a standalone npm package that connects LangChain to the published MCP server with Browserbase config and prompts the agent to use browser_screenshot.examples/anchor contains a standalone npm package that connects LangChain to the published MCP server with Anchor config and prompts the agent to use browser_snapshot.examples/cloudflare contains a standalone npm package that connects LangChain to the published MCP server with Cloudflare Browser Run config and prompts the agent to use browser_snapshot..npmignore excludes the full examples directory from npm publishing.The repo includes:
src/smoke/localSmoke.tsstart_session is intentionally small. Provider-specific behavior belongs in MCP configuration, not tool inputs.Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.