База знаний
Site tools и WebMCP: как открыть сайт для AI-агентов
Практическое руководство по Site tools и WebMCP: безопасные инструменты сайта, подтверждения, проверка результата и поэтапное внедрение.
СейчасЧто такое Site tools и WebMCP
- Что такое Site tools и WebMCP
- Чем WebMCP отличается от обычного MCP
- Минимальный инструмент только для чтения
- Контракт безопасного инструмента
- Чтение и запись нужно разделять
- Инструменты чтения
- Инструменты записи
- Этапы подтверждения и проверки
- Полезные сценарии для pimenov.ai
- Поиск опубликованных материалов
- Подготовка редакционного изменения
- Поэтапное внедрение
- Чеклист проверки результата
- Ограничения текущей реализации
- Официальные источники
- Следующий шаг
- Связанные материалы
Site tools позволяют сайту объявить понятные действия, которые AI-агент может обнаружить на открытой странице и выполнить в той же пользовательской сессии. Руководство помогает спроектировать такие действия для pimenov.ai, начать с безопасного чтения и добавить запись только после отдельных проверок.
Что такое Site tools и WebMCP
Site tools — реализация предложенного стандарта WebMCP в ChatGPT. Страница регистрирует набор инструментов: каждый получает имя, описание, схему входных данных и обработчик. Совместимый агент может обнаружить эти инструменты, когда посещает страницу.
Инструменты принадлежат странице. После перехода на другой адрес или закрытия вкладки они могут стать недоступны. Если подходящего инструмента нет, агент по-прежнему может работать с обычным интерфейсом браузера, но это уже не вызов WebMCP.
Текущая реализация встроенного браузера ChatGPT поддерживает только часть WebMCP API. Инструменты, определённые декларативным API через атрибуты HTML-форм, и инструменты внутри iframe не обнаруживаются. Для совместимости инструмент регистрируют JavaScript-кодом на странице верхнего уровня.
Чем WebMCP отличается от обычного MCP
| Критерий | Site tools / WebMCP | MCP-сервер |
| Где живёт инструмент | На открытой веб-странице | На локальном или удалённом сервере |
| Когда обнаруживается | Во время посещения страницы | После отдельного подключения MCP |
| Контекст | Текущая страница и её авторизованная сессия | API, сервис или данные независимо от открытой страницы |
| Подходящая задача | Совместная работа человека и агента с одной страницей | Системная интеграция, поиск и управление объектами через API |
| Жизненный цикл | Может исчезнуть при навигации | Не зависит от вкладки браузера |
Один продукт может поддерживать оба подхода. Например, Site tools помогают работать с текущим дашбордом, а MCP-сервер предоставляет фоновый доступ к тем же данным через API.
Минимальный инструмент только для чтения
Начинайте с операции, которую приложение уже умеет выполнять. Не создавайте параллельную бизнес-логику специально для агента.
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 и описание не являются доказательством безопасности. Определения и результаты инструментов считаются недоверенным содержимым. Реальную границу задают существующие аутентификация, авторизация, валидация входа и код обработчика.
Контракт безопасного инструмента
У каждого действия должен быть узкий и проверяемый контракт.
| Часть контракта | Требование | Пример проверки |
| Имя и описание | Объясняют результат и побочный эффект | Из описания понятно, читает инструмент или изменяет данные |
| Входные данные | Только необходимые поля, ограничения заданы в схеме | Неизвестные поля отклоняются |
| Авторизация | Сервер повторно проверяет текущего пользователя и объект | Пользователь без роли редактора получает отказ |
| Выполнение | Вызывает существующую прикладную логику | WebMCP и обычная кнопка используют один прикладной метод |
| Ответ | Содержит данные для независимой проверки | Возвращает ID, новое состояние и время изменения |
| Повтор | Не создаёт неожиданный дубль | Используется idempotency key или проверка текущего состояния |
| Журнал | Сохраняет инициатора, инструмент, объект и результат | Оператор может восстановить цепочку действий |
Чтение и запись нужно разделять
Инструменты чтения
Инструмент чтения получает данные, но не меняет состояние. Для pimenov.ai разумный первый набор может включать:
- поиск опубликованного материала по теме;
- чтение metadata текущей страницы;
- получение списка связанных материалов;
- чтение данных графика или фильтра в операторском интерфейсе.
Даже для чтения применяйте минимальные права. Инструмент не должен возвращать закрытые черновики, служебные поля или данные другого пользователя только потому, что агент запросил их.
Инструменты записи
Запись добавляйте отдельным этапом. До вызова должны быть известны объект, точные границы и ожидаемое последствие. Для чувствительного действия требуется человеческое подтверждение, привязанное к конкретной операции.
После выполнения агент не должен ограничиваться ответом инструмента. Он повторно читает страницу или объект и сверяет наблюдаемое состояние с ожидаемым. Ссылка на асинхронную задачу тоже не доказывает завершение: нужно дождаться её конечного статуса.
Этапы подтверждения и проверки
Разделите каждый сценарий записи на последовательные проверочные этапы.
- Обнаружение: агент видит инструмент только на нужной странице.
- Проверка входа: схема отклоняет лишние и некорректные поля.
- Проверка прав: приложение проверяет пользователя и объект на сервере.
- Подтверждение намерения: интерфейс показывает точное действие и его последствия.
- Выполнение: обработчик вызывает существующую бизнес-логику.
- Повторное чтение: агент заново читает изменённый объект.
- Приёмка: ожидаемое состояние совпадает с фактическим.
- Аудит: журнал содержит вызов, результат и идентификатор операции.
- Возврат: для обратимого изменения известен точечный способ отката.
Встроенный браузер ChatGPT выполняет safety review каждого вызова и сохраняет обычные политики доступа и подтверждения для действий с последствиями. Эти проверки снижают риск, но не заменяют серверную авторизацию и контроль владельца сайта.
Полезные сценарии для pimenov.ai
Поиск опубликованных материалов
Задача: агенту нужно найти подходящий материал для ответа читателю.
Вход: тема, тип материала и необязательный лимит результатов.
Действие: инструмент чтения обращается к существующему публичному индексу и возвращает только опубликованные страницы.
Наблюдаемый результат: список содержит title, публичный URL и краткое описание; каждый URL открывается на сайте.
Ограничение: инструмент не должен раскрывать Notion ID, внутренние комментарии и неопубликованные черновики.
Подготовка редакционного изменения
Задача: оператор хочет предложить изменение metadata, не разрешая агенту публиковать материал.
Вход: точный ID черновика, список разрешённых полей и новые значения.
Действие: сначала инструмент чтения показывает текущее состояние. Инструмент записи запускается только после подтверждения конкретного списка изменений.
Наблюдаемый результат: повторное чтение подтверждает изменённые поля, а статус остаётся Черновик.
Ограничение: публикация, синхронизация и развёртывание должны оставаться отдельными инструментами и отдельными этапами подтверждения.
Поэтапное внедрение
- Выберите одну существующую операцию только для чтения с понятным результатом.
- Опишите имя, входную схему, разрешения, ответ и ошибки.
- Зарегистрируйте инструмент на top-level page с проверкой поддержки API.
- Проверьте обычный интерфейс в браузере без WebMCP.
- Откройте страницу во встроенном браузере ChatGPT и проверьте список Site tools.
- Вызовите инструмент с корректными и ошибочными данными.
- Сверьте ответ инструмента с состоянием страницы или API.
- Добавьте журнал вызовов и мониторинг ошибок.
- Повторите проверку после изменения интерфейса или схемы.
- Только после стабильного контура чтения спроектируйте один инструмент записи с точным подтверждением и откатом.
Чеклист проверки результата
- Инструмент появляется только на ожидаемой странице.
- Имя и описание однозначно сообщают действие.
- inputSchema запрещает лишние поля и проверяет допустимые значения.
- Сервер применяет существующие аутентификацию и авторизацию.
- Инструмент чтения не возвращает закрытые данные.
- Инструмент записи требует подтверждения конкретного последствия.
- Повторный вызов не создаёт дубль.
- Ошибка возвращается структурированно и не раскрывает секреты.
- Ответ содержит идентификатор и состояние для повторного чтения.
- После записи состояние повторно прочитано независимо.
- Действие присутствует в журнале.
- Обычный интерфейс работает без WebMCP.
- Инструмент повторно проверен после изменения страницы.
Ограничения текущей реализации
- WebMCP остаётся предлагаемым стандартом.
- Встроенный браузер ChatGPT поддерживает подмножество API.
- Декларативные form tools и инструменты внутри iframe сейчас не обнаруживаются.
- На дату проверки Site tools доступны во встроенном браузере desktop-приложения ChatGPT для ChatGPT Work и Codex. OpenAI указывает GPT-5.6 Sol и Terra; у Luna WebMCP отключён. В Enterprise и Edu workspaces Site tools недоступны. Текущее развёртывание функции и набор инструментов конкретной страницы тоже влияют на доступность.
- Site tools работают в контексте страницы и не заменяют фоновую интеграцию через MCP.
- Safety review и readOnlyHint не делают сайт доверенным автоматически.
- Асинхронный ответ со ссылкой не подтверждает завершение операции.
Официальные источники
- Site tools и WebMCP — https://learn.chatgpt.com/docs/webmcp
- Создание Skills — https://learn.chatgpt.com/docs/build-skills
- Как Skills используются в OpenAI Agents SDK — https://developers.openai.com/blog/skills-agents-sdk
Skills полезны как инженерная оболочка для повторяемого процесса внедрения: они фиксируют границы, проверки и формат результата. Они не являются механизмом, через который сайт предоставляет инструменты агенту.
Следующий шаг
Сайт теперь можно читать с ИИ: маленькая кнопка под каждым материалом — https://pimenov.ai/articles/sait-teper-mozhno-chitat-s-ii
Связанные материалы
- Статья: «Кто отвечает за результат, если работу сделали ИИ-агенты?» — https://pimenov.ai/articles/kto-otvechaet-za-rezultat-ii-agentov
- Блог: «WebMCP в ChatGPT: сайт становится инструментом для агента» — https://pimenov.ai/blog/webmcp-v-chatgpt-sait-stanovitsya-instrumentom
- База знаний: «Notion Developer Platform — API, MCP и кастомные агенты» — https://pimenov.ai/knowledge/notion-developer-platform
Если вы проектируете инструменты сайта для агентов, полезно отдельно проверить границы чтения, записи и подтверждения до подключения реальных данных.
Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov
Если хотите разобрать свою задачу — напишите мне Если хотите разобрать свою задачу — напишите мне.
Можно прийти с идеей, черновым контекстом или уже живой задачей. Помогу быстро понять, где реальный следующий шаг, а где лишний шум.
Обычно хватает 2–3 сообщений, чтобы понять, могу ли я здесь реально помочь и в каком формате лучше двигаться дальше.
Дальше по теме
Практическое руководство по Cloudflare Agents: трассировка, session replay, approvals, Workflows и границы с Agents SDK и AI Gateway.