MCP Browser Console Capture Service
Un servicio de automatización de navegador para capturar la salida de la consola, útil para tareas como el análisis de sentimiento público.
Documentación
MCP Browser Console Capture Service
Resumen
MCP Browser Console Capture Service es un servicio de automatización de navegador basado en el framework FastMCP, diseñado específicamente para el sistema de análisis de opinión pública inteligente. Este servicio proporciona control completo del navegador, ejecución de JavaScript, captura de registros de consola y funciones de interacción con la página.
Stack tecnológico
- FastMCP: Marco de servicios MCP (Model Context Protocol)
- Selenium: Herramienta de automatización de navegador
- Chrome: Navegador principal compatible
- ChromeDriver: Controlador del navegador Chrome
- Python 3.10.12+: Entorno de ejecución
Funciones principales
🌐 Control del navegador
- Iniciar y gestionar instancias del navegador Chrome/Firefox
- Navegación de páginas y acceso a URL
- Ajuste y gestión del tamaño de la ventana
- Soporte para múltiples sesiones
📝 Ejecución de JavaScript
- Ejecutar código JavaScript personalizado en la página
- Obtener resultados de ejecución y valores de retorno
- Soporte para ejecución de scripts asíncronos
📊 Captura de registros de consola
- Capturar en tiempo real los registros de la consola del navegador
- Soporta múltiples niveles de registro (INFO, WARNING, ERROR, DEBUG)
- Devolución de datos de registro estructurados
- Límite configurable de cantidad de registros (máximo 10000)
🎯 Interacción con la página
- Clic en elementos y entrada de texto
- Espera de elementos y verificación de condiciones
- Función de captura de pantalla de la página
- Obtención de cookies e información de la página
🔐 Mecanismo de autenticación
- Soporta autenticación especial
test-token-eric - Permisos de administrador por defecto
- Registro completo de operaciones
Pasos de configuración del entorno
1. Requisitos del sistema
# Ubuntu/Debian 系统
sudo apt update
sudo apt install -y python3 python3-pip python3-venv
# 安装必要的系统依赖
sudo apt install -y wget unzip curl
2. Instalación de Chrome y ChromeDriver
Importante: Este servicio requiere una ruta específica para el navegador Chrome
3. Instalación de ChromeDriver
Importante: La versión de ChromeDriver debe coincidir con la versión de Chrome
Google Chrome for Testing 137.0.7151.119 ChromeDriver 137.0.7151.119 (e0ac9d12dff5f2d33c935958b06bf1ded7f1c08c-refs/branch-heads/7151@{#2356})
Descargue e instale usted mismo: dirección de origen json https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json
验证安装
/opt/chromedriver-linux64/chromedriver --version /opt/chrome-linux64/chrome --version
Configure la ruta correspondiente en server.py
4. Configuración del entorno Python
Crear entorno virtual
python3 -m venv venv
source venv/bin/activate
Instalar dependencias
pip install -r requirements.txt
Instalar FastMCP (si no está en requirements.txt)
pip install fastmcp
5. Configuración del archivo de configuración
Asegúrese de que la configuración de rutas en config.json sea correcta:
{
"mcpServers": {
"browser-console-capture": {
"command": "/home/cooper/IntelligentPublicSentimentSystem/mcp_services/browser_console_capture/server.py",
"args": [],
"env": {
"PYTHONPATH": "/home/cooper/IntelligentPublicSentimentSystem"
}
}
}
}
6. Configuración de permisos
# 确保 Chrome 和 ChromeDriver 有执行权限
sudo chmod +x /opt/chrome-linux64/chrome
sudo chmod +x /opt/chromedriver-linux64/chromedriver
# 创建必要的目录
mkdir -p ./screenshots
mkdir -p ./logs
7. Verificación del entorno
# 测试 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 el servicio
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 - 状态字典初始化完成
Ejemplos de uso
Operaciones básicas del 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)
Interacción con la 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)
Descripción de configuración
Configuración del navegador
chrome_binary_path: Ruta del ejecutable del navegador Chromechromedriver_path: Ruta del ejecutable de ChromeDriverheadless: Si se ejecuta en modo headlesswindow_size: Tamaño de la ventana del navegador
Configuración de registros
log_level: Nivel de registro (DEBUG, INFO, WARNING, ERROR)log_file: Ruta del archivo de registromax_log_size: Tamaño máximo del archivo de registro
Configuración de rendimiento
page_load_timeout: Tiempo de espera de carga de páginascript_timeout: Tiempo de espera de ejecución de scriptimplicit_wait: Tiempo de espera implícito
Funciones de herramientas MCP
| 函数名 | 描述 | 参数 |
|---|---|---|
start_browser | Iniciar instancia del navegador | browser_type, headless, window_width, window_height |
navigate_to_url | Navegar a una URL específica | url, wait_for_load |
execute_javascript | Ejecutar código JavaScript | script, capture_console |
get_console_logs | Obtener registros de consola | level, limit, clear_after_get |
click_element | Hacer clic en un elemento de la página | selector, by, timeout |
input_text | Ingresar texto | selector, text, by, clear_first |
take_screenshot | Tomar captura de pantalla de la página | filename, full_page, element_selector |
close_browser | Cerrar instancia del navegador | Ninguno |
Consideraciones de seguridad
-
Configuración de producción
- Usar modo headless, por defecto True
- Restringir acceso a la red
- Configurar reglas de firewall
-
Seguridad de autenticación
test-token-ericSe requiere token en ciertos casos
Guía de contribución
- Hacer fork del proyecto
- Crear una rama de funcionalidad
- Enviar cambios
- Crear un Pull Request
Licencia
Este proyecto utiliza la licencia MIT. Consulte el archivo LICENSE para más detalles.
Contacto
Si tiene preguntas o sugerencias, contacte a través de los siguientes medios:
- Problemas del proyecto: GitHub Issues
- Correo electrónico: Correo del proyecto
- Documentación: Documentación en línea