Browser-Use MCP Server

by Saik0s
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Integration with Google's Gemini language models via their API for AI-driven browser automation

  • Integration with Ollama for local language model inference to power browser automation

  • Integration with OpenAI's language models via their API for AI-driven browser automation

Servidor MCP que utiliza el navegador

Nota del proyecto : Esta implementación del servidor MCP se basa en la base del uso del navegador y la interfaz web . La lógica principal de automatización del navegador y los patrones de configuración se adaptaron del proyecto original.

Servidor de automatización de navegador impulsado por IA que implementa el Protocolo de Contexto de Modelo (MCP) para el control del navegador en lenguaje natural y la investigación web.

Características

  • 🧠 Integración MCP : implementación de protocolo completo para la comunicación del agente de IA.
  • 🌐 Automatización del navegador : navegación de páginas, llenado de formularios, interacción de elementos a través de lenguaje natural (herramienta run_browser_agent ).
  • 👁️ Comprensión visual : análisis de captura de pantalla opcional para LLM con capacidad visual.
  • 🔄 Persistencia del estado : opción para administrar una sesión de navegador en múltiples llamadas MCP o conectarse al navegador del usuario.
  • 🔌 Compatibilidad con múltiples LLM : se integra con OpenAI, Anthropic, Azure, DeepSeek, Google, Mistral, Ollama, OpenRouter, Alibaba, Moonshot, Unbound AI.
  • 🔍 Herramienta de investigación profunda : herramienta dedicada a la investigación web de varios pasos y la generación de informes (herramienta run_deep_search ).
  • ⚙️ Configuración de variables de entorno : totalmente configurable a través de variables de entorno.
  • 🔗 Conexión CDP : capacidad de conectarse y controlar una instancia de Chrome/Chromium iniciada por el usuario a través del protocolo Chrome DevTools.

Inicio rápido

Prerrequisitos

  • Python 3.11 o superior
  • uv (instalador rápido de paquetes de Python): pip install uv
  • Navegador Chrome/Chromium instalado
  • Instalar navegadores Playwright: uv sync y luego uv run playwright install

Integración con clientes MCP (por ejemplo, Claude Desktop)

Puede configurar clientes como Claude Desktop para que se conecten a este servidor. Agregue la siguiente estructura a la configuración del cliente (p. ej., claude_desktop_config.json ) y ajuste la ruta y las variables de entorno según sea necesario:

// Example for Claude Desktop config "mcpServers": { "browser-use": { // Option 1: Run installed package // "command": "uvx", // "args": ["mcp-server-browser-use"], // Option 2: Run from local development source "command": "uv", "args": [ "--directory", "/path/to/mcp-server-browser-use", "run", "mcp-server-browser-use" ], "env": { // --- CRITICAL: Add required API keys here --- "OPENROUTER_API_KEY": "YOUR_OPENROUTER_API_KEY", // "OPENAI_API_KEY": "YOUR_KEY_HERE_IF_USING_OPENAI", // "ANTHROPIC_API_KEY": "YOUR_KEY_HERE_IF_USING_ANTHROPIC", // ... add other keys based on MCP_MODEL_PROVIDER ... // --- Optional Overrides (defaults are usually fine) --- "MCP_MODEL_PROVIDER": "openrouter", // Use OpenRouter as provider "MCP_MODEL_NAME": "google/gemini-2.5-pro-exp-03-25:free", // Example OpenRouter model "BROWSER_HEADLESS": "true", // Default: run browser without UI "BROWSER_USE_LOGGING_LEVEL": "INFO", // --- Example for connecting to your own browser --- // "MCP_USE_OWN_BROWSER": "true", // "CHROME_CDP": "http://localhost:9222", // Ensure Python uses UTF-8 "PYTHONIOENCODING": "utf-8", "PYTHONUNBUFFERED": "1", "PYTHONUTF8": "1" } } }

Importante: Asegúrese de que el command y args indiquen correctamente cómo desea ejecutar el servidor (ya sea desde el paquete instalado o desde el directorio de origen). Configure las claves de API necesarias en la sección env .

