MCP Browser Debugger

MCP Browser Debugger

Enables comprehensive web frontend debugging and analysis through DOM inspection, JavaScript execution, network monitoring, console log capture, and automated browser interactions. Supports complete web development workflows including testing, data extraction, and performance analysis.

Category
访问服务器

README

MCP Browser Debugger

Servidor MCP avançado para debugging completo de frontend com análise de DOM, execução de JavaScript3. 🆕 Fluxo completo: Login e inspeção:

"Primeiro, verifique se o browser está aberto.
Se estiver fechado, abra o browser visível.
Depois faça login em https://meusite.com/login usando:
- Campo email: #email
- Campo senha: #password
- Botão: button.submit
- Email: meu@email.com
- Senha: minhasenha

Depois me mostre o DOM da página logada"
  1. Debugar uma página web:o de rede e muito mais.

Desenvolvido em TypeScript com padrões profissionais de código (ESLint + Prettier).

🚀 Funcionalidades

🌐 Controle do Browser

  • open_browser: Abre o browser em modo VISÍVEL (headful) para você ver as ações do agent em tempo real
  • login: Faz login automatizado e mantém a sessão ativa para inspeção

Navegação e Carregamento

  • navigate: Navega para qualquer URL com controle de timeout e condições de espera
  • get_page_info: Obtém informações completas sobre a página atual

Análise de DOM

  • get_dom: Extrai o HTML completo do DOM
  • get_element: Inspeciona elementos específicos com estilos computados
  • query_selector_all: Busca múltiplos elementos por seletor CSS
  • evaluate_xpath: Avalia expressões XPath

Código Fonte

  • get_page_source: Extrai todo código fonte incluindo scripts e estilos
  • execute_js: Executa JavaScript arbitrário no contexto da página

Debugging e Monitoramento

  • get_console_logs: Captura todos os logs do console
  • get_network_activity: Monitora todas as requisições HTTP
  • screenshot: Captura screenshots da página ou elementos específicos

Interação

  • click_element: Clica em elementos
  • type_text: Digita texto em campos de input

Inspeção de Dados

  • get_local_storage: Acessa localStorage
  • get_cookies: Lista todos os cookies

📦 Instalação

npm install
npm run build

🛠️ Scripts Disponíveis

npm run dev          # Desenvolvimento com ts-node
npm run start        # Executa código compilado
npm run build        # Compila TypeScript para JavaScript
npm run lint         # Verifica código com ESLint
npm run lint:fix     # Corrige problemas do ESLint automaticamente
npm run format       # Formata código com Prettier
npm run format:check # Verifica formatação sem modificar

⚙️ Configuração no Claude Desktop

Adicione ao seu arquivo de configuração do MCP client:

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "browser-debugger": {
      "command": "node",
      "args": ["c:\\Users\\Emmanuel\\Desktop\\mcp\\mcp-browser\\dist\\index.js"]
    }
  }
}

Nota: Após qualquer alteração no código, execute npm run build antes de reiniciar o Claude Desktop.

🔧 Uso

⚠️ IMPORTANTE: Fluxo Correto para Evitar Perda de Sessão

SEMPRE siga esta ordem:

  1. Primeiro: Verificar se browser está aberto

    "Verifique se o browser está aberto"
    
  2. Se fechado: Abrir browser visível

    "Abra o browser em modo visível"
    
  3. Fazer login (se necessário)

    "Faça login em https://site.com/login usando..."
    
  4. Continuar usando SEM abrir browser novamente

    "Navegue para...", "Me mostre o DOM", etc.
    

Exemplos de Comandos para o Agent

  1. 🆕 Verificar status do browser:
"Verifique se o browser está aberto"
  1. 🆕 Abrir browser visível:
"Abra o browser em modo visível e navegue para https://google.com"
  1. 🆕 Fluxo completo: Login e inspeção:
"Abra o browser visível, faça login em https://meusite.com/login usando:
- Campo email: #email
- Campo senha: #password
- Botão: button.submit
- Email: meu@email.com
- Senha: minhasenha

Depois me mostre o DOM da página logada"
  1. Debugar uma página web:
"Navegue para https://example.com e me mostre o DOM completo"
  1. Analisar erros de console:
"Navegue para https://meusite.com e me mostre todos os erros do console"
  1. Inspecionar elemento específico:
"Encontre o elemento com classe 'header' e me mostre seus estilos computados"
  1. Executar JavaScript customizado:
"Execute este código: document.querySelectorAll('img').length"
  1. Monitorar requisições de rede:
"Mostre todas as requisições HTTP que falharam (status 4xx ou 5xx)"
  1. Extrair código fonte:
"Me mostre todos os scripts inline e externos da página"
  1. Capturar screenshot:
"Tire um screenshot da página inteira"

🛠️ Ferramentas Disponíveis

1. get_browser_status ⭐ NOVO - USE PRIMEIRO!

Verifica se o browser está aberto ou fechado. SEMPRE use esta ferramenta antes de abrir um novo browser!

Parâmetros: Nenhum

Retorno:

  • isOpen: Browser está aberto?
  • headless: Modo headless (invisível) ou headful (visível)?
  • currentUrl: URL atual da página
  • pageTitle: Título da página atual
  • message: Mensagem explicativa

Exemplo de uso:

"Verifique se o browser está aberto"

⚠️ Por que é importante:

  • Se você abrir um browser que já está aberto, perderá a sessão de login!
  • Use esta ferramenta para evitar loops infinitos

