MCP для сайта: как ИИ помогает находить ошибки, подбирать товары и работать с бизнес-данными

\n

Практика · MCP · AI-агенты · Discovery · безопасность

Обычная веб-страница рассчитана на человека, а API — на заранее написанную интеграцию. MCP добавляет третий способ работы с сайтом: AI-клиент может узнать, какие данные и действия доступны, вызвать подходящий инструмент и получить структурированный результат с канонической ссылкой на источник.

Подключение публичного MCP-сервера сайта ifreework.com и список доступных инструментов
MCP-сервер сайта публикует инструменты чтения, поиска и контакта через единый Streamable HTTP endpoint.

Коротко: MCP не заменяет HTML, SEO, sitemap, Schema.org или llms.txt. Он дополняет их управляемым интерфейсом, через который AI-агент получает данные и выполняет только явно разрешённые действия.

Зачем сайту MCP

Поисковый робот обычно обходит страницы и строит собственный индекс. AI-клиент, подключённый по MCP, работает иначе: сначала запрашивает список возможностей, затем выбирает нужный инструмент или ресурс. Например, вместо попытки извлечь услуги из меню и HTML он вызывает list_services, а для конкретной страницы — get_service.

Точные данные вместо разбора вёрстки

Сервер возвращает название, описание, Markdown и канонический URL из опубликованного источника. Изменение CSS или шаблона страницы не ломает контракт.

Поиск в контексте сайта

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

Контролируемые действия

Сайт сам определяет допустимые операции, схему аргументов, лимиты и условия подтверждения. Всё остальное остаётся недоступным.

Единый интерфейс для клиентов

Один сервер можно подключить к совместимым desktop-клиентам, IDE и агентным системам без отдельного API под каждую модель.

Практические задачи: кому и чем помогает MCP

MCP — не самостоятельный ИИ и не замена API. Это стандартный способ дать AI-клиенту разрешённые инструменты и данные. Польза появляется там, где сервер предоставляет качественные данные, а клиент умеет последовательно вызвать несколько узких операций.

Аудитор сайта

Запрос «найди товары без описаний, пустые характеристики, дубли и некорректные ссылки» превращается в повторяемую проверку структурированных сущностей с конкретным списком URL. MCP сам по себе не выполняет полноценный SEO-аудит: нужны соответствующие инструменты и правила проверки.

Менеджер по продажам

Можно попросить найти три ноутбука до 1 200 €, с 32 ГБ RAM, доступные на складе и подходящие для графики, затем сравнить их и объяснить выбор. AI объединяет цену, характеристики, наличие и ограничения клиента.

Покупатель

Запрос «подарок ребёнку восьми лет до 50 €, который можно получить за три дня» выполняется по реальному каталогу, а не по предположениям модели. Результат можно уточнить диалогом.

Закупщик

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

Поддержка

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

Контент и SEO

Повторяемые проверки находят пустые описания, незаполненные характеристики, повторяющиеся заголовки, слабые категории и карточки, требующие обновления.

Руководитель

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

Разработчик

Безопасные диагностические операции показывают состояние интеграций, очередей и агрегированные ошибки API — без выдачи паролей, ключей и прямого доступа к production.

Обычный поиск и MCP решают разные задачи

КритерийОбычный поискMCP + AI-клиент
Ключевые словаОсновной сценарийМожет использовать как один из сигналов
Естественный языкОбычно ограничен строкой запросаПоддерживает задачу и уточнения диалогом
Сложные комбинацииТолько заранее созданные фильтрыКомбинирует разрешённые инструменты и параметры
Структурированные данныеЧасто работает по индексу страницПолучает актуальный ответ из API или CMS
Наличие и доставкаЕсли предусмотрены фильтрыПроверяет через отдельные операции
АльтернативыПохожие результатыСопоставляет ограничения и объясняет замену
Объяснение результатаСписок ссылокСписок плюс аргументация и источники
Аудит данныхНе основной сценарийВозможен при наличии проверочных инструментов
Внутренние системыКак правило, недоступныCRM и аналитика доступны строго по правам

Обычный поиск остаётся удобным для навигации. MCP особенно полезен в задачах из нескольких действий и условий, но точность зависит от данных, контрактов, разрешений и выбранного AI-клиента.

Архитектура без прямого доступа к базе

Пользователь → AI-клиент → MCP-сервер → разрешённые инструменты/API → данные сайта

