Вам нужен сайт, который пишет сам себя? Добро пожаловать в 2026
В 2026 году контент-маркетинг — это гонка вооружений. Чтобы оставаться в топе, нужно публиковать десятки статей в месяц. Люди выгорают, а нейросети — нет. Но просто скормить промпт ChatGPT и вставить результат на сайт — путь к катастрофе. Без архитектуры вы получите кучу рыхлого текста, сломанные верстки и головную боль от откатов. Решение — MCP-сервер, который становится мозгом сайта, связывая LLM, систему версионирования и CD. Сегодня разберем, как это работает на уровне кода и инфраструктуры.
Если вы уже пробовали подключать AI-агентов к CMS, то знаете: WordPress.com с MCP — отличный пример, но он прячет много деталей под капотом. Мы же залезем внутрь.
MCP — не просто протокол, а мост между LLM и живым сайтом
MCP (Model Context Protocol) — это не очередная тулза для автоматизации. Это протокол, который позволяет LLM взаимодействовать с внешними ресурсами и инструментами. В нашем случае — с сайтом. MCP-сервер выступает этаким дирижером: получает от модели запрос "создай страницу", дергает нужные API, сохраняет результат, проверяет его и публикует.
Как это выглядит на практике? У вас есть MCP-сервер, который регистрирует инструменты: create_page, update_page, get_page_version. LLM (Claude 4 Opus, GPT-5, Gemini Pro) вызывает эти инструменты через стандартный протокол. MCP-сервер выполняет код, возвращает результат модели. И так по кругу.
Важно: MCP-сервер — не просто прокси. Он — песочница безопасности. Он решает, какие действия разрешены, а какие нет. Если LLM попытается выполнить опасный SQL — MCP-сервер скажет "нет". Подробнее про то, как строить такие мосты, я писал в статье про MCP-сервер для КОМПАС-3D — там похожая логика, только для инженерных чертежей.
Не все MCP-серверы одинаково полезны. Некоторые настолько болтливы, что тратят контекст на пустые диалоги. Если хотите отсечь лишнюю болтовню — взгляните на mcp-context-proxy, который режет пустые ответы.
Как LLM пишет контент, пока вы пьете кофе: пайплайн
Давайте представим, что LLM нужно создать страницу "О нас". Без MCP-сервера это выглядит так: промпт -> текст -> верстка глазами -> копипаст -> ручная правка. С MCP-сервером так:
- LLM получает задачу с четкой структурой: заголовок, подзаголовок, три абзаца, CTA-блок, alt-текст к изображению.
- LLM вызывает инструмент
create_pageчерез MCP, передавая JSON с полями:content(HTML),title,slug. - MCP-сервер принимает JSON, прогоняет через валидатор: проверяет наличие обязательных полей, отсутствие script-тегов, синтаксис HTML.
- Если валидация пройдена — сервер сохраняет новую версию страницы в Git-репозиторий контента и отправляет запрос на деплой.
- Если валидация не пройдена — MCP-сервер возвращает LLM ошибку с описанием проблемы и просит исправить.
Вот пример плохого промпта, который приведет к мусору:
Напиши страницу о компании, используй красивые слова.
А вот хороший (с точки зрения архитектуры):
{
"instruction": "create_page",
"params": {
"title": "О компании | Название",
"h1": "Мы делаем сложное простым",
"body_html": "Текст, не более 300 слов...
",
"cta": {"text": "Заказать консультацию", "url": "/contact"},
"template": "about"
}
}
Почему второй хорош? Он машиночитаем, предсказуем и легко валидируется. О том, как правильно проектировать такие запросы, чтобы не упираться в контекст, я подробно написал в статье проектирование архитектуры для ИИ-кодирования.
Версионирование контента — ваш спасательный круг
Самая большая ошибка — думать, что LLM всегда права. Нейросети галлюцинируют, путают даты, генерируют битый HTML. Если у вас нет версионирования, одно неудачное обновление может положить сайт.
Правильная архитектура подразумевает хранение каждой версии контента с возможностью мгновенного отката. Варианта два:
- Git-репозиторий — каждый коммит = версия страницы. Плюс: прозрачность, легкость диффа. Минус: сложность для динамического контента.
- База данных с версионностью — таблица
page_versionsс полямиpage_id, version_id, content, created_at, status. Плюс: быстрый откат по ID. Минус: разрастание данных.
Лично я предпочитаю комбинированный подход: Git для статического контента (лендинги, статьи) и БД для динамических элементов (цены, A/B тесты).
Пример ошибки: Храните только последнюю версию? Тогда при регрессе вам придется перегонять LLM заново — цена ошибки вырастает кратно. Особенно это больно, когда модель перезаписывает работающий контент своим "творчеством".
Интересный способ уменьшить объем хранимых версий — использовать граф знаний. В статье индексация кода в граф знаний показано, как 120-кратное сокращение токенов помогает работать с историей правок, не перегружая LLM.
Кстати, если вам нужно, чтобы MCP-сервер сам понимал изменения кода и не пожирал всю VRAM — зацените Code-memory MCP-сервер. Он отлично работает в связке с версионированием.
Собираем все вместе: живой пример работы системы
Давайте проследим полный цикл на конкретном кейсе. Допустим, вы даете LLM задачу: "Обнови страницу услуг, добавь блок с ценами".
1 Запрос и генерация
LLM получает текущую версию страницы (через MCP-инструмент get_page_content), анализирует структуру и генерирует новый HTML. Важно: в запрос включается только релевантный контекст (метаданные, SEO-шаблон), чтобы не перегружать токены. Помогает в этом MCP Tool Registry — он подмешивает только нужные инструменты.
2 Валидация
MCP-сервер запускает цепочку проверок:
- Синтаксический анализ HTML — нет ли незакрытых тегов.
- Безопасность — запрещенные теги (script, iframe, object) вырезаются или заменяются на safe-варианты.
- Контент-политика — совпадают ли заголовки, есть ли дубликаты slug, соответствует ли длина SEO-рекомендациям.
- Специфичная бизнес-логика — например, цены не могут быть отрицательными.
Ошибка №1: Доверять LLM в генерации неэкранированных данных. Пример: LLM может вставить <img src=x onerror=alert(1)> — если не санитизировать атрибуты, получите XSS.
Ошибка №2: Проверять только JSON-схему, но не содержимое. LLM может вернуть валидный JSON с невалидным HTML.
3 Версионирование и публикация
После успешной валидации MCP-сервер сохраняет новую версию контента (increment version_id), коммитит в Git, запускает CI/CD пайплайн. Если что-то пошло не так на продакшне — откат к предыдущей версии занимает секунды.
Для статического контента схема идеальна. Для динамического (например, онлайн-калькулятор) нужно дополнительно кешировать результаты и связать с графом знаний — об этом я писал в статье самоподдерживающаяся Wiki-база знаний на LLM.
Подводные камни (и как на них не наступить)
- Контекстное окно. LLM не может держать в голове весь код сайта. MCP-сервер должен подавать только актуальные куски. Решение — использовать контекстные фильтры и разбивать сайт на микросервисы.
- Расход токенов. Каждая регенерация стоит денег. Кешируйте запросы и ответы. MCP Tool Registry умеет собирать статистику по использованию.
- Галлюцинации. LLM может выдумать факты. Добавьте RAG-слой: перед генерацией подтягивайте реальные данные через MCP-инструмент
search_knowledge_base. Отличный пример — MCP Tool Registry для RAG. - SEO. LLM не знает ваших стратегий. Используйте GEO (Generative Engine Optimization), чтобы контент попадал в ответы ChatGPT и Perplexity — статья про GEO.
- Безопасность MCP. Не забывайте про аутентификацию запросов к MCP-серверу. Если злоумышленник сможет вызвать
delete_all_pages— контента не станет.
Частые вопросы
Вопрос: Какой стек выбрать для MCP-сервера?
Ответ: Python (FastAPI) или Go. Python — простота интеграции с AI-библиотеками, Go — производительность и малый вес. MCP спецификация не привязана к языку.
Вопрос: Стоит ли использовать локальную LLM для управления сайтом вместо облачной?
Ответ: Для регулярных небольших изменений — да, если есть хорошая видеокарта. Пример настройки локальной LLM с MCP разобран в статье MCP и локальные LLM.
Вопрос: Как часто MCP-сервер должен обновлять контент?
Ответ: Частота задается правилами, а не MCP-сервером. Можно сделать еженедельную автоматическую ревизию, можно — ручной триггер. Главное — не увлекаться: каждая регенерация стоит токенов и может ухудшить качество, если модель переписывает рабочий материал.
Что дальше? Совет, который вы не ожидали
Не пытайтесь внедрить полную автоматизацию сайта с первого дня. Начните с одного MCP-инструмента — генерации черновиков для блога. Пусть LLM пишет текст, MCP-сервер сохраняет версию, а вы вручную проверяете и публикуете. Через месяц, когда привыкнете к пайплайну, добавляйте автоматическую публикацию. Через три месяца — подключите A/B тестирование версий контента.
Почему так? Потому что главная проблема не в технологии, а в доверии. Пока вы не научитесь доверять MCP-серверу и LLM в связке, полная автоматизация будет стрелять в ногу. Идите маленькими шагами — и сайт под ИИ-управлением станет вашим лучшим сотрудником, а не источником админского стресса.