MCP Browser Console Capture Service

Um serviço de automação de navegador para capturar saída do console, útil para tarefas como análise de sentimento público.

Documentação

MCP Browser Console Capture Service

Visão Geral

O MCP Browser Console Capture Service é um serviço de automação de navegador baseado no framework FastMCP, projetado especificamente para o sistema de análise de opinião pública inteligente. Este serviço oferece controle completo do navegador, execução de JavaScript, captura de logs do console e funcionalidades de interação com a página.

Stack de Tecnologias

  • FastMCP: Framework de serviço MCP (Model Context Protocol)
  • Selenium: Ferramenta de automação de navegador
  • Chrome: Navegador principal suportado
  • ChromeDriver: Driver do navegador Chrome
  • Python 3.10.12+: Ambiente de execução

Funcionalidades Principais

🌐 Controle do Navegador

  • Iniciar e gerenciar instâncias do Chrome/Firefox
  • Navegação de páginas e acesso a URLs
  • Ajuste e gerenciamento do tamanho da janela
  • Suporte a múltiplas sessões

📝 Execução de JavaScript

  • Executar código JavaScript personalizado na página
  • Obter resultados de execução e valores de retorno
  • Suporte à execução de scripts assíncronos

📊 Captura de Logs do Console

  • Captura em tempo real dos logs do console do navegador
  • Suporte a vários níveis de log (INFO, WARNING, ERROR, DEBUG)
  • Retorno de dados de log estruturados
  • Limite configurável de quantidade de logs (máximo de 10.000)

🎯 Interação com a Página

  • Clique em elementos e entrada de texto
  • Espera de elementos e verificação de condições
  • Funcionalidade de captura de tela da página
  • Obtenção de cookies e informações da página

🔐 Mecanismo de Autenticação

  • Suporta autenticação especial test-token-eric
  • Permissões de administrador padrão
  • Registro completo de logs de operação

Etapas de Configuração do Ambiente

1. Requisitos do Sistema

# Ubuntu/Debian 系统
sudo apt update
sudo apt install -y python3 python3-pip python3-venv

# 安装必要的系统依赖
sudo apt install -y wget unzip curl

2. Instalação do Chrome e ChromeDriver

Importante: Este serviço requer o Chrome em um caminho específico

3. Instalação do ChromeDriver

Importante: A versão do ChromeDriver deve corresponder à versão do Chrome

