База знаний
Site tools и WebMCP: как открыть сайт для AI-агентов
Практическое руководство по Site tools и WebMCP: безопасные инструменты сайта, подтверждения, проверка результата и поэтапное внедрение.
СейчасЧто такое Site tools и WebMCP
- Что такое Site tools и WebMCP
- Чем WebMCP отличается от Model Context Protocol (MCP)
- Минимальное подключение инструмента только для чтения
- Контракт безопасного инструмента
- Чтение и запись нужно разделять
- Инструменты чтения
- Инструменты записи
- Этапы подтверждения и проверки
- Полезные сценарии для pimenov.ai
- Поиск опубликованных материалов
- Подготовка редакционного изменения
- Поэтапное внедрение
- Чеклист проверки результата
- Ограничения текущей реализации
- Официальные источники
- Связанные материалы
Site tools позволяют сайту объявить понятные действия, которые ИИ-агент может обнаружить на открытой странице и выполнить в той же авторизованной сессии. Это руководство помогает спроектировать такие действия для pimenov.ai: начать с безопасного чтения, проверить результат и только затем переходить к операциям записи.
Что такое Site tools и WebMCP
Site tools — реализация предлагаемого стандарта WebMCP в ChatGPT. В сценарии, который поддерживает встроенный браузер ChatGPT, веб-страница регистрирует инструменты JavaScript-кодом: каждый получает имя, описание, схему входных данных и обработчик. Совместимый агент обнаруживает доступные действия при посещении страницы.
Инструменты связаны со страницей, которая их предоставляет. После перехода на другой адрес или закрытия вкладки они могут стать недоступны. Если подходящего инструмента нет, агент по-прежнему может работать с обычным интерфейсом браузера, но такое действие уже не считается вызовом WebMCP.
Встроенный браузер ChatGPT поддерживает только часть WebMCP API. Инструменты, заданные декларативно через атрибуты HTML-форм, и инструменты внутри встроенного фрейма (iframe) сейчас не обнаруживаются как Site tools. Для совместимости инструмент регистрируют JavaScript-кодом на странице верхнего уровня.
Чем WebMCP отличается от Model Context Protocol (MCP)
| Критерий | Site tools / WebMCP | MCP-сервер |
| Где работает инструмент | На открытой веб-странице | На локальном или удалённом сервере |
| Когда обнаруживается | Во время посещения страницы | После подключения клиента к серверу |
| Контекст | Текущая страница, её состояние и авторизованная сессия | API, сервис или данные независимо от открытой страницы |
| Подходящая задача | Совместная работа человека и агента с одной страницей | Системная интеграция и управление объектами через API |
| Жизненный цикл | Инструмент может исчезнуть при навигации | Не зависит от вкладки браузера |
Один продукт может поддерживать оба подхода. Например, Site tools помогают исследовать открытый дашборд, а MCP-сервер предоставляет доступ к тем же данным независимо от страницы.
Минимальное подключение инструмента только для чтения
Начинайте с операции, которую приложение уже поддерживает. Обработчик WebMCP должен вызывать ту же прикладную логику, что и обычный интерфейс.
if (typeof document.modelContext?.registerTool === "function") {
await document.modelContext.registerTool({
name: "get_page_title",
description: "Read the title of the current page.",
inputSchema: {
type: "object",
properties: {},
additionalProperties: false,
},
annotations: { readOnlyHint: true },
execute: async () => ({ title: document.title }),
});
}Инструмент возвращает заголовок текущей страницы. Проверка наличия registerTool сохраняет обычную работу сайта в браузерах без поддержки WebMCP.
Аннотация readOnlyHint указывает клиенту, что инструмент только читает данные и не изменяет состояние. Для результатов с пользовательскими или внешними данными предусмотрена untrustedContentHint, а для значимых или необратимых действий — consequentialHint. Эти поля являются подсказками, а не гарантией безопасности. Реальную границу задают код обработчика, аутентификация, авторизация и проверка входных данных приложения.
Контракт безопасного инструмента
У каждого действия должен быть узкий и проверяемый контракт.
| Часть контракта | Требование | Пример проверки |
| Имя и описание | Однозначно объясняют результат и побочный эффект | Понятно, читает инструмент данные или изменяет их |
| Входные данные | Содержат только необходимые поля и ограничения; приложение валидирует входные данные | Неизвестные или недопустимые поля отклоняются |
| Авторизация | Приложение повторно проверяет текущего пользователя и объект | Пользователь без нужной роли получает отказ |
| Выполнение | Использует существующую прикладную логику | WebMCP и обычная кнопка вызывают один прикладной метод |
| Ответ | Содержит данные для независимой проверки | Возвращает идентификатор, состояние и время изменения |
| Повтор | Не создаёт неожиданный дубль | Используется ключ идемпотентности или проверка состояния |
| Журнал | Фиксирует инициатора, инструмент, объект и результат | Оператор может восстановить цепочку действий |
Чтение и запись нужно разделять
Инструменты чтения
Инструмент чтения получает данные без изменения состояния. Для pimenov.ai первый набор может включать:
- поиск опубликованного материала по теме;
- чтение метаданных текущей страницы;
- получение списка связанных материалов;
- чтение данных графика или выбранного фильтра в операторском интерфейсе.
Даже для чтения применяйте минимальные права. Инструмент не должен возвращать закрытые черновики, служебные поля или данные другого пользователя только потому, что агент запросил их.
Инструменты записи
Запись добавляйте отдельным этапом. До вызова должны быть известны объект, изменяемые поля и ожидаемое последствие. Для чувствительного действия требуется подтверждение, привязанное к конкретной операции.
После выполнения повторно прочитайте страницу или объект и сравните фактическое состояние с ожидаемым. Ссылка на асинхронную задачу не доказывает её завершение: дождитесь конечного статуса.
Этапы подтверждения и проверки
- Обнаружение: агент видит инструмент на ожидаемой странице.
- Проверка входа: схема описывает допустимые поля и ограничения, а приложение дополнительно проверяет входные данные.
- Проверка прав: приложение повторно проверяет пользователя и объект до выполнения операции.
- Подтверждение намерения: интерфейс показывает точное действие и последствия.
- Выполнение: обработчик вызывает существующую бизнес-логику.
- Повторное чтение: агент заново получает изменённый объект.
- Приёмка: фактическое состояние совпадает с ожидаемым.
- Аудит: журнал содержит вызов, результат и идентификатор операции.
- Возврат: для обратимого изменения известен точечный способ отката.
Встроенный браузер ChatGPT проверяет каждый вызов перед выполнением. Обычные правила доступа и подтверждения продолжают действовать, в том числе при отправке сообщений, покупках, удалении данных и изменении разрешений. Эти меры снижают риск, но не заменяют защиту приложения. Инструкции сайта или инструмента сами по себе не дают агенту разрешения раскрывать посторонние данные или выполнять чувствительные действия.
Полезные сценарии для pimenov.ai
Поиск опубликованных материалов
Задача: найти подходящий материал для ответа читателю.
Входные данные: тема, тип материала и необязательный лимит результатов.
Действие: инструмент чтения обращается к публичному индексу приложения и возвращает только опубликованные страницы.
Наблюдаемый результат: список содержит название, публичный URL и краткое описание; адреса открываются на сайте.
Ограничение: инструмент не раскрывает идентификаторы Notion, внутренние комментарии и неопубликованные черновики.
Подготовка редакционного изменения
Задача: предложить изменение метаданных без разрешения на публикацию.
Входные данные: точный идентификатор черновика, разрешённые поля и новые значения.
Действие: инструмент чтения сначала показывает текущее состояние. Инструмент записи запускается после подтверждения конкретного списка изменений.
Наблюдаемый результат: повторное чтение подтверждает новые значения, а статус материала остаётся «Черновик».
Ограничение: публикация, синхронизация и развёртывание остаются отдельными инструментами с отдельными подтверждениями.
Поэтапное внедрение
- Выберите одну существующую операцию только для чтения с понятным результатом.
- Опишите имя, входную схему, разрешения, ответ и ошибки.
- Зарегистрируйте инструмент на странице верхнего уровня с проверкой поддержки API.
- Проверьте обычный интерфейс в браузере без WebMCP.
- Откройте страницу во встроенном браузере ChatGPT и изучите список доступных Site tools.
- Вызовите инструмент с корректными и ошибочными данными.
- Сверьте ответ с независимо прочитанным состоянием страницы или API.
- Добавьте журнал вызовов и мониторинг ошибок.
- Повторяйте проверку после изменения интерфейса, обработчика или схемы.
- После стабилизации чтения спроектируйте один инструмент записи с точным подтверждением и откатом.
Чеклист проверки результата
- Инструмент появляется только там, где ожидается.
- Имя и описание однозначно сообщают действие.
inputSchemaописывает необходимые поля и допустимые значения; приложение дополнительно проверяет входные данные.- Аннотации соответствуют реальному поведению инструмента.
- Приложение применяет существующие аутентификацию и авторизацию.
- Инструмент чтения не возвращает закрытые данные.
- Инструмент записи требует подтверждения конкретного последствия.
- Повторный вызов не создаёт дубль.
- Ошибка возвращается структурированно и не раскрывает секреты.
- Ответ содержит идентификатор и состояние для повторного чтения.
- После записи состояние проверяется независимо от ответа инструмента.
- Действие присутствует в журнале.
- Обычный интерфейс работает без WebMCP.
- Инструмент повторно проверен после изменения страницы или схемы.
Ограничения текущей реализации
- WebMCP сейчас представлен как черновой отчёт Web Machine Learning Community Group; это не стандарт W3C и не документ на W3C Standards Track.
- Встроенный браузер ChatGPT поддерживает подмножество WebMCP API.
- Декларативные инструменты HTML-форм и инструменты внутри iframe сейчас не обнаруживаются как Site tools.
- На дату проверки Site tools доступны во встроенном браузере настольного приложения ChatGPT для ChatGPT Work и Codex, но не в обычном Chrome. Для Site tools документация указывает GPT-5.6 Sol и GPT-5.6 Terra; у GPT-5.6 Luna WebMCP отключён. Функция недоступна в рабочих пространствах Enterprise и Edu.
- Доступность также зависит от версии приложения, развёртывания функции, аккаунта и инструментов текущей страницы.
- Site tools используют состояние и авторизованную сессию встроенного браузера. Эта сессия может отличаться от сессии в Chrome.
- Аннотации, проверка безопасности и название инструмента не делают сайт или его результаты доверенными.
- Инструкции сайта или инструмента не дают агенту разрешения раскрывать посторонние данные или выполнять чувствительные действия.
- Асинхронный ответ со ссылкой не подтверждает завершение операции.
Официальные источники
- Site tools и WebMCP в ChatGPT — https://learn.chatgpt.com/docs/webmcp
- Использование Site tools в настольном приложении — https://help.openai.com/en/articles/20001423-using-site-tools-in-the-chatgpt-desktop-app
- Проект спецификации WebMCP — https://webmachinelearning.github.io/webmcp/
- Императивный API WebMCP — https://developer.chrome.com/docs/ai/webmcp/imperative-api
- Безопасность инструментов WebMCP — https://developer.chrome.com/docs/ai/webmcp/secure-tools
Связанные материалы
- Статья: «Кто отвечает за результат, если работу сделали ИИ-агенты?»
- Блог: «WebMCP в ChatGPT: сайт становится инструментом для агента»
- База знаний: «Notion Developer Platform — API, MCP и кастомные агенты»
Если вы проектируете инструменты сайта для агентов, отдельно проверьте границы чтения, записи и подтверждения до подключения реальных данных.
Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov
Если хотите разобрать свою задачу — напишите мне Если хотите разобрать свою задачу — напишите мне.
Можно прийти с идеей, черновым контекстом или уже живой задачей. Помогу быстро понять, где реальный следующий шаг, а где лишний шум.
Обычно хватает 2–3 сообщений, чтобы понять, могу ли я здесь реально помочь и в каком формате лучше двигаться дальше.
Дальше по теме
Рынок AI-агентов стремительно меняется: похоже, openclaw скоро получит конкурента, который закроет главный пробел — запуск автоматизаций на уровне n8n.