AI-клиент видит только схемы разрешённых инструментов и их ответы. Он не получает логин к базе, произвольный SQL или неограниченный доступ к внутренним сервисам. Публичный MCP для посетителей и внутренний MCP сотрудников должны быть разными контурами доступа.

Два реальных сценария ifreework.com

1. Найти материалы по теме

Вопрос: «Какие материалы есть про локальные LLM и RAG?» AI-клиент вызывает search_content с языком и разделами, получает заголовки, выдержки и канонические URL, а затем при необходимости читает выбранную статью через get_blog_post. В отличие от обычного поиска он работает с определёнными разделами и может продолжить диалог по полученным объектам.

2. Подготовить обращение владельцу

Вопрос: «Отправь запрос на разработку MCP-сервера». Сначала get_contact возвращает доступные способы связи, затем AI показывает пользователю точный текст и reply-to. Только после явного подтверждения вызывается send_message. Итог — валидированное обращение через тот же серверный механизм, что использует форма сайта; обычный поиск выполнить такое действие не может.

Подбор товаров, статусы заказов и бизнес-аналитика выше — потенциальные сценарии для сайтов, где реализованы соответствующие защищённые инструменты. На публичном MCP ifreework.com этих функций нет.

Из каких слоёв состоит правильная реализация

  1. Источник опубликованных данных

    Отдельный read-only слой читает только публичные материалы CMS: страницы, услуги, портфолио и статьи. Черновики, служебные поля, пароли, сессии и административные данные не должны попадать в MCP даже случайно.

  2. MCP endpoint

    Для удалённого сайта подходит Streamable HTTP, например https://example.com/mcp. Endpoint принимает JSON-RPC, обрабатывает initialize, tools/list, tools/call, resources/list и resources/read.

  3. Инструменты с узкими контрактами

    У каждого инструмента есть понятное имя, описание и JSON Schema. Лучше несколько предметных операций — list_blog_posts, get_blog_post, search_content — чем универсальный SQL-запрос или произвольный URL.

  4. Ресурсы

    Опубликованные страницы можно представить как MCP resources с URI, MIME-типом и текстовым содержимым. Инструменты удобны для запросов с параметрами, ресурсы — для чтения конкретного известного документа.

  5. Discovery и описание подключения

    Server card описывает имя, версию и удалённый endpoint. AI Catalog или ARD связывает его с сайтом, а HTTP-заголовок Link указывает на каталог. Это помогает обнаружению, но не заставляет все AI-клиенты подключаться автоматически.

  6. Публичный Registry

    Для официального MCP Registry готовится server.json, владение доменом подтверждается через DNS или файл /.well-known/mcp-registry-auth, после чего метаданные публикуются через mcp-publisher.

Какие discovery-файлы стоит опубликовать

Публичный контур MCP-сервера сайта
АдресНазначение
/mcpStreamable HTTP endpoint для JSON-RPC запросов.
/.well-known/mcp-server-cardИмя, версия, описание и адрес подключения.
/.well-known/ai-catalog.jsonКаталог AI-интерфейсов и связанных ресурсов сайта.
/.well-known/ard.jsonКомпактный документ Agent Resource Discovery.
/.well-known/mcp-registry-authПубличное подтверждение домена для Registry при HTTP-аутентификации.
/mcp-info.htmlПонятная человеку документация и инструкция подключения.

Ссылку на каталог полезно добавлять в заголовок ответа:

Link: <https://example.com/.well-known/ard.json>; rel="ard"

Комментарий в robots.txt тоже удобен для ручной проверки, но сам по себе не является механизмом подключения.

Как проектировать инструменты

Название инструмента должно объяснять результат без чтения реализации. Схема входа обязана быть строгой: тип объекта, допустимые поля, длины строк, диапазоны чисел и additionalProperties: false. Пустой properties в JSON должен быть объектом {}, а не массивом []: строгий SDK отклонит весь ответ tools/list, если хотя бы одна схема некорректна.

Ответу полезно включать:

  • Канонический URLЧтобы AI мог сослаться на исходную страницу.
  • ЯзыкЧтобы русская и английская версии не смешивались.
  • Стабильный идентификаторДля повторного чтения выбранного материала.
  • Границы выборкиПагинацию, максимальный limit и разрешённые разделы.
  • Явные аннотацииreadOnlyHint, идемпотентность и наличие внешнего эффекта.
  • Ошибки без внутренних деталейКлиенту нужен понятный код, но не SQL, stack trace или секрет конфигурации.

