Browser MCP : Встроенный Chromium : QA под управлением агентов

Твои агенты управляют настоящим браузером.
Не фейковым.

AgentsRoom встраивает настоящий браузер Chromium в каждый проект и поставляется с сервером AgentsRoom Browser MCP, который позволяет твоим ИИ-агентам им управлять. Твой QA-агент открывает сайт на localhost, кликает кнопки, заполняет формы, делает скриншоты, читает консоль и проверяет, что фича реально работает, прежде чем сказать done. End-to-end browser automation для Claude Code, Codex, OpenCode, Gemini CLI и Aider, с нулевой конфигурацией Playwright.

Сочетай это с Agent Teams: Dev-агент выпускает фичу, QA-агент загружает сайт localhost во встроенном браузере, прогоняет сценарий проверки, делает скриншот результата и согласовывает. Нативная browser automation тоже в roadmap, с планируемыми будущими MCP-серверами для приложений React Native и Electron, чтобы агенты также могли тестировать мобильные и desktop приложения.

Демо AgentsRoom Browser MCP: end-to-end тестирование веб-приложения под управлением QA-агента Claude Code через встроенный браузер Chromium.

Browser Automation в AgentsRoom: две вещи в одной. Первое: настоящий браузер Chromium, встроенный в каждый room проекта, с URL-баром, back/forward, reload, history, скриншотом в clipboard, open-in-default-browser, постоянными cookies и localStorage на проект. Второе: сервер AgentsRoom Browser MCP (agentsroom-browser), который выставляет этот браузер твоим ИИ-агентам через Model Context Protocol. Агент получает чистый, scriptable интерфейс: navigate, click, type, screenshot, evaluate JavaScript, ждать элемент, get page state, get console logs, go back, go forward, reload.

Почему это важно? Потому что вся обещание ИИ-агентов кодинга разваливается, когда агент говорит 'feature shipped' но никогда не открывает страницу чтобы проверить. Большинство агентов сегодня полагаются на запуск unit-тестов, потом надеются. С настоящим browser MCP агент загружает localhost-сервер, прогоняет user flow, видит то что увидел бы человек-пользователь, и только тогда согласовывает. Роль QA Engineer agent наконец-то имеет инструменты которые ей нужны для настоящего QA, а не только статического анализа.

Технический setup невидим для тебя. Когда ты ставишь галку 'Browser access' на агенте, AgentsRoom мерджит запись agentsroom-browser в .mcp.json твоего проекта и агент стартует с доступными инструментами браузера. Мост WebSocket, работающий на loopback-порту (127.0.0.1, назначаемый OS, регенерируемый при каждом boot, аутентифицируемый 32-байтовым hex-токеном), соединяет MCP-subprocess с WebContentsView Chromium в Electron-приложении. Каждый клик, каждый ввод, каждый скриншот: JSON-RPC вызов. Агент видит настоящий браузер, не stub.

Встроенный браузер Chromium AgentsRoom: URL-бар, контролы навигации, history, захват скриншотов и ИИ-агенты, управляющие браузером через сервер AgentsRoom Browser MCP

Панель Browser AgentsRoom: URL-бар, history, скриншот и полная поверхность контроля MCP для ИИ-агентов чтобы навигировать, кликать, вводить и проверять.

Настоящий браузер, не Playwright stub

Большинство демок ИИ-агентов, говорящих о browser automation, используют headless Playwright-инстанс, спавнящийся при каждом вызове инструмента. Это работает для бенчмарков, но это болезненно в реальной жизни: ты не видишь что делает агент, каждая навигация respawnит Chromium, cookies теряются, localStorage пуст, твой dev-сервер думает что каждый визит: новая сессия. AgentsRoom берёт другой угол. Браузер уже открыт в твоём room проекта (ты сам им пользуешься, как обычным браузером), и агент управляет этим браузером. Сессии, cookies, localStorage, состояние логина: всё сохранено.

Каждый клик и ввод от агента триггерит настоящий нативный dispatch через WebContentsView Electron, с правильными key-events, mouse-events и DOM-мутациями. Скриншоты: настоящие PNG, захваченные с реально отрендеренной страницы (не DOM-to-image хак). Логи консоли буферизуются и queryable, включая warnings и errors. Агент видит то же самое, что увидел бы ты с открытыми DevTools: настоящую производительность, настоящее network-поведение, настоящий CORS, настоящий auth.

Cross-room изоляция обеспечивается. AgentsRoom создаёт один Chromium WebContentsView на проект, со своей session-партицией (persist:agentsroom-browser-<projectId>). Cookies проекта A никогда не утекают в проект B. Когда ты переключаешь проект, предыдущий браузер скрывается и новый выходит online со своим состоянием. Агент всегда приземляется на правильном проекте, с правильными credentials.

Слой MCP намеренно мал и без зависимостей. Subprocess browser-mcp-server.cjs говорит на протоколе MCP 2024-11-05 через stdio (initialize, tools/list, tools/call) и переводит его в JSON-RPC вызовы по loopback WebSocket-мосту. По сравнению с тяжёлым SDK-based сервером, остаётся быстрым (первый вызов инструмента sub-100ms) и легко дебажится. После каждого действия меняющего страницу (клик, ввод, navigate, reload, back, forward), ответ включает base64 PNG-скриншот, ограниченный 1.6 MB, так что агент всегда видит результат того что только что сделал. Это оказалось одной из самых больших побед по надёжности: агенты, которые видят экран, делают правильное намного чаще чем агенты которые надеются.

Тулкит Browser MCP который получают твои агенты

Каждый ИИ-агент с browser-доступом стартует с этими инструментами. Они выставлены через стандартный MCP, так что любой совместимый CLI их видит: Claude Code, Codex CLI, OpenCode, Gemini CLI, Aider.

browser_navigate

Открыть URL во встроенном браузере. Smart URL handling: localhost:3000 становится http://localhost:3000 вместо триггера диалога 'cannot open application'. Возвращает финальный URL и скриншот страницы после загрузки.

browser_click

Кликнуть на элемент по селектору или по видимому тексту. Настоящий нативный click event, не JavaScript-dispatch. Возвращает post-click скриншот, так что агент видит результат своего действия.

browser_type

Ввести текст в input или textarea. Поддерживает горячие клавиши и submit. Настоящие key-events, обработчики onChange страницы срабатывают. Возвращает скриншот после ввода.

browser_screenshot

Захватить текущий viewport как PNG. Полезно для проверок визуальной регрессии, design QA, before-and-after сравнений или для шеринга состояния бага с остальной командой.

browser_evaluate

Запустить выражение JavaScript в main world страницы. Получить обратно сериализованный результат. Используется агентами для чтения состояния страницы, query DOM, инспекции Redux store или триггера действия которое не имеет видимой кнопки.

browser_wait_for

Ждать появления элемента, изменения URL, завершения сетевого запроса или возврата true произвольным JavaScript. Избегает классической гонки 'агент кликает слишком быстро'.

browser_get_state

Прочитать текущий URL, заголовок, viewport, scroll-позицию и структурированный snapshot доступных элементов страницы. Основной input агента, когда ему надо спланировать следующее действие.

browser_get_logs

Вытащить буфер консоли (log, warn, error). Агент может видеть те же React warnings, hydration-ошибки, network failures и runtime exceptions, которые видел бы ты в DevTools. Bug-репорты становятся 'вот ошибка из консоли'.

browser_go_back / forward / reload

Стандартная навигация браузера, scriptable. Используется агентами для возврата когда flow идёт не так, или для re-теста страницы после hot reload от Vite, Next.js или Expo Metro.

Что агенты реально делают с браузером

Настоящие воркфлоу которые можно построить уже сегодня, с ролью QA Engineer и Agent Teams.

End-to-end smoke-тест на каждом хендоффе

