MCP для сайта: как ИИ помогает находить ошибки, подбирать товары и работать с бизнес-данными
\nПрактика · MCP · AI-агенты · Discovery · безопасность
Обычная веб-страница рассчитана на человека, а API — на заранее написанную интеграцию. MCP добавляет третий способ работы с сайтом: AI-клиент может узнать, какие данные и действия доступны, вызвать подходящий инструмент и получить структурированный результат с канонической ссылкой на источник.
Коротко: 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 этих функций нет.
Из каких слоёв состоит правильная реализация
-
Источник опубликованных данных
Отдельный read-only слой читает только публичные материалы CMS: страницы, услуги, портфолио и статьи. Черновики, служебные поля, пароли, сессии и административные данные не должны попадать в MCP даже случайно.
-
MCP endpoint
Для удалённого сайта подходит Streamable HTTP, например
https://example.com/mcp. Endpoint принимает JSON-RPC, обрабатываетinitialize,tools/list,tools/call,resources/listиresources/read. -
Инструменты с узкими контрактами
У каждого инструмента есть понятное имя, описание и JSON Schema. Лучше несколько предметных операций —
list_blog_posts,get_blog_post,search_content— чем универсальный SQL-запрос или произвольный URL. -
Ресурсы
Опубликованные страницы можно представить как MCP resources с URI, MIME-типом и текстовым содержимым. Инструменты удобны для запросов с параметрами, ресурсы — для чтения конкретного известного документа.
-
Discovery и описание подключения
Server card описывает имя, версию и удалённый endpoint. AI Catalog или ARD связывает его с сайтом, а HTTP-заголовок
Linkуказывает на каталог. Это помогает обнаружению, но не заставляет все AI-клиенты подключаться автоматически. -
Публичный Registry
Для официального MCP Registry готовится
server.json, владение доменом подтверждается через DNS или файл/.well-known/mcp-registry-auth, после чего метаданные публикуются черезmcp-publisher.
Какие discovery-файлы стоит опубликовать
| Адрес | Назначение |
|---|---|
/mcp | Streamable 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доступны снаружи. - Registry
server.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 · Streamable HTTP · AI Discovery · JSON Schema · MCP Registry · AI Agents
