WebMCP: Как веб-сайты научились говорить на языке AI-агентов
Экспериментальный браузерный API WebMCP позволяет страницам объявлять свои функции напрямую AI-агентам. Это меняет парадигму взаимодействия: вместо того чтобы агент пытался «угадать» назначение кнопок, сайт заранее сообщает ему о доступных инструментах. Разбираем принципы работы, плюсы и подводные камни внедрения.
# Публикуйте инструменты, а не пиксели: как WebMCP меняет диалог человека и AI
Представьте типичный интернет-магазин. Пользователь вводит запрос «наушники», фильтрует по цене, нажимает кнопку «Купить». Шесть простых действий. Если этот квест выполняет человек, всё работает штатно. Если же за рулём AI-агент, история усложняется: модель должна прочесть DOM, понять, что такое поле ввода, и не спутать наушники с кофеваркой. Решение этой проблемы предлагает WebMCP — экспериментальный браузерный API, позволяющий сайтам публиковать свои инструменты прямо в коде.
*«Публикуйте инструменты, а не пиксели».* Такой девиз в англоязычном комьюнити коротко описывает суть инновации. Сайт перестаёт быть набором координат на экране и становится интерфейсом с чётко определённой логикой.
От «сканирования» к пониманию контекста
Традиционные AI-агенты работают по принципу эмуляции: они получают скриншот или дерево доступности (accessibility tree) страницы, вычисляют координаты элементов и кликают в нужные места. Этот подход универсален, но хрупок. Любое изменение вёрстки, всплывающее окно или A/B-тест заставляют агента заново изучать интерфейс, так как он не понимает назначения кнопки, а лишь знает её положение.
WebMCP introduces second path (вводит второй путь). Страница регистрирует инструмент, описывая его назначение, входные параметры в формате JSON Schema и логику обработки. Агент обнаруживает инструмент и вызывает его, передавая структурированные аргументы. Обработчик использует существующую логику приложения, обновляет интерфейс и возвращает результат. Главное преимущество здесь — синхронность. Человек и агент работают с одним состоянием в одной вкладке: если агент применил фильтр, пользователь сразу видит отфильтрованный каталог.
Где технология находит применение
На момент написания материала WebMCP находится на стадии активного обсуждения и внедрения.
* Статус стандарта: Это предлагаемый веб-стандарт, а не устоявшаяся нормативная база. * Реализации: Origin Trial запущен для браузеров Chrome 149–156 и Edge 150. Экспериментальную поддержку добавляет Brave (в Leo AI). Mozilla рассматривает предложение нейтрально, тогда как WebKit выступает против текущей формы спецификации. Полноценной реализации в Firefox и Safari пока не существует. * Ограничения: Инструменты страницы обнаруживаются только после её загрузки. WebMCP не превращает весь интернет в глобальный каталог функций — агент видит инструменты только текущего документа.
Технические детали: как это устроено
API предоставляет два способа объявления инструментов: императивный и декларативный.
1. Императивный API: Используется JavaScript. Разработчик вызывает document.modelContext.registerTool(), передавая описание и функцию-обработчик. Это наиболее гибкий вариант для SPA (Single Page Applications), позволяющий управлять состоянием приложения и отображать модальные окна. Логика выполняется на стороне клиента в рамках текущей сессии. 2. Декларативный API: Основан на атрибутах HTML-форм (toolname, tooldescription). Браузер автоматически синтезирует JSON Schema из полей формы. Агент может заполнить форму, а финальное подтверждение остаётся за пользователем. Поддерживается автоматическая отправка через атрибут toolautosubmit.
Важно различать WebMCP и Model Context Protocol (MCP). Хотя названия созвучны, это не один стандарт. WebMCP вдохновлён MCP и использует знакомые концепции инструментов и схем, но работает внутри браузерной среды, не требуя запуска внешнего JSON-RPC сервера или stdio-соединения. WebMCP дополняет MCP, помогая агентам работать с живым, авторизованным интерфейсом, который уже открыл пользователь.
Грабли внедрения
Разработчики, создающие магазины с поддержкой WebMCP, сталкиваются с типичными проблемами:
* Избыточность инструментов: Ошибка новичка — объявить отдельным инструментом каждую кнопку (например, set_query, toggle_stock). Это превращает агента в наводчика пуль по пустой мишени. Инструмент должен описывать законченное намерение (например, search_products), а не манипуляцию DOM. * Синхронизация состояния: При работе с контролируемым состоянием (например, фильтры React) нужно учитывать, что человек меняет данные по одному полю, а агент — сразу весь набор аргументов. Критична правильная обработка обновлений интерфейса (flushSync), чтобы DOM успел отобразить изменения до того, как агент получит ответ о успешном вызове. * Безопасность и данные: Агент получает доступ к структурированным данным (например, ID товара и цена), но не должен иметь права на прямую модификацию финансовых транзакций без явного подтверждения человека. Инструменты, меняющие состояние (корзина), помечаются как нечитаемые (readOnlyHint: false).
Таким образом, WebMCP переводит взаимодействие между людьми и ИИ из плоскости имитации кликов в плоскость функциональных вызовов, делая интерфейсы более понятными для машин, не лишая при этом человека контроля над финальными решениями.
Медленный маяк: Как и в любом экспериментальном стандарте, перед тем, как включать WebMCP в продакшн, стоит помнить, что API активно меняется. То, что работает сегодня в Canary или через флаги, завтра может быть пересмотрено. Однако архитектура «инструмент вместо пикселя» уже становится логичным ответом на растущую сложность цифровых сред.