Подключи команду Dev в QA. QA-агент навигирует на твой dev-сервер localhost, прокликивает критичные пути (signup, checkout, dashboard), делает скриншот результата и согласовывает только если ничего не падает. Лови регрессии до того как человек откроет страницу.

QA визуальной регрессии

Before-and-after скриншоты на UI-изменениях. Агент загружает страницу на предыдущем коммите, скриншот, переключает branch, скриншот, просит Claude сравнить. Дешёвый QA визуального diff без Percy или Chromatic в петле.

Охота на ошибки в консоли

Агент навигирует по приложению, вызывает browser_get_logs, находит React hydration warnings, useEffect warnings, network 404, CORS errors, deprecation notices. Репортит их как список рисков в payload хендоффа команды, следующий Dev-агент их фиксит.

Тестирование валидации форм

Агент заполняет форму валидными данными, пустыми полями, edge-кейсами (XSS-строки, очень длинные input, non-ASCII). Проверяет сообщения валидации, сетевые запросы, редиректы. Настоящий QA форм, не unit-тесты.

Аудит accessibility

Агент проходит по странице, query accessibility tree через browser_get_state и browser_evaluate, проверяет alt-тексты, ARIA-атрибуты, focus management, навигацию с клавиатуры. Репортит проблемы со скриншотами.

Design QA против Figma

Сочетай с фичей Figma to AI agents. Агент загружает Figma-frame, скриншот, загружает страницу localhost, скриншот, сравнивает spacings, шрифты, цвета, alignments. Заводит список несоответствий.

Проверка тоннеля live preview

Сочетай с localhost-тоннелем AgentsRoom. Агент навигирует на публичный HTTPS preview URL (не localhost), проверяет что сайт доступен из внешнего мира, делает скриншот и подтверждает что stakeholder может реально открыть ссылку.

Воспроизведение бага клиента из публичного тикета бэклога

Приходит публичный тикет бэклога с URL и шагами для воспроизведения. QA-агент открывает URL, следует шагам, ловит ошибку консоли, прикрепляет скриншот, делает хендофф к Dev с чистым repro. Конец циклам 'cannot reproduce'.

Как агент получает браузер

01

Открой вкладку Browser в room

В room проекта правая панель выставляет три вкладки: Files, Changes, Browser. Кликни Browser. Панель расширяется, sidebar сворачивается, и появляется настоящий Chromium-вид. Введи URL или выбери из истории проекта.

02

Поставь галку 'Browser access' на агенте

Открой модал Edit Agent, разверни Capabilities, поставь галку Browser access. AgentsRoom мерджит запись agentsroom-browser в .mcp.json твоего проекта и агент увидит инструменты браузера при следующем старте.

<project>/.mcp.json
03

Агент стартует с browser MCP

При спавне агента Claude (или Codex, Gemini и т.д.) инициализирует MCP-сервер agentsroom-browser, листует свои инструменты (browser_navigate, browser_click, browser_type, browser_screenshot, browser_evaluate, browser_wait_for, browser_get_state, browser_get_logs, browser_go_back, browser_go_forward, browser_reload), и с этого момента может управлять браузером.

04

Агент использует браузер

Агент навигирует, кликает, вводит, делает скриншоты, читает консоль. Каждое действие идёт через мост loopback WebSocket (127.0.0.1, порт назначаемый OS, 32-байтовый hex-токен, регенерируемый при каждом boot desktop-приложения). После каждого действия меняющего страницу, скриншот возвращается inline, так что агент визуально проверяет свой ход.

05

Авто-таргет на localhost или твой тоннель

Если localhost-тоннель работает, первая навигация приземляется на URL тоннеля. Иначе, на первый обнаруженный dev-сервер. Иначе, https://localhost:3000. Совмещённое с Dev Terminals, агент буквально стартует dev-сервер, потом открывает его в браузере, потом тестит.

06

Проверка, скриншот, хендофф