2. close_browser ⭐ NOVO

Fecha o browser e encerra a sessão.

Parâmetros: Nenhum

⚠️ ATENÇÃO:

  • Isso irá perder todos os cookies, localStorage e sessões de login!
  • Use apenas quando o usuário pedir explicitamente para fechar o browser
  • Após fechar, você precisará usar open_browser para abrir novamente

Exemplo de uso:

"Feche o browser"

3. open_browser ⭐ NOVO

Abre o browser em modo VISÍVEL para você ver tudo que o agent está fazendo!

⚠️ ATENÇÃO: Use get_browser_status ANTES! Se o browser já estiver aberto, NÃO use esta ferramenta.

Parâmetros:

  • url: URL para abrir (opcional)
  • headless: Se false, browser fica visível (padrão: false)
  • width: Largura da janela (padrão: 1920)
  • height: Altura da janela (padrão: 1080)

Exemplo de uso:

Passo 1: "Verifique se o browser está aberto"
Passo 2: Se fechado -> "Abra o browser visível em https://github.com"

4. login ⭐ NOVO

Faz login automatizado e mantém a sessão aberta para inspeção.

Parâmetros:

  • url (obrigatório): URL da página de login
  • usernameSelector (obrigatório): Seletor CSS do campo username/email
  • passwordSelector (obrigatório): Seletor CSS do campo senha
  • submitSelector (obrigatório): Seletor CSS do botão de submit
  • username (obrigatório): Username ou email
  • password (obrigatório): Senha
  • waitForSelector: Seletor para confirmar login bem-sucedido (opcional)
  • timeout: Timeout em ms (padrão: 30000)
  • delayAfterType: Delay após digitar, útil para SPAs (padrão: 500)

Exemplo de uso:

"Faça login em https://exemplo.com/login usando:
- Campo de email: input[name='email']
- Campo de senha: input[type='password']
- Botão: button[type='submit']
- Email: usuario@exemplo.com
- Senha: minhasenha123"

5. navigate

Navega para uma URL específica.

Parâmetros:

  • url (obrigatório): URL completa
  • waitUntil: "load" | "domcontentloaded" | "networkidle0" | "networkidle2"
  • timeout: Timeout em ms

6. get_dom

Extrai o HTML completo do DOM.

Parâmetros:

  • prettify: Formatar HTML (padrão: true)

7. get_element

Inspeciona um elemento específico.

Parâmetros:

  • selector (obrigatório): Seletor CSS
  • includeStyles: Incluir estilos computados
  • includeAttributes: Incluir atributos

8. execute_js

Executa JavaScript no contexto da página.

Parâmetros:

  • code (obrigatório): Código JavaScript
  • returnValue: Retornar valor da execução

9. screenshot

Captura screenshot.

Parâmetros:

  • selector: Elemento específico (opcional)
  • fullPage: Página inteira com scroll
  • path: Caminho para salvar

10. get_console_logs

Recupera logs do console.

Parâmetros:

  • filterType: "all" | "log" | "error" | "warning" | "info"
  • clear: Limpar logs após recuperação

11. get_network_activity

Recupera atividade de rede.

Parâmetros:

  • filterType: "all" | "request" | "response"
  • clear: Limpar histórico

12. get_page_source

Extrai código fonte completo.

Parâmetros:

  • includeScripts: Incluir scripts
  • includeStyles: Incluir estilos

13. query_selector_all

Busca múltiplos elementos.

Parâmetros:

  • selector (obrigatório): Seletor CSS
  • limit: Limitar resultados (padrão: 100)

14. get_page_info

Informações gerais da página.

15. click_element

Clica em um elemento.

Parâmetros:

  • selector (obrigatório): Seletor CSS
  • waitForNavigation: Aguardar navegação

16. type_text

Digita texto em input.

Parâmetros:

  • selector (obrigatório): Seletor CSS
  • text (obrigatório): Texto a digitar
  • clearFirst: Limpar antes de digitar

17. get_local_storage

Acessa localStorage.

18. get_cookies

Lista cookies.

19. evaluate_xpath

Avalia XPath.

Parâmetros:

  • xpath (obrigatório): Expressão XPath

🎯 Casos de Uso

Debugging de Aplicação React/Vue/Angular

1. Navegar para a aplicação
2. Capturar console logs e erros
3. Inspecionar componentes específicos
4. Executar JavaScript para verificar estado da aplicação
5. Monitorar requisições API

Análise de Performance

1. Navegar com networkidle0
2. Capturar todas as requisições de rede
3. Analisar tamanho de recursos
4. Verificar tempo de carregamento

Extração de Dados

1. Navegar para a página
2. Executar query_selector_all para elementos desejados
3. Executar JavaScript customizado para processar dados
4. Extrair informações específicas

Testes de UI

1. Navegar para a página
2. Interagir com elementos (click, type)
3. Verificar mudanças no DOM
4. Capturar screenshots de evidência

🔒 Segurança

  • Browser executa em modo headless
  • Sandbox desabilitado apenas para compatibilidade local
  • Não armazena credenciais
  • Logs são mantidos em memória e podem ser limpos

📝 Notas

  • O browser é iniciado automaticamente na primeira ferramenta chamada
  • Uma única instância de página é mantida entre chamadas
  • Console logs e requisições de rede são acumulados entre navegações (use clear: true para limpar)
  • Screenshots podem ser salvos em disco ou retornados como base64

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选