Browser-Use MCP Server
MCP-сервер и CLI для браузера
Примечание к проекту : Эта реализация сервера MCP основана на основе браузера-использования/веб-пользователя . Основная логика автоматизации браузера и шаблоны конфигурации адаптированы из оригинального проекта.
Сервер автоматизации браузера на базе ИИ, реализующий протокол Model Context Protocol (MCP) для управления браузером на естественном языке и веб-исследований. Также предоставляет доступ CLI к своим основным функциям.
Функции
🧠 Интеграция MCP — полная реализация протокола для связи с агентами ИИ.
🌐 Автоматизация браузера — навигация по страницам, заполнение форм, взаимодействие с элементами на естественном языке (инструмент
run_browser_agent).👁️ Визуальное понимание — дополнительный анализ снимков экрана для обладателей степени магистра права с хорошим зрением.
🔄 Сохранение состояния — возможность управлять сеансом браузера сервера через несколько вызовов MCP или подключаться к браузеру пользователя.
🔌 Поддержка нескольких LLM — интеграция с OpenAI, Anthropic, Azure, DeepSeek, Google, Mistral, Ollama, OpenRouter, Alibaba, Moonshot, Unbound AI.
🔍 Deep Research Tool — специализированный инструмент для многоэтапного веб-исследования и создания отчетов (инструмент
run_deep_research).⚙️ Конфигурация переменных среды — полностью настраивается с помощью переменных среды с использованием структурированной модели Pydantic.
🔗 Подключение CDP — возможность подключения и управления запущенным пользователем экземпляром Chrome/Chromium через протокол Chrome DevTools.
⌨️ Интерфейс командной строки — доступ к основным функциям агента (
run_browser_agent,run_deep_research) непосредственно из командной строки для тестирования и создания сценариев.
Related MCP server: Browserbase MCP Server
Быстрый старт
Основы
Установите UV — установщик Python с ракетным двигателем:
curl -LsSf https://astral.sh/uv/install.sh | shПолучите браузеры Playwright (требуются для автоматизации):
uvx --from mcp-server-browser-use@latest python -m playwright install
Модели интеграции
Для клиентов MCP, таких как Claude Desktop, добавьте простую конфигурацию сервера:
// Example 1: One-Line Latest Version (Always Fresh)
"mcpServers": {
"browser-use": {
"command": "uvx",
"args": ["mcp-server-browser-use@latest"],
"env": {
"MCP_LLM_GOOGLE_API_KEY": "YOUR_KEY_HERE_IF_USING_GOOGLE",
"MCP_LLM_PROVIDER": "google",
"MCP_LLM_MODEL_NAME": "gemini-2.5-flash-preview-04-17",
"MCP_BROWSER_HEADLESS": "true",
}
}
}// Example 2: Advanced Configuration with CDP
"mcpServers": {
"browser-use": {
"command": "uvx",
"args": ["mcp-server-browser-use@latest"],
"env": {
"MCP_LLM_OPENROUTER_API_KEY": "YOUR_KEY_HERE_IF_USING_OPENROUTER",
"MCP_LLM_PROVIDER": "openrouter",
"MCP_LLM_MODEL_NAME": "anthropic/claude-3.5-haiku",
"MCP_LLM_TEMPERATURE": "0.4",
"MCP_BROWSER_HEADLESS": "false",
"MCP_BROWSER_WINDOW_WIDTH": "1440",
"MCP_BROWSER_WINDOW_HEIGHT": "1080",
"MCP_AGENT_TOOL_USE_VISION": "true",
"MCP_RESEARCH_TOOL_SAVE_DIR": "/path/to/your/research",
"MCP_RESEARCH_TOOL_MAX_PARALLEL_BROWSERS": "5",
"MCP_PATHS_DOWNLOADS": "/path/to/your/downloads",
"MCP_BROWSER_USE_OWN_BROWSER": "true",
"MCP_BROWSER_CDP_URL": "http://localhost:9222",
"MCP_AGENT_TOOL_HISTORY_PATH": "/path/to/your/history",
"MCP_SERVER_LOGGING_LEVEL": "DEBUG",
"MCP_SERVER_LOG_FILE": "/path/to/your/log/mcp_server_browser_use.log",
}
}
}// Example 3: Advanced Configuration with User Data and custom chrome path
"mcpServers": {
"browser-use": {
"command": "uvx",
"args": ["mcp-server-browser-use@latest"],
"env": {
"MCP_LLM_OPENAI_API_KEY": "YOUR_KEY_HERE_IF_USING_OPENAI",
"MCP_LLM_PROVIDER": "openai",
"MCP_LLM_MODEL_NAME": "gpt-4.1-mini",
"MCP_LLM_TEMPERATURE": "0.2",
"MCP_BROWSER_HEADLESS": "false",
"MCP_BROWSER_BINARY_PATH": "/path/to/your/chrome/binary",
"MCP_BROWSER_USER_DATA_DIR": "/path/to/your/user/data",
"MCP_BROWSER_DISABLE_SECURITY": "true",
"MCP_BROWSER_KEEP_OPEN": "true",
"MCP_BROWSER_TRACE_PATH": "/path/to/your/trace",
"MCP_AGENT_TOOL_HISTORY_PATH": "/path/to/your/history",
"MCP_SERVER_LOGGING_LEVEL": "DEBUG",
"MCP_SERVER_LOG_FILE": "/path/to/your/log/mcp_server_browser_use.log",
}
}
}// Example 4: Local Development Flow
"mcpServers": {
"browser-use": {
"command": "uv",
"args": [
"--directory",
"/your/dev/path",
"run",
"mcp-server-browser-use"
],
"env": {
"MCP_LLM_OPENROUTER_API_KEY": "YOUR_KEY_HERE_IF_USING_OPENROUTER",
"MCP_LLM_PROVIDER": "openrouter",
"MCP_LLM_MODEL_NAME": "openai/gpt-4o-mini",
"MCP_BROWSER_HEADLESS": "true",
}
}
}Ключевая информация: Лучшие конфигурации получаются, если начинать с простого (Пример 1). Файл .env.example содержит все возможные циферблаты.
Инструменты МКП
Этот сервер предоставляет следующие инструменты через протокол контекста модели:
Синхронные инструменты (ожидание завершения)
run_browser_agentОписание: Выполняет задачу автоматизации браузера на основе инструкций естественного языка и ждет ее завершения. Использует настройки из переменных среды
MCP_AGENT_TOOL_*,MCP_LLM_*иMCP_BROWSER_*.Аргументы:
task(строка, обязательно): Основная задача или цель.
Возвращает: (строка) Окончательный результат, извлеченный агентом, или сообщение об ошибке. История агента (JSON, необязательно GIF) сохраняется, если задано
MCP_AGENT_TOOL_HISTORY_PATH.
run_deep_researchОписание: выполняет углубленное веб-исследование по теме, генерирует отчет и ждет завершения. Использует настройки из переменных среды
MCP_RESEARCH_TOOL_*,MCP_LLM_*иMCP_BROWSER_*. Если заданMCP_RESEARCH_TOOL_SAVE_DIR, выходные данные сохраняются в подкаталоге внутри него; в противном случае работает в режиме только памяти.Аргументы:
research_task(строка, обязательно): Тема или вопрос исследования.max_parallel_browsers(целое число, необязательное): переопределяетMCP_RESEARCH_TOOL_MAX_PARALLEL_BROWSERSиз среды.
Возвращает: (строка) Сгенерированный отчет об исследовании в формате Markdown, включая путь к файлу (если сохранен) или сообщение об ошибке.
Использование CLI
Этот пакет также предоставляет интерфейс командной строки mcp-browser-cli для прямого тестирования и написания сценариев.
Глобальные параметры:
--env-file PATH, -e PATH: Путь к файлу.envдля загрузки конфигураций.--log-level LEVEL, -l LEVEL: Переопределить уровень ведения журнала (например,DEBUG,INFO).
Команды:
mcp-browser-cli run-browser-agent [OPTIONS] TASKОписание: Запускает задачу агента браузера.
Аргументы:
TASK(строка, обязательно): Основная задача для агента.
Пример:
mcp-browser-cli run-browser-agent "Go to example.com and find the title." -e .env
mcp-browser-cli run-deep-research [OPTIONS] RESEARCH_TASKОписание: Проводит глубокие веб-исследования.
Аргументы:
RESEARCH_TASK(строка, обязательно): Тема или вопрос для исследования.
Параметры:
--max-parallel-browsers INTEGER, -p INTEGER: ПереопределитьMCP_RESEARCH_TOOL_MAX_PARALLEL_BROWSERS.
Пример:
mcp-browser-cli run-deep-research "What are the latest advancements in AI-driven browser automation?" --max-parallel-browsers 5 -e .env
Все остальные конфигурации (ключи LLM, пути, настройки браузера) берутся из переменных среды (или указанного файла .env ), как подробно описано в разделе «Конфигурация».
Конфигурация (переменные среды)
Настройте сервер и CLI с помощью переменных окружения. Вы можете задать их в своей системе или поместить в файл .env в корне проекта (используйте --env-file для CLI). Переменные структурированы с помощью префиксов.
Группа переменных (префикс) | Пример переменной | Описание | Значение по умолчанию |
Основная степень магистра права (MCP_LLM_) | Настройки для основного LLM, используемого агентами. | ||
| Поставщик LLM. Варианты: |
| |
| Конкретное название модели для поставщика. |
| |
| Температура LLM (0,0-2,0). |
| |
| Необязательно: общее переопределение базового URL-адреса поставщика LLM. | Специфичный для поставщика | |
| Необязательно: универсальный ключ LLM API (имеет приоритет). | - | |
| Ключ API для OpenAI (если поставщик — | - | |
| API-ключ для Anthropic. | - | |
| API-ключ для Google AI (Gemini). | - | |
| Ключ API для Azure OpenAI. | - | |
| Требуется при использовании Azure. Ваша конечная точка ресурса Azure. | - | |
| URL-адрес конечной точки API Ollama. |
| |
| Размер контекстного окна для моделей Ollama. |
| |
Планировщик LLM (MCP_LLM_PLANNER_) | Необязательно: Настройки для отдельного LLM для планирования агента. По умолчанию используется Main LLM, если не задано. | ||
| Поставщик услуг LLM Planner. | Основной поставщик LLM | |
| Название модели Planner LLM. | Основная модель LLM | |
Браузер (MCP_BROWSER_) | Общие настройки браузера. | ||
| Запустить браузер без пользовательского интерфейса (общие настройки). |
| |
| Отключите функции безопасности браузера (общая настройка, используйте осторожно). |
| |
| Путь к исполняемому файлу Chrome/Chromium. | - | |
| Путь к каталогу пользовательских данных Chrome. | - | |
| Ширина окна браузера (в пикселях). |
| |
| Высота окна браузера (в пикселях). |
| |
| Подключитесь к браузеру пользователя через URL-адрес CDP. |
| |
| URL-адрес CDP (например, | - | |
| Оставлять управляемый сервером браузер открытым между вызовами MCP (если |
| |
| Необязательно: Каталог для сохранения файлов трассировки Playwright. Если не задано, трассировка в файл отключена. | (пусто, трассировка отключена) | |
Инструмент агента (MCP_AGENT_TOOL_) | Настройки для инструмента | ||
| Максимальное количество шагов за один запуск агента. |
| |
| Максимальное количество действий на шаг агента. |
| |
| Метод вызова инструмента ('auto', 'json_schema', 'function_calling'). |
| |
| Максимальное количество входных токенов для контекста LLM. |
| |
| Включить возможности зрения (анализ снимков экрана). |
| |
| Переопределить | (использует общее) | |
| Переопределить | (использует общее) | |
| Включить запись видео в режиме Playwright. |
| |
| Необязательно: Путь для сохранения записей. Если не задано, запись в файл отключена, даже если | (пусто, запись отключена) | |
| Необязательно: Каталог для сохранения файлов истории агента JSON. Если не задано, сохранение истории отключено. | (пусто, сохранение истории отключено) | |
Инструмент исследования (MCP_RESEARCH_TOOL_) | Настройки инструмента | ||
| Максимальное количество параллельных экземпляров браузера для глубоких исследований. |
| |
| Необязательно: Базовый каталог для сохранения исследовательских артефактов. Будет добавлен идентификатор задачи. Если не задано, работает в режиме только памяти. |
| |
Пути (MCP_PATHS_) | Общие настройки пути. | ||
| Необязательно: Каталог для загруженных файлов. Если не задано, постоянные загрузки по указанному пути отключены. | (пусто, загрузки отключены) | |
Сервер (MCP_SERVER_) | Настройки, специфичные для сервера. | ||
| Путь к файлу журнала сервера. Пустой для stdout. | (пусто, выводит на стандартный вывод) | |
| Уровень ведения журнала ( |
| |
| Включить/отключить анонимную телеметрию ( |
| |
| Необязательно: строка JSON для конфигурации клиента MCP, используемая внутренним контроллером. |
|
Поддерживаемые поставщики LLM ( MCP_LLM_PROVIDER ): openai , azure_openai , anthropic , google , mistral , ollama , deepseek , openrouter , alibaba , moonshot , unbound
(Полный список всех поддерживаемых переменных среды и их конкретных ключей/конечных точек поставщика см. в .env.example .)
Подключение к собственному браузеру (CDP)
Вместо того чтобы сервер запускал и управлял собственным экземпляром браузера, вы можете подключить его к браузеру Chrome/Chromium, который вы запускаете и управляете самостоятельно.
Шаги:
Запустите Chrome/Chromium с включенной удаленной отладкой: (команды для macOS, Linux, Windows перечислены ранее, например,
google-chrome --remote-debugging-port=9222)Настройте переменные среды: установите следующие переменные среды:
MCP_BROWSER_USE_OWN_BROWSER=true MCP_BROWSER_CDP_URL=http://localhost:9222 # Use the same port # Optional: MCP_BROWSER_USER_DATA_DIR=/path/to/your/profileЗапустите сервер MCP или CLI: Запустите сервер (
uv run mcp-server-browser-use) или CLI (mcp-browser-cli ...) как обычно.
Важные соображения:
Браузер, запущенный с
--remote-debugging-portдолжен оставаться открытым.Такие настройки, как
MCP_BROWSER_HEADLESSиMCP_BROWSER_KEEP_OPENигнорируются, еслиMCP_BROWSER_USE_OWN_BROWSER=true.
Разработка
# Install dev dependencies and sync project deps
uv sync --dev
# Install playwright browsers
uv run playwright install
# Run MCP server with debugger (Example connecting to own browser via CDP)
# 1. Launch Chrome: google-chrome --remote-debugging-port=9222 --user-data-dir="optional/path/to/user/profile"
# 2. Run inspector command with environment variables:
npx @modelcontextprotocol/inspector@latest \
-e MCP_LLM_GOOGLE_API_KEY=$GOOGLE_API_KEY \
-e MCP_LLM_PROVIDER=google \
-e MCP_LLM_MODEL_NAME=gemini-2.5-flash-preview-04-17 \
-e MCP_BROWSER_USE_OWN_BROWSER=true \
-e MCP_BROWSER_CDP_URL=http://localhost:9222 \
-e MCP_RESEARCH_TOOL_SAVE_DIR=./tmp/dev_research_output \
uv --directory . run mcp-server-browser-use
# Note: Change timeout in inspector's config panel if needed (default is 10 seconds)
# Run CLI example
# Create a .env file with your settings (including MCP_RESEARCH_TOOL_SAVE_DIR) or use environment variables
uv run mcp-browser-cli -e .env run-browser-agent "What is the title of example.com?"
uv run mcp-browser-cli -e .env run-deep-research "What is the best material for a pan for everyday use on amateur kitchen and dishwasher?"Поиск неисправностей
Ошибка конфигурации при запуске : если приложение не запускается из-за ошибки об отсутствующем параметре, убедитесь, что все обязательные переменные среды (например,
MCP_RESEARCH_TOOL_SAVE_DIR) правильно заданы в вашей среде или файле.env.Конфликты браузеров : если CDP не используется (
MCP_BROWSER_USE_OWN_BROWSER=false), убедитесь, что не запущены конфликтующие экземпляры Chrome с тем же каталогом пользовательских данных, если указанMCP_BROWSER_USER_DATA_DIR.Проблемы с подключением CDP : Если используется
MCP_BROWSER_USE_OWN_BROWSER=true:Убедитесь, что Chrome запущен с
--remote-debugging-port.Убедитесь, что порт в
MCP_BROWSER_CDP_URLсовпадает.Проверьте брандмауэры и убедитесь, что браузер запущен.
Ошибки API : дважды проверьте ключи API (
MCP_LLM_<PROVIDER>_API_KEYилиMCP_LLM_API_KEY) и конечные точки (например,MCP_LLM_AZURE_OPENAI_ENDPOINTдля Azure).Проблемы со зрением : убедитесь, что
MCP_AGENT_TOOL_USE_VISION=trueи ваша степень магистра права поддерживает зрение.Проблемы с зависимостями : Запустите
uv syncиuv run playwright install.Проблемы с файлами/путями :
Если дополнительные функции, такие как сохранение истории, трассировка или загрузки, не работают, убедитесь, что установлены соответствующие переменные пути (
MCP_AGENT_TOOL_HISTORY_PATH,MCP_BROWSER_TRACE_PATH,MCP_PATHS_DOWNLOADS) и у приложения есть разрешения на запись в эти расположения.Для более глубокого исследования убедитесь, что
MCP_RESEARCH_TOOL_SAVE_DIRустановлен в допустимом каталоге с возможностью записи.
Ведение журнала : Проверьте файл журнала (
MCP_SERVER_LOG_FILE, если установлен) или вывод консоли. УвеличьтеMCP_SERVER_LOGGING_LEVELдоDEBUGдля получения более подробной информации. Для CLI используйте--log-level DEBUG.
Лицензия
MIT — подробности см. в разделе ЛИЦЕНЗИЯ .
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