Google Chrome for Testing 137.0.7151.119 ChromeDriver 137.0.7151.119 (e0ac9d12dff5f2d33c935958b06bf1ded7f1c08c-refs/branch-heads/7151@{#2356})

Baixe e instale você mesmo: endereço da fonte json https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json

Verificar instalação

/opt/chromedriver-linux64/chromedriver --version /opt/chrome-linux64/chrome --version

Configure o caminho correspondente no server.py

4. Configuração do Ambiente Python

Criar ambiente virtual

python3 -m venv venv
source venv/bin/activate

Instalar dependências

pip install -r requirements.txt

Instalar FastMCP (se não estiver no requirements.txt)

pip install fastmcp

5. Configuração do arquivo de configuração

Certifique-se de que os caminhos em config.json estejam configurados corretamente:

{
  "mcpServers": {
    "browser-console-capture": {
      "command": "/home/cooper/IntelligentPublicSentimentSystem/mcp_services/browser_console_capture/server.py",
      "args": [],
      "env": {
        "PYTHONPATH": "/home/cooper/IntelligentPublicSentimentSystem"
      }
    }
  }
}

6. Configuração de permissões

# 确保 Chrome 和 ChromeDriver 有执行权限
sudo chmod +x /opt/chrome-linux64/chrome
sudo chmod +x /opt/chromedriver-linux64/chromedriver

# 创建必要的目录
mkdir -p ./screenshots
mkdir -p ./logs

7. Verificação do ambiente

# 测试 Chrome 启动
/opt/chrome-linux64/chrome --version --no-sandbox

# 测试 ChromeDriver
/opt/chromedriver-linux64/chromedriver --version

# 测试 Python 依赖
python3 -c "import selenium; print('Selenium version:', selenium.__version__)"
python3 -c "import fastmcp; print('FastMCP imported successfully')"

Iniciar o serviço

fastmcp run server.py:mcp

IntelligentPublicSentimentSystem/mcp_services/browser_console_capture$ fastmcp run server.py:mcp

2025-06-20 03:02:09,006 - server_module - INFO - 日志系统初始化完成,配置已加载 2025-06-20 03:02:09,010 - auth_utils - INFO - === 浏览器MCP认证配置 === 2025-06-20 03:02:09,010 - auth_utils - INFO - 默认用户: eric 2025-06-20 03:02:09,010 - auth_utils - INFO - 默认角色: admin 2025-06-20 03:02:09,010 - auth_utils - INFO - 特殊Token: test-token-eric 2025-06-20 03:02:09,011 - auth_utils - INFO - 浏览器MCP将自动使用eric用户身份进行认证 2025-06-20 03:02:09,011 - auth_utils - INFO - ========================== 2025-06-20 03:02:09,011 - server_module - INFO - 初始化FastMCP服务器... 2025-06-20 03:02:09,016 - server_module - INFO - FastMCP服务器初始化完成 2025-06-20 03:02:09,017 - server_module - INFO - 状态字典初始化完成

Exemplos de uso

Operações básicas do navegador

# 启动浏览器
start_browser(browser_type="chrome", headless=False)

# 导航到页面
navigate_to_url("https://example.com")

# 执行 JavaScript
execute_javascript("console.log('Hello World'); return document.title;")

# 获取控制台日志
get_console_logs(level="ALL", limit=100)

Interação com a página

# 点击元素
click_element("#submit-button", by="css")

# 输入文本
input_text("#search-input", "搜索内容", by="css")

# 等待元素
wait_for_element(".loading-complete", condition="visible")

# 截图
take_screenshot("page_screenshot.png", full_page=True)

Instruções de configuração

Configuração do navegador

  • chrome_binary_path: Caminho do executável do Chrome
  • chromedriver_path: Caminho do executável do ChromeDriver
  • headless: Se deve executar em modo headless
  • window_size: Tamanho da janela do navegador

Configuração de logs

  • log_level: Nível de log (DEBUG, INFO, WARNING, ERROR)
  • log_file: Caminho do arquivo de log
  • max_log_size: Tamanho máximo do arquivo de log

Configuração de desempenho

  • page_load_timeout: Tempo limite de carregamento da página
  • script_timeout: Tempo limite de execução de script
  • implicit_wait: Tempo de espera implícita

Funções de ferramentas MCP

Nome da FunçãoDescriçãoParâmetros
start_browserIniciar instância do navegadorbrowser_type, headless, window_width, window_height
navigate_to_urlNavegar para URL especificadaurl, wait_for_load
execute_javascriptExecutar código JavaScriptscript, capture_console
get_console_logsObter logs do consolelevel, limit, clear_after_get
click_elementClicar em elemento da páginaselector, by, timeout
input_textInserir textoselector, text, by, clear_first
take_screenshotCapturar screenshot da páginafilename, full_page, element_selector
close_browserFechar instância do navegadorNenhum

Avisos de segurança

  1. Configuração de produção

    • Use o modo headless, o padrão é True
    • Restrinja o acesso à rede
    • Configure regras de firewall
  2. Segurança de autenticação

    • test-token-eric
    • Situações em que é necessário token

Guia de contribuição

  1. Faça um fork do projeto
  2. Crie um branch de funcionalidade
  3. Envie as alterações
  4. Crie um Pull Request

Licença

Este projeto é licenciado sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.

Contato

Se tiver dúvidas ou sugestões, entre em contato pelos seguintes meios: