Stealth Browser MCP — скрытная браузерная автоматизация для ИИ-агентов
📂 Исходный код на GitHubMCP-сервер для скрытной браузерной автоматизации: реальные экземпляры Chrome через nodriver, обход анти-бот проверок, клонирование UI через CDP и 97 инструментов для ИИ-агентов.
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 — код распространяется свободно.