Herramientas MCP

Este servidor expone las siguientes herramientas a través del Protocolo de Contexto de Modelo:

Herramientas sincrónicas (esperar a que finalice)

  1. run_browser_agent
    • Descripción: Ejecuta una tarea de automatización del navegador según instrucciones en lenguaje natural y espera a que se complete. Utiliza configuraciones con el prefijo MCP_ (p. ej., MCP_HEADLESS , MCP_MAX_STEPS ).
    • Argumentos:
      • task (cadena, obligatoria): la tarea o el objetivo principal.
      • add_infos (cadena, opcional): contexto adicional o sugerencias para el agente (utilizado por el tipo de agente custom ).
    • Devuelve: (cadena) El resultado final extraído por el agente o un mensaje de error.
  2. run_deep_search
    • Descripción: Realiza una investigación web exhaustiva sobre un tema, genera un informe y espera a que finalice. Utiliza la configuración con el prefijo MCP_RESEARCH_ y la configuración general BROWSER_ (p. ej., BROWSER_HEADLESS ).
    • Argumentos:
      • research_task (cadena, obligatoria): el tema o la pregunta de la investigación.
      • max_search_iterations (entero, opcional, predeterminado: 10): máximo de ciclos de búsqueda.
      • max_query_per_iteration (entero, opcional, predeterminado: 3): máximo de consultas de búsqueda por ciclo.
    • Devuelve: (cadena) El informe de investigación generado en formato Markdown, incluida la ruta del archivo o un mensaje de error.

Configuración (variables de entorno)

Configure el servidor mediante variables de entorno. Puede configurarlas en su sistema o colocarlas en un archivo .env en la raíz del proyecto.

