Save all currently accumulated repository changes as a backup snapshot for Gitea so no local work is lost.
Browserless MCP - Развертывание в Docker
Этот проект разворачивает Browserless.io и MCP сервер для автоматизации браузера через Model Context Protocol.
Структура
- Browserless.io - сервис автоматизации браузера (порт 3000)
- Browserless MCP - MCP сервер для интеграции с Cursor/AI (порт 3010)
Быстрый старт
1. Настройка переменных окружения
Скопируйте пример файла окружения:
cp .env.example .env
Отредактируйте .env и установите безопасный токен:
BROWSERLESS_TOKEN=ваш-безопасный-токен-здесь
2. Запуск сервисов
docker-compose up -d
3. Проверка работоспособности
Проверьте статус контейнеров:
docker-compose ps
Проверьте здоровье Browserless:
curl http://localhost:3000/health
4. Просмотр логов
# Все сервисы
docker-compose logs -f
# Только Browserless
docker-compose logs -f browserless
# Только MCP сервер
docker-compose logs -f browserless-mcp
Настройка MCP в Cursor
MCP серверы работают через stdio (стандартный ввод/вывод). Добавьте в конфигурацию Cursor.
Вариант 1: Локальный Docker (если Cursor на том же сервере)
В настройках Cursor (Settings → Features → Model Context Protocol) или в файле .cursor/mcp.json:
{
"mcpServers": {
"browserless": {
"command": "docker",
"args": [
"exec",
"-i",
"browserless-mcp",
"sh",
"-c",
"if [ -f dist/index.js ]; then node dist/index.js; else npx ts-node src/index.ts; fi"
],
"env": {
"BROWSERLESS_HOST": "browserless",
"BROWSERLESS_PORT": "3000",
"BROWSERLESS_TOKEN": "ваш-токен-из-env"
}
}
}
}
Вариант 2: Через SSH (рекомендуется для удаленного сервера)
{
"mcpServers": {
"browserless": {
"command": "ssh",
"args": [
"user@crm.clientright.ru",
"docker exec -i browserless-mcp sh -c 'if [ -f dist/index.js ]; then node dist/index.js; else npx ts-node src/index.ts; fi'"
],
"env": {
"BROWSERLESS_HOST": "browserless",
"BROWSERLESS_PORT": "3000",
"BROWSERLESS_TOKEN": "ваш-токен-из-env"
}
}
}
}
Важно: Замените user@crm.clientright.ru на ваши SSH данные и убедитесь, что SSH ключи настроены для доступа без пароля.
Использование
После настройки MCP в Cursor, вы сможете использовать следующие возможности:
- Генерация PDF из веб-страниц
- Создание скриншотов страниц
- Извлечение контента со страниц
- Выполнение JavaScript в браузере
- Обход защиты от ботов (stealth mode)
- Автоматизация форм и действий
- Проведение аудитов производительности
Порты
- 3000 - Browserless.io API
- 3010 - MCP сервер (если нужен прямой доступ)
Переменные окружения
| Переменная | Описание | По умолчанию |
|---|---|---|
BROWSERLESS_TOKEN |
Токен для доступа к Browserless | browserless-secure-token-2025 |
BROWSERLESS_CONCURRENT |
Максимум одновременных сессий | 10 |
BROWSERLESS_TIMEOUT |
Таймаут запросов (мс) | 120000 |
BROWSERLESS_MAX_SESSIONS |
Максимум сессий | 10 |
Остановка и удаление
# Остановка
docker-compose down
# Остановка с удалением volumes (удалит все данные)
docker-compose down -v
Обновление
# Остановка
docker-compose down
# Обновление образов
docker-compose pull
# Пересборка MCP сервера
docker-compose build --no-cache browserless-mcp
# Запуск
docker-compose up -d
Troubleshooting
Проблема: Контейнер не запускается
Проверьте логи:
docker-compose logs browserless-mcp
Проблема: Browserless не отвечает
Проверьте здоровье:
curl http://localhost:3000/health
Проверьте, что порт 3000 свободен:
netstat -tuln | grep 3000
Проблема: MCP не подключается
Убедитесь, что контейнер запущен:
docker ps | grep browserless-mcp
Проверьте, что MCP сервер может подключиться к Browserless:
docker exec browserless-mcp ping -c 3 browserless
Безопасность
⚠️ Важно: Измените BROWSERLESS_TOKEN на безопасный случайный токен перед использованием в продакшене!
Генерация безопасного токена:
openssl rand -hex 32