Read-only по умолчанию, подтверждение для действий

Для контентного сайта безопасная отправная точка — только чтение. Нельзя публиковать универсальное редактирование CMS, выполнение команд, произвольные запросы к базе или доступ к неопубликованным документам.

Если MCP всё же выполняет действие, оно должно быть отделено от чтения. На ifreework.com таким исключением является send_message: инструмент отправляет сообщение владельцу сайта, требует точный текст, обратный e-mail и confirmed_by_user=true. В описании сервера он явно обозначен как side-effecting, а не маскируется общей формулировкой «read-only».

Одного флага подтверждения недостаточно для защиты публичного endpoint. Нужны также:

  • минимальные привилегии и read-only везде, где запись не нужна;
  • авторизация для непубличных данных и разграничение ролей;
  • подтверждение каждой операции, изменяющей данные;
  • rate limit по клиенту и операции;
  • ограничение размера JSON и длины каждого поля;
  • валидация e-mail, URL и перечислений;
  • идемпотентный request_id для безопасного повтора;
  • защита от дублей и журналирование результата;
  • таймауты и безопасные сообщения об ошибках;
  • отсутствие секретов в результатах, логах и описаниях инструментов.

Что MCP не решает

MCP не гарантирует, что ChatGPT, Claude, поисковая система или любой другой клиент самостоятельно найдёт сервер и начнёт им пользоваться. Пользователь или владелец платформы по-прежнему должен добавить адрес подключения либо выбрать сервер из каталога.

Он также не заменяет качество самого сайта. HTML остаётся источником для людей и поисковых роботов, sitemap помогает обходу, Schema.org описывает сущности, llms.txt даёт компактную навигацию, а MCP предоставляет исполняемый контракт. Эти уровни работают вместе.

Чек-лист перед публикацией

  • Протоколinitialize, список и вызов инструментов проходят реальным SDK.
  • СхемыКаждый inputSchema валиден, включая инструменты без аргументов.
  • ДанныеВозвращаются только опубликованные материалы и канонические URL.
  • БезопасностьЕсть лимиты, валидация, таймауты и разделение read-only и side effects.
  • DiscoveryCard, catalog, ARD, документация и HTTP Link доступны снаружи.
  • Registryserver.json проходит актуальную JSON Schema, домен подтверждён.
  • ЭксплуатацияВерсия сервера фиксируется, ошибки наблюдаемы, логи ротируются, проверки запускаются в CI.
  • СовместимостьПубличный POST не блокируется CDN, а CORS и MIME-типы соответствуют контракту.

Как это организовано на ifreework.com

Публичный endpoint находится по адресу ifreework.com/mcp. Контентные инструменты читают опубликованные страницы на русском и английском, возвращают Markdown и канонические URL. Отдельные инструменты перечисляют услуги, проекты и статьи, читают выбранный материал, выполняют поиск и возвращают контакты.

Discovery опубликован через AI Catalog, ARD и server card. Человеческая инструкция доступна на странице MCP-сервер iFreeWork, а сервер com.ifreework/content зарегистрирован в официальном MCP Registry.

Через MCP реализована и отправка формы связи. Инструмент send_message использует тот же серверный механизм доставки, что и форма на сайте: принимает имя, обратный e-mail и текст обращения, проверяет данные, ограничивает повторы и передаёт сообщение владельцу. AI-клиент может вызвать его только после того, как пользователь увидел и подтвердил точный текст и адрес для ответа.

Главный принцип реализации прост: AI получает не «доступ к сайту вообще», а небольшой набор проверяемых контрактов поверх публичного контента. Именно эта граница делает MCP полезным в production, а не только эффектной демонстрацией.

Хотите, чтобы вашим сайтом можно было пользоваться через ChatGPT и другие AI-клиенты?

Разработаю MCP-сервер для сайта, интернет-магазина, CRM, базы знаний, корпоративной системы или собственного API: от безопасных read-only инструментов до подтверждаемых бизнес-операций.

Обсудить разработку MCP-сервера

MCP · Streamable HTTP · AI Discovery · JSON Schema · MCP Registry · AI Agents


Давайте обсудим проект

Расскажите, что хотите сделать. Я отвечу на вашу почту.

Или напишите в Telegram @ifwcom