VariableDescripción¿Requerido?Valor predeterminadoValor de ejemplo
Configuración de LLM
MCP_MODEL_PROVIDERProveedor de LLM a utilizar. Ver opciones a continuación.anthropicopenrouter
MCP_MODEL_NAMENombre del modelo específico del proveedor elegido.Noclaude-3-7-sonnet-20250219anthropic/claude-3.7-sonnet
MCP_TEMPERATURETemperatura LLM (0,0-2,0). Controla la aleatoriedad.No0.00.7
MCP_TOOL_CALLING_METHODMétodo para invocar herramientas ('auto', 'json_schema', 'function_calling'). Afecta run_browser_agent .Noautojson_schema
MCP_MAX_INPUT_TOKENSMáximo de tokens de entrada para el contexto LLM para run_browser_agent .No12800064000
MCP_BASE_URLOpcional: Anulación genérica de la URL base del proveedor LLM.NoEspecífico del proveedorhttp://localhost:8080/v1
MCP_API_KEYOpcional: Anulación genérica de la clave API del proveedor LLM (tiene prioridad sobre las claves específicas del proveedor).No-sk-...
Claves API del proveedorObligatorio según MCP_MODEL_PROVIDER a menos que se configure MCP_API_KEY .
OPENAI_API_KEYClave API para OpenAI.Si se utiliza-sk-...
ANTHROPIC_API_KEYClave API para Anthropic.Si se utiliza-sk-ant-...
GOOGLE_API_KEYClave API para Google AI (Gemini).Si se utiliza-AIza...
AZURE_OPENAI_API_KEYClave API para Azure OpenAI.Si se utiliza-...
DEEPSEEK_API_KEYClave API para DeepSeek.Si se utiliza-sk-...
MISTRAL_API_KEYClave API para Mistral AI.Si se utiliza-...
OPENROUTER_API_KEYClave API para OpenRouter.Si se utiliza-sk-or-...
ALIBABA_API_KEYClave API para Alibaba Cloud (DashScope).Si se utiliza-sk-...
MOONSHOT_API_KEYClave API para Moonshot AI.Si se utiliza-sk-...
UNBOUND_API_KEYClave API para Unbound AI.Si se utiliza-...
Puntos finales del proveedorOpcional: anular los puntos finales de API predeterminados.
OPENAI_ENDPOINTURL del punto final de la API de OpenAI.Nohttps://api.openai.com/v1
ANTHROPIC_ENDPOINTURL del punto final de la API antrópica.Nohttps://api.anthropic.com
AZURE_OPENAI_ENDPOINTObligatorio si se usa Azure. Su punto de conexión de recursos de Azure.Si se utiliza-https://res.openai.azure.com/
AZURE_OPENAI_API_VERSIONVersión de la API de Azure.No2025-01-01-preview2023-12-01-preview
DEEPSEEK_ENDPOINTURL del punto final de la API de DeepSeek.Nohttps://api.deepseek.com
MISTRAL_ENDPOINTURL del punto final de la API de Mistral.Nohttps://api.mistral.ai/v1
OLLAMA_ENDPOINTURL del punto final de la API de Ollama.Nohttp://localhost:11434http://ollama.local:11434
OPENROUTER_ENDPOINTURL del punto final de la API de OpenRouter.Nohttps://openrouter.ai/api/v1
ALIBABA_ENDPOINTURL del punto final de la API de Alibaba (DashScope).Nohttps://dashscope...v1
MOONSHOT_ENDPOINTURL del punto final de la API de Moonshot.Nohttps://api.moonshot.cn/v1
UNBOUND_ENDPOINTURL del punto final de la API de IA sin límites.Nohttps://api.getunbound.ai
Ollama específico
OLLAMA_NUM_CTXTamaño de la ventana de contexto para los modelos Ollama.No320008192
OLLAMA_NUM_PREDICTMáximo de tokens para predecir los modelos de Ollama.No10242048
Configuración del agente ( run_browser_agent )
MCP_AGENT_TYPEImplementación del agente para run_browser_agent ('org' o 'custom').Noorgcustom
MCP_MAX_STEPSMáximo de pasos por ejecución del agente.No10050
MCP_USE_VISIONHabilitar capacidades de visión (análisis de captura de pantalla).Notruefalse
MCP_MAX_ACTIONS_PER_STEPMáximo de acciones por paso del agente.No510
MCP_KEEP_BROWSER_OPENMantenga abierto el navegador administrado por el servidor entre llamadas run_browser_agent (si MCP_USE_OWN_BROWSER=false ).Nofalsetrue
MCP_ENABLE_RECORDINGHabilitar la grabación de vídeo de Playwright para run_browser_agent .Nofalsetrue
MCP_SAVE_RECORDING_PATHRuta para guardar grabaciones de video de ejecución del agente (obligatorio si MCP_ENABLE_RECORDING=true ).Si está grabando-./tmp/recordings
MCP_AGENT_HISTORY_PATHDirectorio para guardar archivos JSON del historial del agente.No./tmp/agent_history./agent_runs
MCP_HEADLESSEjecute el navegador sin interfaz de usuario específicamente para la herramienta run_browser_agent .Notruefalse
MCP_DISABLE_SECURITYDeshabilite las funciones de seguridad del navegador específicamente para la herramienta run_browser_agent (úsela con precaución).Notruefalse
Configuración de investigación profunda ( run_deep_search )
MCP_RESEARCH_MAX_ITERATIONSMáximas iteraciones de búsqueda para una investigación profunda.No105
MCP_RESEARCH_MAX_QUERYMáximo de consultas de búsqueda por iteración.No35
MCP_RESEARCH_USE_OWN_BROWSERUtilice una instancia de navegador independiente para la investigación (requiere CHROME_CDP si MCP_USE_OWN_BROWSER=true ).Nofalsetrue
MCP_RESEARCH_SAVE_DIRDirectorio para guardar artefactos de investigación (informes, resultados).No./tmp/deep_research/{task_id}./research_output
MCP_RESEARCH_AGENT_MAX_STEPSPasos máximos para subagentes dentro de una investigación profunda.No1015
Configuración del navegador (anulaciones de herramientas generales y específicas)
MCP_USE_OWN_BROWSEREstablezca como verdadero para conectarse al navegador del usuario a través de CHROME_CDP en lugar de iniciar uno nuevo.Nofalsetrue
CHROME_CDPConéctate a Chrome mediante la URL del protocolo DevTools. Obligatorio si MCP_USE_OWN_BROWSER=true .Si MCP_USE_OWN_BROWSER=true-http://localhost:9222
BROWSER_HEADLESSEjecutar el navegador sin la interfaz de usuario visible. Afecta principalmente run_deep_search . Véase también MCP_HEADLESS .Notruefalse
BROWSER_DISABLE_SECURITYConfiguración general de seguridad del navegador. Véase también MCP_DISABLE_SECURITY .Nofalsetrue
CHROME_PATHRuta al ejecutable de Chrome/Chromium.No-/usr/bin/chromium-browser
CHROME_USER_DATARuta al directorio de datos del usuario de Chrome (para sesiones persistentes, útil con CHROME_CDP ).No-~/.config/google-chrome/Profile 1
BROWSER_TRACE_PATHDirectorio para guardar archivos de seguimiento de Playwright (útil para la depuración).No./tmp/trace./traces
BROWSER_WINDOW_WIDTHAncho de la ventana del navegador (píxeles).No12801920
BROWSER_WINDOW_HEIGHTAltura de la ventana del navegador (píxeles).No7201080
Servidor y registro
LOG_FILERuta para el archivo de registro del servidor.Nomcp_server_browser_use.log/var/log/mcp_browser.log
BROWSER_USE_LOGGING_LEVELNivel de registro ( DEBUG , INFO , WARNING , ERROR , CRITICAL ).NoINFODEBUG
ANONYMIZED_TELEMETRYHabilitar/deshabilitar la telemetría anónima ( true / false ).Notruefalse