Когда подключено в Agent Teams, QA-нод прогоняет свои сценарии, ловит скриншоты, ставит flags.qaPassed в payload хендоффа. Следующий агент наследует вердикт. Pass идёт к PM, fail возвращается к Dev с тест-хинтами.

Под капотом

Для любопытных. Стек browser automation мал намеренно.

У каждого проекта один Chromium WebContentsView (современное Electron API, не deprecated BrowserView), наложенный на главное окно с bounds стримящимися из React-renderer. Per-project session-партиция держит cookies, localStorage и аутентификацию изолированными между проектами. Default offscreen bounds позволяют агентам вызывать browser-инструменты даже до того как человек откроет вкладку Browser, с 5-секундовым timeout на скриншотах чтобы избежать зависаний.

Лёгкий WebSocket-сервер (browser-bridge.ts) работает на loopback-порту, выбранном OS, привязанном только к 127.0.0.1. Аутентификация использует 32-байтовый hex-токен, регенерируемый при каждом boot desktop. Bridge-файл ~/.agentsroom/browser-bridge.json держит текущий порт, токен и PID, атомарно переписываемый при каждом boot, так что MCP-subprocess всегда подхватывает свежие credentials с автоматическим retry.

Сам MCP-сервер: browser-mcp-server.cjs, zero-dependency Node-скрипт, реализующий протокол MCP 2024-11-05 через stdio (initialize, tools/list, tools/call). Говорит JSON-RPC мосту WebSocket через hand-rolled WebSocket-клиент (нет ws, нет @modelcontextprotocol/sdk). Маленький, быстрый, легко аудитится. Бандлится как extraResources файл в desktop-приложении, так что каждая установка ставится с ним готовым к работе.

Нативная поддержка браузера (first-class фича браузера за пределами MCP) в roadmap AgentsRoom. Помимо этого, долгосрочный план включает дополнительные MCP, чтобы агенты также могли управлять non-web таргетами: React Native MCP для мобильных приложений и Electron MCP для desktop-приложений. Та же идея, тот же UX: агент не просто пишет код, он реально прогоняет работающее приложение.

Shipping
Browser MCP for web apps
Roadmap
React Native MCP for mobile apps
Roadmap
Electron MCP for desktop apps
Loopback only
Bridge bound to 127.0.0.1, OS-assigned port, 32-byte hex token regenerated at every boot.
Per-project session
Cookies, localStorage and auth isolated by partition. Project A never sees project B's session.
Auditable tools
Every action goes through a small, dependency-free MCP server. Easy to read, easy to audit.

FAQ

Чем это отличается от Playwright MCP или browser-инструментов на основе Puppeteer?

MCP на основе Playwright и Puppeteer спавнят свежий headless-браузер при каждой сессии. Это нормально для stateless-задач, но теряет cookies, localStorage и auth между вызовами, и человек не может видеть что делает агент. AgentsRoom Browser: тот же браузер которым человек пользуется внутри приложения, с постоянной per-project сессией, видимой пользователю в реальном времени. Агент управляет окном которое можно видеть и в которое можно вмешаться в любой момент. Это более честная, более debuggable browser automation.

Это работает со всеми ИИ-провайдерами или только с Claude Code?

Это работает с каждым провайдером, поддерживаемым AgentsRoom: Claude Code, Codex CLI, OpenCode, Gemini CLI и Aider. Browser-инструменты выставлены через стандартный Model Context Protocol, который все эти CLI читают из .mcp.json. Агент никогда не знает, что он в AgentsRoom, он просто видит набор MCP-инструментов и использует их как использовал бы любой другой инструмент.

Может ли агент управлять удалённым сайтом или только localhost?

Оба. Введи любой URL и поехали. Localhost (и формы host:port) smart-detected, префиксуются http:// и открываются напрямую. Публичные сайты работают как в любом обычном браузере, с cookies и состоянием логина сохранёнными per project. Совмещённое с localhost-тоннелем AgentsRoom, агент также может управлять твоим локальным dev-сервером через публичный HTTPS URL, что полезно для cross-network и mobile QA.

