parallel-browser-mcp
An MCP server for parallel browser automation by AI agents with multiple cloud providers
Install / Use
claude mcp add etairl -- npx -y github:etairl/parallel-browser-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AutomationSupported Platforms
Tags
Our assessment of parallel-browser-mcp
parallel-browser-mcp scores 82/100 on our quality scale, 261st of 657 Automation skills we index (top 40%).
Its MCP Server is 8.9 KB long, well organised into 12 sections with 17 code examples: a thorough specification that gives an agent plenty to work with.
It has 42 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 14 days ago, so parallel-browser-mcp is actively maintained.
- Our last check on 2026-09-19 found the source still online.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
parallel-browser-mcp compared with similar skills
All 4 of these similar skills score higher than parallel-browser-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| parallel-browser-mcp (this skill)by etairl | 82 | 42 | 14d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 85.2k | 8d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 73.7k | today | CLAUDE.md |
| rufloby ruvnet | 100 | 73.2k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.1k | today | CLAUDE.md |
Frequently asked questions
- How do I install parallel-browser-mcp?
- Run
claude mcp add etairl -- npx -y github:etairl/parallel-browser-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does parallel-browser-mcp work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is parallel-browser-mcp safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is Apache-2.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is parallel-browser-mcp still maintained?
- The repository was last updated 14 days ago, so parallel-browser-mcp is actively maintained.
Skill content
View source on GitHubparallel-browser-mcp
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:
playwrightfor local Chromiumbrowserbasevia@browserbasehq/sdkanchorviaanchorbrowsercloudflarevia Cloudflare Browser Run
Each browser session gets a numeric ID like 1, 2, 3, and every browser_* tool accepts a sessionId.
Features
- Multiple concurrent browser sessions in memory
- Provider abstraction shared across Browserbase, Anchor Browser, Cloudflare Browser Run, and local Playwright
- MCP session tools:
start_sessionclose_sessionclose_all_sessionsget_sessions
- Browser tools:
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
Quick Start
corepack 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
Configuration
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_PATH- direct env defaults
- built-in defaults
Recommended config shape:
{
"defaultProvider": "playwright",
"providers": {
"browserbase": {
"projectId": "proj_123",
"keepAlive": true
},
"anchor": {
"recording": false
},
"playwright": {
"launchOptions": {
"headless": true
},
"useCloakBrowser": false
}
}
}
Stealth Chromium via CloakBrowser
The playwright provider can optionally launch CloakBrowser instead of vanilla Chromium for sessions that need to bypass bot detection. Enable it per-config or via env:
{
"providers": {
"playwright": { "useCloakBrowser": true }
}
}
PLAYWRIGHT_USE_CLOAKBROWSER=true
cloakbrowser is an optional peer — install it only when you need stealth:
npm install cloakbrowser
The CloakBrowser binary (~200MB stealth Chromium) is downloaded automatically on the first session launch. Existing launchOptions / contextOptions continue to apply, and the rest of the provider behaves identically to standard Playwright.
Required credentials by provider:
playwright: nonebrowserbase:BROWSERBASE_API_KEY, plus aprojectIdin config orBROWSERBASE_PROJECT_IDanchor:ANCHOR_API_KEYcloudflare:CLOUDFLARE_API_TOKEN,CLOUDFLARE_ACCOUNT_ID
Optional env defaults:
BROWSERBASE_PROJECT_IDBROWSERBASE_KEEP_ALIVEBROWSERBASE_CONTEXT_IDBROWSERBASE_PERSISTPLAYWRIGHT_STORAGE_STATE_PATHPLAYWRIGHT_EXECUTABLE_PATHPLAYWRIGHT_CHANNELPLAYWRIGHT_USE_CLOAKBROWSER(trueto launch stealth Chromium via CloakBrowser; requiresnpm install cloakbrowser)
Installation
Use 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"
}
}
}
}
<details>
<summary>Claude Code</summary>
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.
</details> <details> <summary>Claude Desktop</summary>Follow the Claude Desktop MCP install flow and use the standard config above in the local MCP configuration file.
</details> <details> <summary>Codex</summary>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"]
</details>
<details>
<summary>Copilot</summary>
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"
}
}
}
}
</details>
<details>
<summary>Cursor</summary>
Go to Cursor Settings -> MCP -> Add new MCP Server, then use:
- command:
npx - args:
parallel-browser-mcp@latest
Or paste the standard config above into the MCP config editor.
</details> <details> <summary>Gemini</summary>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"
}
}
}
}
</details>
<details>
<summary>VS Code</summary>
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"]}'
</details>
Example Flow
- Call
start_sessionwith{ "provider": "playwright" } - Read the returned session
id - Call
browser_navigatewith{ "sessionId": 1, "url": "https://example.com" } - Call any additional
browser_*tool with the samesessionId - Call
close_sessionwhen done
Development
corepack pnpm install
corepack pnpm typecheck
corepack pnpm test
corepack pnpm test:coverage
corepack pnpm build
corepack pnpm smoke:local
Publishing
This repo is set up to publish as an npm package:
- the CLI entrypoint is
parallel-browser-mcp - production builds exclude tests and smoke scripts
- the published package only includes
dist,README.md, and.env.example
Before publishing:
corepack pnpm typecheck
corepack pnpm test
corepack pnpm build
npm pack --dry-run
GitHub Actions publishing:
.github/workflows/publish.ymlpublishes to npm on GitHub release publication or manual dispatch- set the
NPM_TOKENrepository secret before using the publish workflow
Examples
examples/localcontains a standalone npm package that connects toparallel-browser-mcpwith@langchain/mcp-adaptersand runs a LangChain agent against the local Playwright provider.examples/browserbasecontains a standalone npm package that connects LangChain to the published MCP server with Browserbase config and prompts the agent to usebrowser_screenshot.examples/anchorcontains a standalone npm package that connects LangChain to the published MCP server with Anchor config and prompts the agent to usebrowser_snapshot.examples/cloudflarecontains a standalone npm package that connects LangChain to the published MCP server with Cloudflare Browser Run config and prompts the agent to usebrowser_snapshot.- The root
.npmignoreexcludes the fullexamplesdirectory from npm publishing.
Testing
The repo includes:
- unit coverage for config loading, providers, registry behavior, session tools, and representative browser tools
- a local Playwright smoke script in
src/smoke/localSmoke.ts
Notes
start_sessionis intentionally small. Provider-specific behavior belongs in MCP configuration, not tool inputs.- The server logs to stderr so stdout stays clean for MCP JSON-RPC traffic.
- Browserbase and Anchor Browser are normalized to Playwright page operations after connection, so the browser tools stay provider-agnostic.
Related Skills
Agent-Reach
85.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
73.7kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ruflo
73.2k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
CowAgent
47.1kOpen-source super AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