Proveedores LLM compatibles ( MCP_MODEL_PROVIDER ):

openai , azure_openai , anthropic , google , mistral , ollama , deepseek , openrouter , alibaba , moonshot , unbound

Conexión a su propio navegador (CDP)

En lugar de que el servidor inicie y administre su propia instancia de navegador, puedes conectarlo a un navegador Chrome/Chromium que inicies y administres tú mismo. Esto es útil para:

  • Usando su perfil de navegador existente (cookies, inicios de sesión, extensiones).
  • Observar la automatización directamente en su propia ventana del navegador.
  • Depuración de escenarios complejos.

Pasos:

  1. Iniciar Chrome/Chromium con la depuración remota activada: Abra la terminal o el símbolo del sistema y ejecute el comando correspondiente a su sistema operativo. Esto indica a Chrome que escuche las conexiones en un puerto específico (p. ej., 9222).
    • macOS:
      /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
      (Ajuste la ruta si Chrome está instalado en otro lugar)
    • Linux:
      google-chrome --remote-debugging-port=9222 # or chromium-browser --remote-debugging-port=9222
    • Windows (símbolo del sistema):
      "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
      (Ajusta la ruta a tu instalación de Chrome si es necesario)
    • Ventanas (PowerShell):
      & "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
      (Ajusta la ruta a tu instalación de Chrome si es necesario)

    Nota: Si el puerto 9222 ya está en uso, elija un puerto diferente (por ejemplo, 9223) y use ese mismo puerto en la variable de entorno CHROME_CDP .

  2. Configurar variables de entorno: configure las siguientes variables de entorno en su archivo .env o entorno del sistema antes de iniciar el servidor MCP:
    MCP_USE_OWN_BROWSER=true CHROME_CDP=http://localhost:9222 # Use the same port you launched Chrome with
    • MCP_USE_OWN_BROWSER=true : le indica al servidor que se conecte a un navegador existente en lugar de iniciar uno.
    • CHROME_CDP : especifica la URL donde el servidor puede conectarse al punto final del protocolo DevTools de su navegador.
  3. Ejecute el servidor MCP: Inicie el servidor como de costumbre:
    uv run mcp-server-browser-use

