browse — MCP-сервер, который пускает ИИ-агентов в ваш настоящий браузер

· 6 мин чтения
mcp browser-automation ai-agents opencode browser-extension
📂 Исходный код на GitHub

MCP-сервер и расширение для Chromium, которые дают ИИ-агентам ваш настоящий браузер: с вашими вкладками, логинами и расширениями

browse — MCP-сервер, который пускает ИИ-агентов в ваш настоящий браузер

Браузерные агенты обычно живут в стерильном мире: отдельный Chromium, чистый профиль, ни одного вашего логина. browse от компании Anomaly устроен иначе. Это MCP-сервер и расширение для Chromium, которые дают агенту ваш настоящий браузер — с вашими вкладками, вашими логинами и вашими расширениями. Агент открывает собственные вкладки в фоне, делает свою работу и не мешает вам. Проект написан на TypeScript, распространяется по лицензии MIT и ориентирован в первую очередь на opencode, хотя подойдёт любому MCP-клиенту.

Как это устроено

Схема состоит из трёх звеньев. Агент общается с MCP-сервером browse по stdio. Сервер передаёт команды локальному релею — процессу, который слушает 127.0.0.1:19988. А расширение в браузере, подключённое к релею по WebSocket, исполняет эти команды через chrome.debugger.

Управление страницей построено на Playwright: инструмент execute принимает фрагмент кода, который работает с объектами page, context и снимком страницы. Чтобы сайтам было труднее распознать автоматизацию, внутри используется Patchright — он прячет типичные признаки вроде navigator.webdriver. Ввод имитирует человека: мышь движется по кривым траекториям, текст набирается с паузами, страница прокручивается плавно. Полной невидимости всё равно нет — Chrome показывает полоску о запущенной отладке, и авторы честно об этом пишут.

Установка

macOS и Linux:

curl -fsSL https://opencode.ai/browse/install | bash

В PowerShell на Windows: irm https://opencode.ai/browse/install.ps1 | iex. Через Node.js подойдёт npx @opencode/browse install.

Установщик делает три вещи: кладёт команду browse в ~/.local/bin, добавляет MCP-сервер в выбранных вами агентов и ставит расширение из Chrome Web Store. Привязка расширения к релею происходит сама через одноразовый код. Работает это в Chrome, Edge, Brave, Arc, Helium, Vivaldi, Opera и Chromium. Обновления приходят автоматически: релиз проверяется раз в час, обновление ставится в фоне, когда агент не пользуется браузером.

Список поддерживаемых клиентов длинный: OpenCode, Claude Code, Claude Desktop, Cursor, Codex, VS Code, Windsurf, Amp, Gemini CLI, Cline, Roo Code, Zed, Goose, Warp и ещё около двадцати. Установщик находит их конфиги и дописывает нужную запись сам. Для любого другого stdio-клиента достаточно вписать вручную:

{ "mcpServers": { "browse": { "command": "browse", "args": ["mcp"] } } }

Инструменты MCP

Инструмент Что делает
execute Запускает код Playwright против страницы сессии
session_new, session_list, session_use, session_reset, session_delete Именованные сессии со своими вкладками; переживают перезапуск
session_adopt Забирает вкладку, которую вы вручную отдали агенту
session_allowlist Ограничивает вкладки сессии заданным набором сайтов
network Пишет сетевой трафик в HAR с вычищенными секретами
recording Записывает вкладку в видео MP4 или WebM
flight_recorder Держит последнюю минуту записи и сохраняет её, если что-то сломалось
secrets_list, secrets_run Позволяют агенту вводить сохранённые пароли, не видя их значений
tabs_cleanup Закрывает вкладки агентов, к которым давно не обращались
settings Читает и меняет настройки, когда вы об этом просите
status Показывает состояние подключения

Каждая сессия — это набор вкладок агента со своим именем. Вкладки открываются в фоне вашего окна и складываются в отдельную свёрнутую группу. Агент не может вытащить своё окно вперёд и переключить вас на себя. Вкладки, к которым никто не прикасался 10 минут, закрываются сами (срок можно поменять в настройках).

Хендоффы: машина и человек по очереди

Главная идея проекта — агент работает рядом с вами, а не вместо вас. Когда наступает момент, который требует человека, — логин, код 2FA, оплата, — агент передаёт вкладку вам. На странице появляется небольшая карточка с адресом сайта: вы делаете свою часть и жмёте Continue, после чего агент продолжает работу. Пароли и коды в чат копировать не нужно.

Работает и обратная передача: клик по кнопке расширения отдаёт агенту вашу текущую вкладку. Бейдж на кнопке показывает ON, пока вкладка у агента, RUN — пока он работает, и WAIT — когда ждёт вас. Повторный клик забирает вкладку назад и останавливает запущенный скрипт. Агент не может закрыть одолженную вкладку.

Для демо-видео есть режим записи: в ролик попадает только страница, без курсора агента, карточек и служебных элементов. Призрачный курсор можно включить специально, если он нужен в кадре.

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

Авторы исходят из двух допущений: страницы, которые читает агент, могут пытаться им манипулировать, а другие программы на вашем компьютере — попытаться залезть в релей. Отсюда набор защит:

  • Токен релея. Каждый запрос к 127.0.0.1:19988 требует bearer-токен, который лежит в домашней папке с правами только для вас. Релей слушает только localhost и отвергает запросы из браузера с чужих сайтов.
  • Привязка браузера. Одноразовый код вида XXXX-XXXX действует 10 минут; пять ошибочных попыток подряд отменяют все ожидающие коды. Браузер обменивает код на собственный ключ через соглашение ECDH, а дальше обе стороны при каждом подключении доказывают, что знают ключ.
  • Песочница для execute. Код агента не видит Node API — ни файловой системы, ни process, ни сети. Доступ к файлам ограничен разрешёнными корнями, а синхронный код останавливается примерно через 2 секунды. Авторы прямо предупреждают: это не граница безопасности, код агента считайте кодом, запущенным от вашего имени.
  • Ограничения CDP. Куки доступны только для страниц самой сессии. Очистка куков и кэша, закрытие браузера и вывод окна на передний план запрещены всегда.
  • Белые списки доменов. Сессию можно привязать к конкретным сайтам — релей отвергнет переходы на другие адреса, включая защиту от DNS-rebinding. Мера опциональная.
  • Секреты сайтов. Команда browse secrets add сохраняет пароль или TOTP-сид на диске с правами 0700/0600. Агент вводит такой секрет через secrets.type(), только на разрешённых сайтах, и не видит значения: оно не попадает в логи, журналы и HAR.
  • Бот-челленджи. Страницы Cloudflare, Akamai, DataDome и подобных защит агент не решает никогда. Он сообщает о них и либо ждёт, пока браузер пройдёт проверку сам (до 15 секунд), либо передаёт вкладку вам.

Журналы сессий лежат с закрытыми правами, вычищают набранные пароли и коды и удаляются через 14 дней.

Зачем это в работе

Первый сценарий — автоматизация на сайтах, где вы уже залогинены: внутренние панели, админки, сервисы с подпиской. Второй — тестирование своих приложений в реальном окружении, а не в пустом профиле. Третий — запись демо и скринкастов: вкладка пишется в MP4 начисто, без следов автоматизации. Наконец, агент может просто собирать информацию в фоне, пока вы работаете в своём окне.

Полное справочное руководство для агентов лежит в файле cli/skills/browse/SKILL.md, посмотреть его можно командой browse skill. Проект не принимает пулл-реквесты — только issues, и, по словам авторов, их агенты разбирают их довольно быстро.

Источник: https://github.com/anomalyco/browse