Stealth Browser MCP — скрытная браузерная автоматизация для ИИ-агентов

· 2 мин чтения
mcp browser-automation web-scraping chrome-devtools python
📂 Исходный код на GitHub

MCP-сервер для скрытной браузерной автоматизации: реальные экземпляры Chrome через nodriver, обход анти-бот проверок, клонирование UI через CDP и 97 инструментов для ИИ-агентов.

Stealth Browser MCP — скрытная браузерная автоматизация для ИИ-агентов

Stealth Browser MCP — это open-source MCP-сервер для скрытной браузерной автоматизации. Он управляет реальными экземплярами браузеров семейства Chrome через библиотеку nodriver и Chrome DevTools Protocol (CDP), позволяя ИИ-агентам проходить Cloudflare-челленджи, анти-бот проверки и логин-валлы. Проект написан на Python, распространяется по лицензии MIT и собрал более двух тысяч звёзд на GitHub.

Сервер построен на FastMCP и работает с любыми MCP-совместимыми клиентами — Claude Desktop, Claude Code, Cursor и другими. В его распоряжении 97 инструментов, сгруппированных в 11 разделов: от базовой навигации до выполнения прямых CDP-команд и динамических сетевых хуков, которые агент пишет сам по запросу в чате.

Возможности

  • Устойчивость к анти-бот системам. По данным авторов, в тестах сервер проходил челленджи в стиле Cloudflare и Queue-It; результат зависит от конкретного сайта, региона, версии браузера и версии детектора.
  • Пиксельно точное клонирование элементов. Через CDP извлекается элемент целиком: CSS-стили, структура DOM, обработчики событий, анимации и ассеты.
  • Инспекция сети. Агент может просматривать запросы, ответы, заголовки, полезные нагрузки и захваченные тела ответов — удобно для реверс-инжиниринга API.
  • Динамические хуки. Ограниченные Python-хуки перехватывают, блокируют, перенаправляют, подменяют или модифицируют потоки запросов и ответов в реальном времени.
  • Выполнение CDP и JavaScript. Запуск скриптов на странице, прямых CDP-команд и pre-document скриптов, которые срабатывают до выполнения кода страницы.
  • Ввод текста. Мгновенная вставка большого контента через CDP или «человеческий» набор с поддержкой переносов строк.
  • Кроссплатформенность. Windows, macOS, Linux, Docker и CI-окружения с автоматическим обнаружением браузера: поддерживаются Chrome, Chromium и Microsoft Edge.
  • Чистая MCP-интеграция. Работает через стандартные MCP-клиенты без дополнительных брокеров.

Установка

Требуются Python 3.10+ и Chrome, Chromium или Microsoft Edge.

git clone https://github.com/vibheksoni/stealth-browser-mcp.git
cd stealth-browser-mcp
python -m venv venv

# macOS / Linux
source venv/bin/activate

pip install -r requirements.txt

Подключение к MCP-клиенту

Рекомендуемый способ для Claude Code CLI (macOS / Linux):

claude mcp add-json stealth-browser-mcp '{
  "type": "stdio",
  "command": "/path/to/stealth-browser-mcp/venv/bin/python",
  "args": ["/path/to/stealth-browser-mcp/src/server.py"]
}'

Для Claude Desktop или Cursor конфигурация добавляется вручную (на macOS файл лежит в ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "stealth-browser-mcp": {
      "command": "/path/to/stealth-browser-mcp/venv/bin/python",
      "args": ["/path/to/stealth-browser-mcp/src/server.py"],
      "env": {}
    }
  }
}

После перезапуска клиента достаточно попросить агента: «Use stealth-browser to navigate to https://example.com and take a screenshot».

97 инструментов в 11 разделах

Полный набор инструментов можно урезать под конкретную задачу: флаг --minimal оставляет 20 ключевых инструментов, --xpool-safe отключает CDP-функции, вызывающие Runtime.enable, а флаги --disable-* выключают отдельные разделы.

Раздел Инструментов Назначение
browser-management 8 запуск и управление браузером
element-interaction 12 взаимодействие со страницей: клики, ввод, скриншоты
element-extraction 9 клонирование и извлечение элементов
file-extraction 9 сохранение результатов извлечения в файлы
network-debugging 10 мониторинг и захват сетевого трафика
cdp-functions 14 прямое выполнение CDP-команд
progressive-cloning 10 пошаговое клонирование тяжёлых элементов
cookies-storage 3 управление cookie
tabs 5 работа с вкладками
debugging 7 диагностика и системные утилиты
dynamic-hooks 10 сетевые хуки, создаваемые ИИ