Ahora, cuando utilice las herramientas run_browser_agent o run_deep_search , el servidor se conectará a su instancia de Chrome en ejecución en lugar de crear una nueva.

Consideraciones importantes:

  • El navegador iniciado con --remote-debugging-port debe permanecer abierto mientras el servidor MCP se esté ejecutando y necesite interactuar con él.
  • Asegúrese de que la URL CHROME_CDP sea accesible desde donde se ejecuta el servidor MCP (generalmente http://localhost:PORT si se ejecuta en la misma máquina).
  • Usar su propio navegador implica que el servidor hereda su estado (pestañas abiertas, sesiones iniciadas). Tenga esto en cuenta durante la automatización.
  • Las configuraciones como MCP_HEADLESS , BROWSER_HEADLESS y MCP_KEEP_BROWSER_OPEN se ignoran cuando MCP_USE_OWN_BROWSER=true . El tamaño de la ventana depende de la ventana de su navegador.

Desarrollo

# Install dev dependencies and sync project deps uv sync --dev # Install playwright browsers uv run playwright install # Run with debugger (Example connecting to own browser via CDP) # 1. Launch Chrome: google-chrome --remote-debugging-port=9222 # 2. Run inspector command: npx @modelcontextprotocol/inspector@latest \ -e OPENROUTER_API_KEY=$OPENROUTER_API_KEY \ -e MCP_MODEL_PROVIDER=openrouter \ -e MCP_MODEL_NAME=anthropic/claude-3.7-sonnet \ -e MCP_USE_OWN_BROWSER=true \ -e CHROME_CDP=http://localhost:9222 \ uv --directory . run mcp run src/mcp_server_browser_use/server.py # Note: Change timeout in inspector's config panel if needed (default is 10 seconds)

Solución de problemas

  • Conflictos del navegador : si no se utiliza CHROME_CDP ( MCP_USE_OWN_BROWSER=false ), asegúrese de que no se estén ejecutando otras instancias de Chrome en conflicto con el mismo directorio de datos de usuario si se especifica CHROME_USER_DATA .
  • Problemas de conexión CDP : si se usa MCP_USE_OWN_BROWSER=true :
    • Verifique que Chrome se haya iniciado con el indicador --remote-debugging-port .
    • Asegúrese de que el puerto en CHROME_CDP coincida con el puerto utilizado al iniciar Chrome.
    • Compruebe si hay problemas de firewall que bloqueen la conexión al puerto especificado.
    • Asegúrese de que el navegador todavía esté funcionando.
  • Errores de API : Verifique que la variable de entorno de clave de API ( OPENAI_API_KEY , ANTHROPIC_API_KEY , etc.) esté configurada correctamente para el MCP_MODEL_PROVIDER seleccionado, o que MCP_API_KEY esté configurada. Verifique las claves y los puntos de conexión ( AZURE_OPENAI_ENDPOINT es obligatorio para Azure).
  • Problemas de visión : asegúrese de que MCP_USE_VISION=true si utiliza funciones de visión y que el modelo LLM seleccionado admita la visión.
  • Problemas de dependencias : Ejecute uv sync para asegurarse de que todas las dependencias estén instaladas correctamente. Revise pyproject.toml .
  • Registro : Consulte el archivo de registro especificado por LOG_FILE (predeterminado: mcp_server_browser_use.log ) para ver mensajes de error detallados. Aumente BROWSER_USE_LOGGING_LEVEL a DEBUG para obtener una salida más detallada.

Licencia

MIT - Ver LICENCIA para más detalles.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Facilita la automatización del navegador con capacidades personalizadas e interacciones basadas en agentes, integradas a través de la biblioteca de uso del navegador.

  1. Features
    1. Quick Start
      1. Prerequisites
      2. Integration with MCP Clients (e.g., Claude Desktop)
    2. MCP Tools
      1. Synchronous Tools (Wait for Completion)
    3. Configuration (Environment Variables)
      1. Connecting to Your Own Browser (CDP)
        1. Development
          1. Troubleshooting
            1. License
              ID: dz6dy5hw59