Браузерный ИИ-воркстейшн n0x умеет запускать LLM, RAG-поиск и Python-песочницу прямо в браузере — без серверной части, без API-ключей, без передачи данных на сторонние серверы. Всё это работает на WebGPU и WASM. Но до недавнего времени агент мог только генерировать текст: на просьбу «открой Яндекс» он отвечал ссылкой, а не действием.

Чтобы изменить это, автор проекта добавил поддержку MCP — Model Context Protocol. Протокол разработан в Anthropic, создателях Claude, и описывает стандартизированный способ вызова внешних инструментов из LLM-приложений. Схема простая: LLM формирует структурированный вызов инструмента, MCP-клиент перехватывает его, передаёт на MCP-сервер, получает результат и возвращает обратно модели для финального ответа. Сегодня MCP поддерживают десятки инструментов — от файловых систем до браузеров и баз данных.

В n0x MCP-клиент реализован в отдельном Web Worker, чтобы HTTP-запросы к серверу не блокировали интерфейс. Zustand-хранилище (useMCP.ts) управляет состоянием подключения и передаёт команды воркеру. Слой useAgent.ts отвечает за парсинг ответов модели: регулярные выражения распознают навигационные команды на русском и английском — «открой», «перейди», «open», «goto» — и преобразуют их в структурированный вызов mcp_navigate с нужным URL. Если протокол не указан, автоматически добавляется https://.

MCP (Model Context Protocol) — протокол от Anthropic, ставший стандартом для подключения внешних инструментов к LLM.

n0x c MCP Tools
n0x c MCP Tools · Источник: Habr AI

Для управления браузером используется связка из двух процессов. chrome-devtools-mcp подключается к Chrome через Chrome DevTools Protocol — для этого браузер нужно запустить с флагом --remote-debugging-port=9222. supergateway выступает прокси: он принимает HTTP-запросы от n0x и передаёт их chrome-devtools-mcp через stdio. В итоге цепочка выглядит так: n0x → supergateway → chrome-devtools-mcp → Chrome.

Чтобы модель понимала, когда именно нужно вызывать инструмент, в системный промпт добавлена явная инструкция: при командах «открой», «перейди», «visit» — немедленно вызывать navigate, не отвечать текстовой ссылкой, всегда добавлять https:// если схема не указана. Это решает типичную проблему агентов: без явного указания LLM склонна отвечать текстом даже там, где нужно действие.

Подход демонстрирует, насколько MCP снижает порог входа в разработку агентов с реальными возможностями. Протокол уже существует, серверы для популярных инструментов написаны, клиентская часть занимает несколько десятков строк. Автор n0x планирует расширить набор инструментов: скриншоты страниц, выполнение JavaScript, клики по элементам DOM и заполнение форм — всё это доступно через тот же chrome-devtools-mcp и не требует переработки архитектуры. Исходный код проекта открыт.