Среди ключевых инструментов: spawn_browser() создаёт скрытный экземпляр браузера, clone_element_complete() клонирует элемент вплоть до анимаций, create_dynamic_hook() позволяет агенту написать Python-хук для перехвата трафика, а add_script_to_evaluate_on_new_document() устанавливает скрипты до того, как выполнится код страницы. Полный список с описаниями — в README репозитория.

Конфигурация сервера

Сервер настраивается переменными окружения: STEALTH_BROWSER_MCP_AUTH_TOKEN включает bearer-токен для HTTP-транспорта, BROWSER_IDLE_TIMEOUT (по умолчанию 600 секунд) управляет автоматическим закрытием неиспользуемых экземпляров браузера, а BROWSER_FILE_UPLOAD_ALLOWED_DIRS ограничивает каталоги, из которых разрешена загрузка файлов через file_upload().

Режим подробной диагностики включается флагом --debug или переменной STEALTH_BROWSER_DEBUG=1; логи идут в stderr, чтобы не повреждать JSON-RPC-поток при stdio-транспорте.

python src/server.py --minimal
python src/server.py --disable-cdp-functions --disable-dynamic-hooks
python src/server.py --list-sections
python src/server.py --transport http --host 127.0.0.1 --port 8000

Безопасность

Сервер открывает мощные примитивы управления браузером: выполнение CDP и JavaScript, доступ к cookie и хранилищам, перехват сети, мутация заголовков и загрузка файлов из разрешённых локальных каталогов. Авторы рекомендуют рассматривать MCP-клиент как субъекта доверия и разворачивать сервер локально через stdio-транспорт с проверенным десктоп-клиентом. Если нужен HTTP-транспорт — обязательно задайте STEALTH_BROWSER_MCP_AUTH_TOKEN и не выставляйте неаутентифицированный HTTP за пределы доверенной локальной сети.

Отдельная приятная деталь: сервер сам подчищает за собой процессы — автоматически закрывает неиспользуемые экземпляры браузера по таймауту и удаляет осиротевшие временные профили uc_* при старте.

Сравнение с Playwright MCP

Авторы сравнивают проект с Playwright MCP: там, где Playwright обычно блокируется на челленджах Cloudflare, Stealth Browser MCP в тестах проходит типичные JS-челленджи благодаря реальным браузерным экземплярам через nodriver. Он также выигрывает в точности клонирования UI, полноте инспекции сети и реверс-инжиниринге API, плюс предлагает модульную архитектуру — от 20 до 97 инструментов против фиксированного набора примерно из 20 у Playwright MCP.

Результаты детекции зависят от политики сайта, региона, репутации IP и версии детектора, поэтому актуальный снапшот ручных тестов вынесен в отдельный файл STEALTH_TESTS.md, а воспроизводимый бенчмарк предложен в issue №25.

Примеры применения

  • Анализ рынка — извлечение цен и характеристик конкурентов в сравнительную таблицу.
  • Клонирование UI — воссоздание секции с точными шрифтами, стилями, ассетами и интерактивностью: в демо агент воссоздал hero-секцию augmentcode.com меньше чем за две минуты разговора (полный разбор).
  • Мониторинг наличия товара — слежение за страницей продукта с уведомлением об изменении статуса.
  • Реверс-инжиниринг API — перехват запросов, картирование эндпоинтов и инспекция потока данных.
  • Автоматизация форм — загрузка файлов из разрешённых каталогов с проверкой состояния страницы.

Всё это управляется из одного разговора с ИИ-агентом.

Agent Skill и дорожная карта

Репозиторий включает агентский скилл skills/stealth-browser-mcp для клиентов с поддержкой Codex-style skills: он обучает агента правильному порядку вызова инструментов, проверке состояния браузера после действий, использованию pre-document CDP-скриптов и правилам очистки. Скилл полезен, когда LLM путается в выборе инструмента или забывает верифицировать состояние после действий.

Планы развития проекта опубликованы в ROADMAP.md, новые контрибьюторы приветствуются — детали в CONTRIBUTING.md.

Если проект экономит вам время, поставьте ему звезду на GitHub и загляните в LICENSE — код распространяется свободно.

Источник: https://github.com/vibheksoni/stealth-browser-mcp