От ручного копирования к предметной модели: как MCP меняет взаимодействие ИИ с MODX

Habr AI · оригинал

Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Разработчик описывает эволюцию подхода к интеграции ИИ в веб-разработку на MODX, где вместо простого доступа к файлам используется специализированный MCP-интерфейс. Такой метод позволяет агенту видеть структуру CMS как набор связанных сущностей, а не как сырые данные базы, что повышает качество и безопасность автоматизации.

Статья демонстрирует практический переход от использования LLM как «курьера» кода к созданию предметно-ориентированных интерфейсов для ИИ. Это ключевой тренд в enterprise-разработке, где сохранение бизнес-логики и связей между сущностями критически важно для предотвращения ошибок при автоматизации сложных систем.

Взаимодействие с искусственным интеллектом в веб-разработке долгое время оставалось рутинным процессом: разработчик выступал посредником, копируя фрагменты кода из CMS в чат LLM и обратно. Хотя ChatGPT и другие модели ускоряли написание сниппетов и исправление ошибок, они не понимали контекста системы. Автор статьи описывает эксперимент, начавшийся с желания устранить этот ручной труд, который постепенно превратился в полноценный инструмент для работы с MODX через протокол Model Context Protocol (MCP).

Изначально команда избегала MODX 3 из-за проблем с совместимостью дополнений, таких как MIGX. Однако после того, как один из новых сотрудников случайно развернул проект на третьей версии, стало ясно, что «тройка» достаточно зрелая для боевого использования. Это событие послужило катализатором для более глубокой интеграции ИИ. Вместо предоставления агенту полного SSH-доступа или прямого SQL-запроса к базе данных, разработчики решили создать интерфейс, который транслирует структуру MODX на языке его собственных сущностей: ресурсов, чанков, TV-полей и шаблонов.

Для реализации этой идеи были изучены существующие open-source проекты, такие как modxMCP от dampilov94 и modxmcp от karamble. Первый предлагал широкий набор инструментов для работы с элементами CMS, включая построение графа зависимостей, а второй делал акцент на строгом соблюдении штатных процессоров MODX 3. Команда не выбрала один из них как окончательное решение, а использовала их как основу для собственной архитектуры, объединив сильные стороны обоих подходов.

Ключевой проблемой оказалось то, что технический доступ к данным не гарантирует понимания логики CMS. В одном из тестов агент успешно выполнил задачу по изменению стиля сайта, но при попытке вывести динамические данные через pdoResources он создал статическую вёрстку, игнорируя архитектуру системы. Это показало, что количество доступных инструментов (в текущей версии их 182) менее важно, чем способность модели выбирать правильный путь воздействия. Для решения этой проблемы была внедрена модульная архитектура с платформенным слоем, который абстрагирует различия между MODX 2 и 3.

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

На данный момент проект опубликован под лицензией MIT и поддерживает как MODX Revolution 2.8.x, так и 3.x. Все зарегистрированные действия переведены на модульную среду выполнения, а компонент уже проходит проверку на нескольких продакшен-сайтах. Разработчики планируют в ближайшее время выложить пакет в официальных каталогах MODX Extras и modstore.pro. При этом серверная часть, содержащая специфичные для компании правила безопасности и окружения, останется закрытой.

Главный вывод из этого опыта состоит в том, что для сложных систем критически важно предоставлять ИИ интерфейс, сохраняющий предметную модель, а не только низкоуровневый доступ к данным. Это принцип применим не только к MODX, но и к любой другой CMS или корпоративной системе. Следующим этапом развития станет создание механизмов контроля рисков, резервного копирования и отката изменений, что позволит безопасно доверять агенту работу с боевыми серверами.