Browser-Use MCP Server
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.
Related MCP server: Browserbase MCP Server
Inicio rápido
Prerrequisitos
Python 3.11 o superior
uv(instalador rápido de paquetes de Python):pip install uvNavegador Chrome/Chromium instalado
Instalar navegadores Playwright:
uv syncy luegouv 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)
run_browser_agentDescripció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 agentecustom).
Devuelve: (cadena) El resultado final extraído por el agente o un mensaje de error.
run_deep_searchDescripció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 generalBROWSER_(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.
Variable | Descripción | ¿Requerido? | Valor predeterminado | Valor de ejemplo |
Configuración de LLM | ||||
| Proveedor de LLM a utilizar. Ver opciones a continuación. | Sí |
|
|
| Nombre del modelo específico del proveedor elegido. | No |
|
|
| Temperatura LLM (0,0-2,0). Controla la aleatoriedad. | No |
|
|
| Método para invocar herramientas ('auto', 'json_schema', 'function_calling'). Afecta | No |
|
|
| Máximo de tokens de entrada para el contexto LLM para | No |
|
|
| Opcional: Anulación genérica de la URL base del proveedor LLM. | No | Específico del proveedor |
|
| Opcional: Anulación genérica de la clave API del proveedor LLM (tiene prioridad sobre las claves específicas del proveedor). | No | - |
|
Claves API del proveedor | Obligatorio según | |||
| Clave API para OpenAI. | Si se utiliza | - |
|
| Clave API para Anthropic. | Si se utiliza | - |
|
| Clave API para Google AI (Gemini). | Si se utiliza | - |
|
| Clave API para Azure OpenAI. | Si se utiliza | - |
|
| Clave API para DeepSeek. | Si se utiliza | - |
|
| Clave API para Mistral AI. | Si se utiliza | - |
|
| Clave API para OpenRouter. | Si se utiliza | - |
|
| Clave API para Alibaba Cloud (DashScope). | Si se utiliza | - |
|
| Clave API para Moonshot AI. | Si se utiliza | - |
|
| Clave API para Unbound AI. | Si se utiliza | - |
|
Puntos finales del proveedor | Opcional: anular los puntos finales de API predeterminados. | |||
| URL del punto final de la API de OpenAI. | No |
| |
| URL del punto final de la API antrópica. | No |
| |
| Obligatorio si se usa Azure. Su punto de conexión de recursos de Azure. | Si se utiliza | - |
|
| Versión de la API de Azure. | No |
|
|
| URL del punto final de la API de DeepSeek. | No |
| |
| URL del punto final de la API de Mistral. | No |
| |
| URL del punto final de la API de Ollama. | No |
|
|
| URL del punto final de la API de OpenRouter. | No |
| |
| URL del punto final de la API de Alibaba (DashScope). | No |
| |
| URL del punto final de la API de Moonshot. | No |
| |
| URL del punto final de la API de IA sin límites. | No |
| |
Ollama específico | ||||
| Tamaño de la ventana de contexto para los modelos Ollama. | No |
|
|
| Máximo de tokens para predecir los modelos de Ollama. | No |
|
|
Configuración del agente ( | ||||
| Implementación del agente para | No |
|
|
| Máximo de pasos por ejecución del agente. | No |
|
|
| Habilitar capacidades de visión (análisis de captura de pantalla). | No |
|
|
| Máximo de acciones por paso del agente. | No |
|
|
| Mantenga abierto el navegador administrado por el servidor entre llamadas | No |
|
|
| Habilitar la grabación de vídeo de Playwright para | No |
|
|
| Ruta para guardar grabaciones de video de ejecución del agente (obligatorio si | Si está grabando | - |
|
| Directorio para guardar archivos JSON del historial del agente. | No |
|
|
| Ejecute el navegador sin interfaz de usuario específicamente para la herramienta | No |
|
|
| Deshabilite las funciones de seguridad del navegador específicamente para la herramienta | No |
|
|
Configuración de investigación profunda ( | ||||
| Máximas iteraciones de búsqueda para una investigación profunda. | No |
|
|
| Máximo de consultas de búsqueda por iteración. | No |
|
|
| Utilice una instancia de navegador independiente para la investigación (requiere | No |
|
|
| Directorio para guardar artefactos de investigación (informes, resultados). | No |
|
|
| Pasos máximos para subagentes dentro de una investigación profunda. | No |
|
|
Configuración del navegador (anulaciones de herramientas generales y específicas) | ||||
| Establezca como verdadero para conectarse al navegador del usuario a través de | No |
|
|
| Conéctate a Chrome mediante la URL del protocolo DevTools. Obligatorio si | Si | - |
|
| Ejecutar el navegador sin la interfaz de usuario visible. Afecta principalmente | No |
|
|
| Configuración general de seguridad del navegador. Véase también | No |
|
|
| Ruta al ejecutable de Chrome/Chromium. | No | - |
|
| Ruta al directorio de datos del usuario de Chrome (para sesiones persistentes, útil con | No | - |
|
| Directorio para guardar archivos de seguimiento de Playwright (útil para la depuración). | No |
|
|
| Ancho de la ventana del navegador (píxeles). | No |
|
|
| Altura de la ventana del navegador (píxeles). | No |
|
|
Servidor y registro | ||||
| Ruta para el archivo de registro del servidor. | No |
|
|
| Nivel de registro ( | No |
|
|
| Habilitar/deshabilitar la telemetría anónima ( | No |
|
|
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:
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=9222Windows (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.Configurar variables de entorno: configure las siguientes variables de entorno en su archivo
.envo 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 withMCP_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.
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-portdebe permanecer abierto mientras el servidor MCP se esté ejecutando y necesite interactuar con él.Asegúrese de que la URL
CHROME_CDPsea accesible desde donde se ejecuta el servidor MCP (generalmentehttp://localhost:PORTsi 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_HEADLESSyMCP_KEEP_BROWSER_OPENse ignoran cuandoMCP_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 especificaCHROME_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_CDPcoincida 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 elMCP_MODEL_PROVIDERseleccionado, o queMCP_API_KEYesté configurada. Verifique las claves y los puntos de conexión (AZURE_OPENAI_ENDPOINTes obligatorio para Azure).Problemas de visión : asegúrese de que
MCP_USE_VISION=truesi utiliza funciones de visión y que el modelo LLM seleccionado admita la visión.Problemas de dependencias : Ejecute
uv syncpara asegurarse de que todas las dependencias estén instaladas correctamente. Revisepyproject.toml.Registro : Consulte el archivo de registro especificado por
LOG_FILE(predeterminado:mcp_server_browser_use.log) para ver mensajes de error detallados. AumenteBROWSER_USE_LOGGING_LEVELaDEBUGpara obtener una salida más detallada.
Licencia
MIT - Ver LICENCIA para más detalles.
Available Tools
1 toolrun_browser_agentD
Handle run-browser-agent tool calls.
| Name | Required | Description | Default |
|---|---|---|---|
| add_infos | No | ||
| task | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but fails completely. It doesn't indicate whether this is a read or write operation, what side effects it might have, what permissions are required, or what the expected behavior is. The phrase 'Handle... tool calls' is too vague to convey any meaningful behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is technically concise (only 5 words), this represents under-specification rather than effective brevity. The single sentence doesn't earn its place by providing meaningful information. A truly concise description would still convey essential purpose and usage information in minimal words, which this fails to do.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a tool with 2 parameters, no annotations, no output schema, and 0% schema description coverage, the description is completely inadequate. It provides no information about what the tool does, how to use it, what parameters mean, or what to expect from its operation. The description fails to compensate for any of the missing structured information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning neither parameter has any description in the schema. The tool description provides no information about what the 'task' or 'add_infos' parameters mean, what format they should take, or how they affect the tool's operation. For a tool with 2 parameters and zero schema documentation, this represents a complete failure to add parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Handle run-browser-agent tool calls' is essentially a tautology that restates the tool name without explaining what the tool actually does. It doesn't specify what 'run-browser-agent' means, what resources it operates on, or what action it performs. While it mentions 'tool calls', this adds no meaningful information beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool, what context it's appropriate for, or what alternatives might exist. There are no sibling tools mentioned, but even for a standalone tool, the description fails to give any indication of its intended use case or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- First observed
run_browser_agent
This server cannot be deployed
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'run_browser_agent' has a clearly distinct purpose with no other tools to confuse it with.
The naming pattern cannot be inconsistent with only one tool. The tool name 'run_browser_agent' follows a clear verb_noun pattern, and there are no other tools to deviate from this convention.
A single tool is too few for a server named 'Browser-Use MCP Server', which suggests a broader scope for browser automation. One tool feels thin and inadequate for handling various browser-related tasks like navigation, clicking, or form filling.
The tool set is severely incomplete for browser automation. With only a 'run_browser_agent' tool, there are obvious gaps in basic operations such as opening pages, interacting with elements, or retrieving content, making it impossible for agents to perform typical browser tasks.
Maintenance
Related MCP Connectors
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
- TabfleetOAuthcom.tabfleet
Launch, inspect, control, and share isolated cloud browsers for your agents.
Undetectable cloud browser sessions for AI agents and scrapers. Navigate, extract, click, captcha.
I do everything related to Browser Automation & Management
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables browser automation with anti-detection features, including navigation, interaction, form filling, and session management.2226 PyPI10MIT
- AlicenseNot gradedqualityDmaintenanceProvides cloud browser automation capabilities for AI agents, including creating, managing, and retrieving recordings and logs from browser sessions.MIT
- AlicenseNot gradedqualityDmaintenanceEnables browser automation for AI assistants via Playwright, supporting multiple browsers, sessions, and tools for web interaction and testing.1,029 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables plain-English browser automation via an MCP server, allowing agents to run objectives or test suites in a real browser without selectors or scripts.63 npm2Apache 2.0