Parallel Browser MCP
Servidor MCP para automatización de navegadores en paralelo a través de múltiples proveedores (Playwright, Browserbase, Anchor, Cloudflare).
Documentación
parallel-browser-mcp
parallel-browser-mcp es un servidor MCP para automatización de navegadores en paralelo. Expone un modelo de sesión numérico sobre MCP para que un cliente pueda crear y controlar múltiples sesiones de navegador al mismo tiempo a través de múltiples proveedores de navegador.
Proveedores admitidos:
playwrightpara Chromium localbrowserbasevía@browserbasehq/sdkanchorvíaanchorbrowsercloudflarevía Cloudflare Browser Run
Cada sesión de navegador recibe un ID numérico como 1, 2, 3, y cada herramienta browser_* acepta un sessionId.
Características
- Múltiples sesiones de navegador concurrentes en memoria
- Abstracción de proveedor compartida entre Browserbase, Anchor Browser, Cloudflare Browser Run y Playwright local
- Herramientas de sesión MCP:
start_sessionclose_sessionclose_all_sessionsget_sessions
- Herramientas de navegador:
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
Inicio rápido
corepack pnpm install
corepack pnpm build
Ejecútalo localmente con stdio:
node dist/index.js
Ejecútalo como CLI de paquete npm:
npx parallel-browser-mcp@latest
Configuración
Los ajustes específicos del proveedor se configuran a nivel de configuración del servidor MCP, no por llamada de herramienta.
El servidor lee la configuración en este orden:
BROWSER_MCP_CONFIGBROWSER_MCP_CONFIG_PATH- valores predeterminados directos de entorno
- valores predeterminados integrados
Forma de configuración recomendada:
{
"defaultProvider": "playwright",
"providers": {
"browserbase": {
"projectId": "proj_123",
"keepAlive": true
},
"anchor": {
"recording": false
},
"playwright": {
"launchOptions": {
"headless": true
},
"useCloakBrowser": false
}
}
}
Chromium con sigilo vía CloakBrowser
El proveedor playwright puede lanzar opcionalmente CloakBrowser en lugar de Chromium estándar para sesiones que necesiten evadir la detección de bots. Actívalo por configuración o por entorno:
{
"providers": {
"playwright": { "useCloakBrowser": true }
}
}
PLAYWRIGHT_USE_CLOAKBROWSER=true
cloakbrowser es un peer opcional — instálalo solo cuando necesites sigilo:
npm install cloakbrowser
El binario de CloakBrowser (~200MB de Chromium con sigilo) se descarga automáticamente en el primer lanzamiento de sesión. Las configuraciones existentes de launchOptions / contextOptions siguen aplicándose, y el resto del proveedor se comporta de manera idéntica a Playwright estándar.
Credenciales requeridas por proveedor:
playwright: ningunabrowserbase:BROWSERBASE_API_KEY, más unprojectIden la configuración oBROWSERBASE_PROJECT_IDanchor:ANCHOR_API_KEYcloudflare:CLOUDFLARE_API_TOKEN,CLOUDFLARE_ACCOUNT_ID
Valores predeterminados de entorno opcionales:
BROWSERBASE_PROJECT_IDBROWSERBASE_KEEP_ALIVEBROWSERBASE_CONTEXT_IDBROWSERBASE_PERSISTPLAYWRIGHT_STORAGE_STATE_PATHPLAYWRIGHT_EXECUTABLE_PATHPLAYWRIGHT_CHANNELPLAYWRIGHT_USE_CLOAKBROWSER(truepara lanzar Chromium con sigilo vía CloakBrowser; requierenpm install cloakbrowser)
Instalación
Usa la configuración estándar a continuación en cualquier cliente MCP que admita 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"
}
}
}
}
Claude Code
Usa la CLI de Claude Code para agregar el servidor:
claude mcp add parallel-browser-mcp npx parallel-browser-mcp@latest
Si necesitas configuración de proveedor, agrega las variables de entorno en la configuración MCP de Claude usando la configuración estándar anterior.
Claude Desktop
Sigue el flujo de instalación MCP de Claude Desktop y usa la configuración estándar anterior en el archivo de configuración MCP local.
Codex
Usa la CLI de Codex:
codex mcp add parallel-browser-mcp npx "parallel-browser-mcp@latest"
O agrega esto a ~/.codex/config.toml:
[mcp_servers.parallel-browser-mcp]
command = "npx"
args = ["parallel-browser-mcp@latest"]
Copilot
Usa el flujo interactivo de la CLI de Copilot:
/mcp add
O agrega esto a ~/.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
Ve a Cursor Settings -> MCP -> Add new MCP Server, luego usa:
- comando:
npx - args:
parallel-browser-mcp@latest
O pega la configuración estándar anterior en el editor de configuración MCP.
Gemini
Agrega el servidor a .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
Usa el flujo de instalación MCP en VS Code con la configuración estándar anterior, o instala con la CLI de VS Code:
code --add-mcp '{"name":"parallel-browser-mcp","command":"npx","args":["parallel-browser-mcp@latest"]}'
Flujo de ejemplo
- Llama a
start_sessioncon{ "provider": "playwright" } - Lee el
idde sesión devuelto - Llama a
browser_navigatecon{ "sessionId": 1, "url": "https://example.com" } - Llama a cualquier herramienta adicional
browser_*con el mismosessionId - Llama a
close_sessioncuando termines
Desarrollo
corepack pnpm install
corepack pnpm typecheck
corepack pnpm test
corepack pnpm test:coverage
corepack pnpm build
corepack pnpm smoke:local
Publicación
Este repositorio está configurado para publicarse como paquete npm:
- el punto de entrada de la CLI es
parallel-browser-mcp - las compilaciones de producción excluyen pruebas y scripts de smoke
- el paquete publicado solo incluye
dist,README.mdy.env.example
Antes de publicar:
corepack pnpm typecheck
corepack pnpm test
corepack pnpm build
npm pack --dry-run
Publicación con GitHub Actions:
.github/workflows/publish.ymlpublica en npm al publicar una release en GitHub o mediante dispatch manual- establece el secreto del repositorio
NPM_TOKENantes de usar el flujo de trabajo de publicación
Ejemplos
examples/localcontiene un paquete npm independiente que se conecta aparallel-browser-mcpcon@langchain/mcp-adaptersy ejecuta un agente LangChain contra el proveedor Playwright local.examples/browserbasecontiene un paquete npm independiente que conecta LangChain al servidor MCP publicado con configuración de Browserbase y solicita al agente el uso debrowser_screenshot.examples/anchorcontiene un paquete npm independiente que conecta LangChain al servidor MCP publicado con configuración de Anchor y solicita al agente el uso debrowser_snapshot.examples/cloudflarecontiene un paquete npm independiente que conecta LangChain al servidor MCP publicado con configuración de Cloudflare Browser Run y solicita al agente el uso debrowser_snapshot.- El
.npmignoreraíz excluye el directorio completo deexamplesde la publicación npm.
Pruebas
El repositorio incluye:
- cobertura de unidades para carga de configuración, proveedores, comportamiento del registro, herramientas de sesión y herramientas representativas de navegador
- un script de smoke con Playwright local en
src/smoke/localSmoke.ts
Notas
start_sessiones intencionalmente pequeño. El comportamiento específico del proveedor pertenece a la configuración MCP, no a las entradas de las herramientas.- El servidor registra en stderr para mantener stdout limpio para el tráfico JSON-RPC de MCP.
- Browserbase y Anchor Browser se normalizan a operaciones de página de Playwright después de la conexión, por lo que las herramientas de navegador permanecen agnósticas al proveedor.