Parallel Browser MCP
Servidor MCP para automação paralela de navegadores em múltiplos provedores (Playwright, Browserbase, Anchor, Cloudflare).
Documentação
parallel-browser-mcp
parallel-browser-mcp é um servidor MCP para automação de navegador paralela. Ele expõe um modelo de sessão numérica via MCP, permitindo que um único cliente crie e controle várias sessões de navegador ao mesmo tempo em vários provedores de navegador.
Provedores suportados:
playwrightpara Chromium localbrowserbasevia@browserbasehq/sdkanchorviaanchorbrowsercloudflarevia Cloudflare Browser Run
Cada sessão de navegador recebe um ID numérico como 1, 2, 3, e cada ferramenta browser_* aceita um sessionId.
Recursos
- Múltiplas sessões de navegador simultâneas em memória
- Abstração de provedor compartilhada entre Browserbase, Anchor Browser, Cloudflare Browser Run e Playwright local
- Ferramentas de sessão MCP:
start_sessionclose_sessionclose_all_sessionsget_sessions
- Ferramentas 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
Início Rápido
corepack pnpm install
corepack pnpm build
Execute localmente via stdio:
node dist/index.js
Execute como CLI de pacote npm:
npx parallel-browser-mcp@latest
Configuração
As configurações específicas de cada provedor são definidas no nível de configuração do servidor MCP, não por chamada de ferramenta.
O servidor lê a configuração nesta ordem:
BROWSER_MCP_CONFIGBROWSER_MCP_CONFIG_PATH- padrões diretos de variáveis de ambiente
- padrões internos
Formato de configuração recomendado:
{
"defaultProvider": "playwright",
"providers": {
"browserbase": {
"projectId": "proj_123",
"keepAlive": true
},
"anchor": {
"recording": false
},
"playwright": {
"launchOptions": {
"headless": true
},
"useCloakBrowser": false
}
}
}
Chromium Stealth via CloakBrowser
O provedor playwright pode opcionalmente iniciar o CloakBrowser em vez do Chromium padrão para sessões que precisam contornar a detecção de bots. Ative-o por configuração ou via variável de ambiente:
{
"providers": {
"playwright": { "useCloakBrowser": true }
}
}
PLAYWRIGHT_USE_CLOAKBROWSER=true
cloakbrowser é um peer opcional — instale-o apenas quando precisar de stealth:
npm install cloakbrowser
O binário do CloakBrowser (~200MB de Chromium stealth) é baixado automaticamente no primeiro lançamento de sessão. Os launchOptions / contextOptions existentes continuam valendo, e o restante do provedor se comporta de forma idêntica ao Playwright padrão.
Credenciais necessárias por provedor:
playwright: nenhumabrowserbase:BROWSERBASE_API_KEY, além de umprojectIdna configuração ouBROWSERBASE_PROJECT_IDanchor:ANCHOR_API_KEYcloudflare:CLOUDFLARE_API_TOKEN,CLOUDFLARE_ACCOUNT_ID
Padrões opcionais de variáveis de ambiente:
BROWSERBASE_PROJECT_IDBROWSERBASE_KEEP_ALIVEBROWSERBASE_CONTEXT_IDBROWSERBASE_PERSISTPLAYWRIGHT_STORAGE_STATE_PATHPLAYWRIGHT_EXECUTABLE_PATHPLAYWRIGHT_CHANNELPLAYWRIGHT_USE_CLOAKBROWSER(truepara iniciar Chromium stealth via CloakBrowser; requernpm install cloakbrowser)
Instalação
Use a configuração padrão abaixo em qualquer cliente MCP que suporte 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
Use a CLI do Claude Code para adicionar o servidor:
claude mcp add parallel-browser-mcp npx parallel-browser-mcp@latest
Se precisar de configuração de provedor, adicione as variáveis de ambiente na sua configuração MCP do Claude usando a configuração padrão acima.
Claude Desktop
Siga o fluxo de instalação MCP do Claude Desktop e use a configuração padrão acima no arquivo de configuração MCP local.
Codex
Use a CLI do Codex:
codex mcp add parallel-browser-mcp npx "parallel-browser-mcp@latest"
Ou adicione isto a ~/.codex/config.toml:
[mcp_servers.parallel-browser-mcp]
command = "npx"
args = ["parallel-browser-mcp@latest"]
Copilot
Use o fluxo interativo da CLI do Copilot:
/mcp add
Ou adicione isto 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
Vá para Cursor Settings -> MCP -> Add new MCP Server e use:
- comando:
npx - argumentos:
parallel-browser-mcp@latest
Ou cole a configuração padrão acima no editor de configuração MCP.
Gemini
Adicione o 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
Use o fluxo de instalação MCP no VS Code com a configuração padrão acima, ou instale com a CLI do VS Code:
code --add-mcp '{"name":"parallel-browser-mcp","command":"npx","args":["parallel-browser-mcp@latest"]}'
Fluxo de Exemplo
- Chame
start_sessioncom{ "provider": "playwright" } - Leia a sessão retornada
id - Chame
browser_navigatecom{ "sessionId": 1, "url": "https://example.com" } - Chame qualquer ferramenta
browser_*adicional com o mesmosessionId - Chame
close_sessionquando terminar
Desenvolvimento
corepack pnpm install
corepack pnpm typecheck
corepack pnpm test
corepack pnpm test:coverage
corepack pnpm build
corepack pnpm smoke:local
Publicação
Este repositório está configurado para publicar como pacote npm:
- o ponto de entrada da CLI é
parallel-browser-mcp - builds de produção excluem testes e scripts de smoke test
- o pacote publicado inclui apenas
dist,README.mde.env.example
Antes de publicar:
corepack pnpm typecheck
corepack pnpm test
corepack pnpm build
npm pack --dry-run
Publicação via GitHub Actions:
.github/workflows/publish.ymlpublica no npm na publicação de release do GitHub ou em dispatch manual- defina o segredo do repositório
NPM_TOKENantes de usar o workflow de publicação
Exemplos
examples/localcontém um pacote npm autônomo que se conecta aparallel-browser-mcpcom@langchain/mcp-adapterse executa um agente LangChain contra o provedor Playwright local.examples/browserbasecontém um pacote npm autônomo que conecta o LangChain ao servidor MCP publicado com configuração do Browserbase e instrui o agente a usarbrowser_screenshot.examples/anchorcontém um pacote npm autônomo que conecta o LangChain ao servidor MCP publicado com configuração do Anchor e instrui o agente a usarbrowser_snapshot.examples/cloudflarecontém um pacote npm autônomo que conecta o LangChain ao servidor MCP publicado com configuração do Cloudflare Browser Run e instrui o agente a usarbrowser_snapshot.- O
.npmignoreraiz exclui o diretório completoexamplesda publicação npm.
Testes
O repositório inclui:
- cobertura de testes unitários para carregamento de configuração, provedores, comportamento do registro, ferramentas de sessão e ferramentas representativas de navegador
- um script de smoke test local do Playwright em
src/smoke/localSmoke.ts
Observações
start_sessioné intencionalmente pequeno. O comportamento específico de provedor pertence à configuração MCP, não às entradas das ferramentas.- O servidor registra logs em stderr para que o stdout permaneça limpo para o tráfego MCP JSON-RPC.
- Browserbase e Anchor Browser são normalizados para operações de página do Playwright após a conexão, então as ferramentas de navegador permanecem agnósticas em relação ao provedor.