Browser Use

Permite que agentes de IA controlen navegadores web usando comandos en lenguaje natural.

Documentación

Servidor MCP Browser Use

smithery badge

Servidor del Model Context Protocol (MCP) que conecta browser-use con Claude Desktop y otros clientes compatibles con MCP.

Browser Use Server MCP server

Descripción general

Este repositorio proporciona un envoltorio MCP beta alrededor del motor de automatización browser-use. Expone una única herramienta MCP (run_browser_agent) que orquesta una sesión de navegador, ejecuta el agente browser-use y devuelve el resultado final al cliente. El diseño mantiene la configuración en un solo lugar, hace comprobables los límites de seguridad y aísla las migraciones ascendentes de browser-use de la interfaz MCP.

Capacidades clave

  • Navegación automatizada – Navegar, interactuar con formularios, controlar pestañas, capturar capturas de pantalla y leer el contenido de la página mediante instrucciones en lenguaje natural ejecutadas por browser-use.
  • Gestión del ciclo de vida del agente – CustomAgent envuelve el agente base de browser-use para añadir exportación de historial, prompts más completos y un manejo de errores coherente entre ejecuciones.
  • Configuración centralizada del navegador – create_browser_session traduce las variables de entorno en un BrowserSession listo para usar, lo que permite perfiles persistentes, proxies y banderas personalizadas de Chromium sin tocar la lógica del agente.
  • Integración con FastMCP – server.py registra la herramienta MCP, normaliza la configuración y garantiza que la sesión del navegador siempre se limpie.
  • Helpers de cliente – client.py incluye helpers asíncronos para pruebas u otros procesos de Python que deseen ejercitar el servidor MCP en proceso.

Estructura del proyecto

.
├── documentation/
│   ├── CONFIGURATION.md      # Detailed configuration reference
│   └── SECURITY.md           # Security considerations for running the server
├── sample.env.env           # Example environment variables for local development
├── src/mcp_browser_use/
│   ├── agent/                # Custom agent, prompts, message history, and views
│   ├── browser/              # Browser session factory and persistence helpers
│   ├── controller/           # Custom controller extensions for clipboard actions
│   ├── utils/                # LLM factory, agent state helpers, encoding utilities
│   ├── client.py             # Async helper for connecting to the FastMCP app
│   └── server.py             # FastMCP app and the `run_browser_agent` tool
└── tests/                    # Unit tests covering server helpers and agent features

Primeros pasos

Requisitos

  • Python 3.11+
  • Google Chrome o Chromium (para automatización local)
  • uv para la gestión de dependencias (recomendado)
  • Opcional: Claude Desktop u otro cliente compatible con MCP para pruebas de integración

Instalación

git clone https://github.com/JovaniPink/mcp-browser-use.git
cd mcp-browser-use
uv sync

Copia sample.env.env a .env (o exporta las variables de otra forma) y actualiza únicamente los proveedores que planees usar. Nunca confirmes el archivo .env completado.

Iniciando el servidor

uv run mcp-browser-use

El comando invoca el script de consola definido en pyproject.toml, inicia la aplicación FastMCP y registra la herramienta run_browser_agent.

Uso con Claude Desktop

Una vez que el servidor esté en ejecución, puedes registrarlo dentro de Claude Desktop, por ejemplo:

"mcpServers": {
  "mcp_server_browser_use": {
    "command": "uvx",
    "args": ["mcp-browser-use"],
    "env": {
      "MCP_MODEL_PROVIDER": "anthropic",
      "MCP_MODEL_NAME": "claude-3-5-sonnet-20241022"
    }
  }
}

Depuración

Para la depuración interactiva, usa el MCP Inspector:

npx @modelcontextprotocol/inspector uv --directory /path/to/project run mcp-browser-use

El inspector imprime una URL que se puede abrir en el navegador para ver las llamadas a herramientas y las respuestas en tiempo real.

Configuración

La lista completa de variables de entorno y sus valores predeterminados está disponible en documentation/CONFIGURATION.md. Los aspectos más destacados incluyen:

  • MCP_MODEL_PROVIDER, MCP_MODEL_NAME, MCP_TEMPERATURE, MCP_MAX_STEPS, MCP_MAX_ACTIONS_PER_STEP y MCP_USE_VISION controlan el LLM y la ejecución del agente.
  • Claves de API y endpoints específicos del proveedor (ANTHROPIC_API_KEY, OPENAI_API_KEY, DEEPSEEK_API_KEY, GOOGLE_API_KEY, AZURE_OPENAI_API_KEY, etc.).
  • Banderas de tiempo de ejecución del navegador (BROWSER_USE_HEADLESS, BROWSER_USE_EXTRA_CHROMIUM_ARGS, CHROME_PERSISTENT_SESSION, BROWSER_USE_PROXY_URL, ...).

Usa .env + python-dotenv o tu gestor de secretos preferido para mantener las credenciales fuera del control de versiones.

Ejecución de pruebas

uv run python -m pytest -q

Las pruebas cubren el comportamiento del agente personalizado, la configuración del navegador, los límites de entrada de MCP, la redacción de secretos y los helpers de utilidades. Una actualización de dependencias no está lista para fusionarse solo porque las importaciones o las pruebas unitarias pasen; el entorno resuelto también debe superar sus comprobaciones de dependencias y seguridad.

Seguridad

Controlar una instancia completa del navegador de forma remota puede otorgar un acceso amplio a la máquina host. Revisa documentation/SECURITY.md antes de exponer el servidor a entornos no confiables. El mapa completo de documentación y el registro de decisiones de dependencias activas están en documentation/README.md.

La herramienta MCP recorta y limita la entrada de tarea/contexto antes de asignar un modelo o una sesión de navegador. Los límites de pasos de ejecución están restringidos, la configuración de proxy se omite de los registros de depuración y los valores de los endpoints de CDP se redactan porque pueden contener credenciales.

La migración de dependencias de Python 3.14/browser-use permanece retenida en #45 hasta que el upstream permita versiones transitivas parcheadas. No fuerces anulaciones incompatibles ni suprimas los hallazgos de la auditoría.

Contribuciones

  1. Haz un fork del repositorio
  2. Crea tu rama de características: git checkout -b my-new-feature
  3. Confirma tus cambios: git commit -m 'Add some feature'
  4. Haz push a la rama: git push origin my-new-feature
  5. Abre un pull request

Los informes de errores y las sugerencias de funciones son bienvenidos: incluye registros y pasos de reproducción cuando corresponda.