browser-mcp-server
Enables an AI agent to drive the user's real Google Chrome (using its existing logged-in sessions) to navigate URLs, click elements, fill form fields, capture screenshots, read page content and links, and wait for elements or text. Useful for automating web flows that would otherwise need manual intervention, such as deploys and configuration in web dashboards.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@browser-mcp-servernavigate to example.com and take a screenshot of the page"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
browser-mcp-server
Servidor MCP local (Node.js + Playwright) que permite ao Claude Code controlar o Google Chrome: navegar, clicar, preencher formulários, tirar screenshots e ler páginas. Útil para completar fluxos que exigiriam intervenção manual (deploys em painéis web, parametrizações em sistemas etc.), usando as sessões já logadas do seu perfil do Chrome.
Aviso: dá a um agente de IA controle de um navegador com suas sessões reais. Leia docs/security.md antes de usar.
Tools
Tool | O que faz |
| Abre uma URL e aguarda o carregamento |
| Clica por seletor CSS, texto visível ou aria-label |
| Preenche um campo de formulário |
| Salva um PNG da página |
| Lê título, URL, texto visível e links |
| Aguarda elemento ou texto |
Detalhes de parâmetros em docs/tools.md.
Related MCP server: claude-playwright
Requisitos
Node.js 20+
Google Chrome instalado (usa o Chrome real, não o Chromium do Playwright)
Instalação
git clone https://github.com/vicktor12/browser-mcp-server.git
cd browser-mcp-server
npm installA configuração do servidor é passada pelo próprio registro no Claude Code (-e VAR=valor, abaixo). O .env (cp .env.example .env) só é lido quando o servidor roda a partir da pasta do projeto (ex.: npm run test:e2e); quando o Claude Code o inicia, o diretório de trabalho é outro e o .env é ignorado.
Registrar no Claude Code
claude mcp add browser --scope user \
-e "CHROME_USER_DATA_DIR=<caminho do perfil>" \
-e CHROME_PROFILE=Default \
-- node "<caminho absoluto>/browser-mcp-server/index.js"Reinicie o Claude Code e confira com claude mcp list. Alternativamente, copie claude-settings.example.json para .mcp.json na raiz do seu projeto (configuração de MCP por projeto) e ajuste o caminho.
Feche o Chrome por completo antes de usar — o Playwright precisa de acesso exclusivo ao perfil.
Chrome 136+: use uma cópia do perfil
O Chrome 136+ recusa automação no diretório de dados padrão (DevTools remote debugging requires a non-default data directory). Por isso, aponte CHROME_USER_DATA_DIR para uma cópia do perfil. No Windows, com o Chrome fechado:
./scripts/copy-chrome-profile.ps1 # copia para %USERPROFILE%\.browser-mcp-profileA cópia mantém cookies e logins do momento da cópia; rode o script de novo para atualizar as sessões. A cópia contém dados sensíveis (sessões): mantenha-a fora de repositórios e de pastas sincronizadas. Em macOS/Linux, copie o diretório do perfil manualmente para outro caminho.
Configuração
Tudo por variáveis de ambiente (ver .env.example):
Variável | Padrão | Descrição |
| perfil temporário dedicado | Diretório de dados do Chrome (mantém logins) |
|
| Perfil dentro do diretório |
|
| Onde salvar screenshots |
|
| Arquivo de auditoria |
|
|
|
|
| Timeout das operações (ms) |
|
| Termos bloqueados no hostname |
Caminhos típicos do perfil:
Windows:
C:\Users\<usuario>\AppData\Local\Google\Chrome\User DatamacOS:
~/Library/Application Support/Google/ChromeLinux:
~/.config/google-chrome
Como o agente deve usar
Toda chamada deve incluir [AGENT-BROWSER-TASK] em task_description, com o que está sendo feito e por quê:
[AGENT-BROWSER-TASK] Acessando painel de hospedagem para realizar deploy
da versão 1.2.0 do sistema. Ação: clicar no botão Deploy na aba Production.
Risco identificado: nenhum. Credenciais: não serão inseridas nesta sessão.Sem o marcador (ou com qualquer padrão de risco) o guard bloqueia a chamada e devolve um erro descritivo.
Login: o guard bloqueia campos de senha/token (password, secret, token...). Faça login no site manualmente na cópia do perfil (ou deixe a sessão já salva nela) e só então peça ao agente para operar. O agente não digita credenciais.
Desenvolvimento
npm test # testes unitários (sem browser)
npm run lint # ESLint
npm run test:e2e # fluxo real contra example.com (precisa de Chrome; BROWSER_HEADLESS=true para não abrir janela)Mais em docs/architecture.md e CONTRIBUTING.md.
Limitações conhecidas
O Chrome deve estar fechado quando o servidor iniciar (conflito de perfil).
Chrome 136+ recusa automação sobre o diretório de dados padrão: use uma cópia do perfil (ver acima). Sessões na cópia não se sincronizam com o seu Chrome do dia a dia.
Páginas com 2FA exigem intervenção manual prévia.
Sites com anti-bot pesado (ex.: Cloudflare challenge) podem bloquear.
Uma única aba ativa; sem suporte a múltiplas abas.
Licença
This server cannot be deployed
Maintenance
Related MCP Connectors
Real Chrome for agents: start a browser, read pages as numbered markdown, click, type, hand off.
Run, debug and inspect Playwright E2E tests from any AI agent: diagnostics, live DOM, selectors.
1Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables controlling a real Chrome browser from MCP hosts like Claude, with extension-based or CDP fallback, supporting tabs, navigation, interaction, and page reading tools.20464 npm6MIT
- AlicenseNot gradedqualityCmaintenanceEnables browser automation and web interaction control through Playwright, allowing Claude Code to navigate, click, fill forms, take screenshots, and manage sessions.379 npm8MIT
- AlicenseNot gradedqualityCmaintenanceEnables natural language browser automation through Claude, wrapping Playwright to execute commands like navigation, clicking, form filling, and screenshots.9 npm30MIT
- FlicenseAqualityCmaintenanceGives Claude control of a real, headed Chromium browser via Playwright, enabling web navigation, clicking, typing, screenshots, and JavaScript evaluation.8-