API / Auth / MCP
WebMCP
Браузерный JavaScript API (document.modelContext): страница регистрирует инструменты, которые AI-агент вызывает напрямую, а не кликами по интерфейсу.
Что такое WebMCP?
WebMCP — браузерный JavaScript API из черновика W3C Web Machine Learning Community Group (авторы из Microsoft и Google). Страница регистрирует «инструменты» (tools) через document.modelContext.registerTool(), и AI-агент браузера вызывает их напрямую — вместо того чтобы искать кнопки и кликать по DOM.
AI-агент браузера → document.modelContext → execute() на странице
↑
код сайта в сессии пользователя
С MCP у WebMCP общий словарь (tools, JSON Schema входа), но это не MCP-протокол поверх сети: нет серверного endpoint, транспорта и URL для подключения. Удалённый MCP-сервер (Streamable HTTP / SSE по адресу вроде /mcp) — отдельный механизм.
Зачем нужен WebMCP?
Агент, который управляет сайтом через скриншоты и клики, медленный и ломается при любом изменении вёрстки. WebMCP даёт ему явный список действий с параметрами.
Ключевые преимущества:
- Надёжность — вызов функции вместо угадывания элементов интерфейса.
- Без отдельного бэкенда — инструмент выполняется на странице и переиспользует клиентский код и авторизацию пользователя.
- Прозрачность — результат действия виден пользователю в открытом интерфейсе.
Статус на октябрь 2026: origin trial в Chrome 149 и Edge 150, поддержка в ChatGPT Desktop, экспериментально в Brave; у Firefox и Safari позиции пока нет.
Как реализовать WebMCP?
Зарегистрируйте инструмент из скрипта страницы:
const controller = new AbortController();
await document.modelContext.registerTool({
name: 'search-products',
description: 'Ищет товары в каталоге по запросу',
inputSchema: {
type: 'object',
properties: { query: { type: 'string', description: 'Поисковый запрос' } },
required: ['query'],
},
async execute({ query }) {
const items = await searchProducts(query); // ваша существующая функция
return { content: [{ type: 'text', text: JSON.stringify(items) }] };
},
}, { signal: controller.signal });
// controller.abort() — снять инструмент
API доступен только по HTTPS (secure context). Агенты внутри страницы или iframe получают список через document.modelContext.getTools() и вызывают executeTool(); при изменении набора срабатывает событие toolchange. Для cross-origin iframe нужны allow="tools" и опция exposedTo.
Практики из README WebMCP: мало инструментов, у каждого одна задача; валидация ввода, прав и предусловий внутри execute; UI синхронизирован с действиями агента. Декларативный вариант через <form> удалён из спецификации 8 октября 2026.
Как мы проверяем WebMCP?
Проверка webmcp информационная: не влияет на итоговый счёт (weight = 0) и пока не выполняется — инструменты регистрируются из JavaScript, а сканер не исполняет скрипты страницы. Подробнее и как проверить вручную — в гайде по WebMCP.