Безопасен ли browser MCP? Что мешает злоупотреблению?

Мост привязывается только к 127.0.0.1, никогда к 0.0.0.0. Порт назначается OS (никакого фиксированного порта для collision-prone сканирования). 32-байтовый hex-токен требуется при каждом подключении, регенерируется при каждом boot desktop. MCP-subprocess получает credentials только через env-переменные, никогда в каком-либо commit-нутом файле. Browser-доступ opt-in на агента в модале Edit Agent. Если ты его убираешь, запись .mcp.json удаляется и агент больше не может использовать инструменты.

Видит ли агент консоль браузера (errors, warnings, network)?

Да, через browser_get_logs. Буфер держит сообщения console.log, console.warn и console.error из main world страницы. Многие реальные баги (React hydration errors, useEffect warnings, CORS failures) всплывают только в консоли, никогда в unit-тестах, так что это оказывается одним из самых сигнальных инструментов для QA-агента.

Что происходит со скриншотами возвращаемыми агенту? Стоят ли они много токенов?

После каждого действия меняющего страницу, base64 PNG-скриншот добавляется к ответу инструмента, ограниченный 1.6 MB. Выше этого, отправляется text marker. Скриншоты критичны для надёжности (агент, который видит экран, делает намного меньше ошибок), так что trade-off стоит того. Если ты хочешь отключить скриншоты по причинам бюджета, простые browser_evaluate вызовы возвращают только текст.

Может ли агент заполнить форму логина? Сохранять свою сессию?

Да. Cookies и localStorage сохраняются per project под session-партицией persist:agentsroom-browser-<projectId>. Агент может залогиниться раз через browser_type и browser_click и оставаться залогинен в остальной части run. Когда ты переключаешь проект, сессия меняется, так что credentials никогда не утекают между проектами.

Сломается ли агент если dev-сервер не работает?

Он навигирует на URL и видит страницу ошибки Chromium. Может прочитать эту ошибку через browser_get_state и browser_get_logs и реагировать соответственно: попросить тебя стартовать сервер, или вызвать команду Dev Terminals чтобы стартовать его. С Agent Teams и Dev Terminals, можно подключить воркфлоу, который стартует сервер, ждёт, потом открывает браузер, всё без вмешательства человека.

Поддерживаются ли мобильные и desktop приложения тоже?

Web выпускается сегодня, через встроенный Chromium и AgentsRoom Browser MCP. Roadmap включает нативный AgentsRoom Browser как first-class фичу браузера. Помимо этого, планируются дополнительные MCP-серверы: React Native MCP, чтобы агенты могли управлять Expo-бандлами iOS и Android, и Electron MCP, чтобы агенты могли управлять desktop-приложениями которые не web. Та же логика агента, применённая к non-web таргетам.

Может ли человек поставить агента на паузу и взять управление браузером?

Да. Браузер: тот же Chromium-вид которым пользуется человек. В любой момент кликни в панели Browser и ты в управлении. Как только перестанешь взаимодействовать, агент может возобновить свои tool-вызовы. Нет концепции 'agent-locked browser', это разделяемая поверхность, ровно как сессия pair-programming.

Дай своим агентам настоящие глаза в браузере

Поставь галку Browser access на любом агенте в AgentsRoom. Browser MCP стартует автоматически. Твой QA-агент наконец-то тестит то что выпускает.

БесплатноСкачать AgentsRoom

Приложение-компаньон: следите за агентами на ходу

Работает с Claude, Codex, OpenCode, Gemini CLI и Aider

Установить расширение
Chrome Web Store

Отправляйте баги и запросы прямо в ваш публичный бэклог.

Мульти-проекты
Мульти-провайдер
Мульти-агенты
Статус онлайн
Diff и коммиты
Мобильное приложение
Live-превью
Команды агентов
Тесты в браузере
Разработка от backlog