pimenov.ai

База знаний

Site tools и WebMCP: как открыть сайт для AI-агентов

Практическое руководство по Site tools и WebMCP: безопасные инструменты сайта, подтверждения, проверка результата и поэтапное внедрение.

Опубликовано Обновлено

Site tools позволяют сайту объявить понятные действия, которые ИИ-агент может обнаружить на открытой странице и выполнить в той же авторизованной сессии. Это руководство помогает спроектировать такие действия для pimenov.ai: начать с безопасного чтения, проверить результат и только затем переходить к операциям записи.

📌
Материал основан на официальной документации и проверен 8 сентября 2026 года. Описанный контур не развёртывался на pimenov.ai в рамках подготовки текста. WebMCP остаётся предлагаемым стандартом, а доступность Site tools зависит от клиента, модели, рабочего пространства, текущего развёртывания функции и инструментов конкретной страницы.

Что такое 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 / WebMCPMCP-сервер
Где работает инструментНа открытой веб-страницеНа локальном или удалённом сервере
Когда обнаруживаетсяВо время посещения страницыПосле подключения клиента к серверу
КонтекстТекущая страница, её состояние и авторизованная сессия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 первый набор может включать:

  • поиск опубликованного материала по теме;
  • чтение метаданных текущей страницы;
  • получение списка связанных материалов;
  • чтение данных графика или выбранного фильтра в операторском интерфейсе.

Даже для чтения применяйте минимальные права. Инструмент не должен возвращать закрытые черновики, служебные поля или данные другого пользователя только потому, что агент запросил их.

Инструменты записи

Запись добавляйте отдельным этапом. До вызова должны быть известны объект, изменяемые поля и ожидаемое последствие. Для чувствительного действия требуется подтверждение, привязанное к конкретной операции.

⚠️
Разрешение на любые изменения сайта задаёт слишком широкую границу. Безопасное подтверждение называет действие, объект, изменяемые поля и способ проверки результата.

После выполнения повторно прочитайте страницу или объект и сравните фактическое состояние с ожидаемым. Ссылка на асинхронную задачу не доказывает её завершение: дождитесь конечного статуса.

Этапы подтверждения и проверки

Путь безопасного Site tool: от регистрации на странице до повторного чтения и аудита.
Путь безопасного Site tool: от регистрации на странице до повторного чтения и аудита.
  1. Обнаружение: агент видит инструмент на ожидаемой странице.
  2. Проверка входа: схема описывает допустимые поля и ограничения, а приложение дополнительно проверяет входные данные.
  3. Проверка прав: приложение повторно проверяет пользователя и объект до выполнения операции.
  4. Подтверждение намерения: интерфейс показывает точное действие и последствия.
  5. Выполнение: обработчик вызывает существующую бизнес-логику.
  6. Повторное чтение: агент заново получает изменённый объект.
  7. Приёмка: фактическое состояние совпадает с ожидаемым.
  8. Аудит: журнал содержит вызов, результат и идентификатор операции.
  9. Возврат: для обратимого изменения известен точечный способ отката.

Встроенный браузер ChatGPT проверяет каждый вызов перед выполнением. Обычные правила доступа и подтверждения продолжают действовать, в том числе при отправке сообщений, покупках, удалении данных и изменении разрешений. Эти меры снижают риск, но не заменяют защиту приложения. Инструкции сайта или инструмента сами по себе не дают агенту разрешения раскрывать посторонние данные или выполнять чувствительные действия.

Полезные сценарии для pimenov.ai

Поиск опубликованных материалов

Задача: найти подходящий материал для ответа читателю.

Входные данные: тема, тип материала и необязательный лимит результатов.

Действие: инструмент чтения обращается к публичному индексу приложения и возвращает только опубликованные страницы.

Наблюдаемый результат: список содержит название, публичный URL и краткое описание; адреса открываются на сайте.

Ограничение: инструмент не раскрывает идентификаторы Notion, внутренние комментарии и неопубликованные черновики.

Подготовка редакционного изменения

Задача: предложить изменение метаданных без разрешения на публикацию.

Входные данные: точный идентификатор черновика, разрешённые поля и новые значения.

Действие: инструмент чтения сначала показывает текущее состояние. Инструмент записи запускается после подтверждения конкретного списка изменений.

Наблюдаемый результат: повторное чтение подтверждает новые значения, а статус материала остаётся «Черновик».

Ограничение: публикация, синхронизация и развёртывание остаются отдельными инструментами с отдельными подтверждениями.

Поэтапное внедрение

  1. Выберите одну существующую операцию только для чтения с понятным результатом.
  2. Опишите имя, входную схему, разрешения, ответ и ошибки.
  3. Зарегистрируйте инструмент на странице верхнего уровня с проверкой поддержки API.
  4. Проверьте обычный интерфейс в браузере без WebMCP.
  5. Откройте страницу во встроенном браузере ChatGPT и изучите список доступных Site tools.
  6. Вызовите инструмент с корректными и ошибочными данными.
  7. Сверьте ответ с независимо прочитанным состоянием страницы или API.
  8. Добавьте журнал вызовов и мониторинг ошибок.
  9. Повторяйте проверку после изменения интерфейса, обработчика или схемы.
  10. После стабилизации чтения спроектируйте один инструмент записи с точным подтверждением и откатом.

Чеклист проверки результата

  • Инструмент появляется только там, где ожидается.
  • Имя и описание однозначно сообщают действие.
  • 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.
  • Аннотации, проверка безопасности и название инструмента не делают сайт или его результаты доверенными.
  • Инструкции сайта или инструмента не дают агенту разрешения раскрывать посторонние данные или выполнять чувствительные действия.
  • Асинхронный ответ со ссылкой не подтверждает завершение операции.

Официальные источники


Связанные материалы

Если вы проектируете инструменты сайта для агентов, отдельно проверьте границы чтения, записи и подтверждения до подключения реальных данных.

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov