Browser Use
Permite que agentes de IA controlen navegadores web usando comandos en lenguaje natural.
Documentación
Servidor MCP Browser Use
Servidor del Model Context Protocol (MCP) que conecta browser-use con Claude Desktop y otros clientes compatibles con MCP.
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 –
CustomAgentenvuelve el agente base debrowser-usepara 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_sessiontraduce las variables de entorno en unBrowserSessionlisto 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.pyregistra la herramienta MCP, normaliza la configuración y garantiza que la sesión del navegador siempre se limpie. - Helpers de cliente –
client.pyincluye 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)
uvpara 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_STEPyMCP_USE_VISIONcontrolan 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
- Haz un fork del repositorio
- Crea tu rama de características:
git checkout -b my-new-feature - Confirma tus cambios:
git commit -m 'Add some feature' - Haz push a la rama:
git push origin my-new-feature - Abre un pull request
Los informes de errores y las sugerencias de funciones son bienvenidos: incluye registros y pasos de reproducción cuando corresponda.