MCP сервер для 1С-Битрикс: Управление сайтом
Обзор
Ссылка на модуль на Marketplace: https://marketplace.1c-bitrix.ru/solutions/delight.mcp/ Демонстрация работы модуля: https://rutube.ru/video/06d0f3f63a2f588ed5f0695aa674b468/ Модуль создан с целью улучшения качества разработки проектов на Битриксе с использованием AI-агентов. Модуль реализует MCP сервер согласно официальной спецификации Model Context Protocol. Он представляет собой набор эндпоинтов, которые используются для связи AI-агента среды разработки непосредственно с сайтом и сервером. - Добавляет документацию Bitrix Framework (она же https://docs.1c-bitrix.
README
🚀 MCP сервер для 1С-Битрикс: Управление сайтом
Ссылка на модуль на Marketplace: https://marketplace.1c-bitrix.ru/solutions/delight.mcp/
Демонстрация работы модуля: https://rutube.ru/video/06d0f3f63a2f588ed5f0695aa674b468/
Модуль создан с целью улучшения качества разработки проектов на Битриксе с использованием AI-агентов.
Модуль реализует MCP сервер согласно официальной спецификации Model Context Protocol. Он представляет собой набор эндпоинтов, которые используются для связи AI-агента среды разработки непосредственно с сайтом и сервером.
⚙️ Возможности MCP сервера
Ресурсы:
- Добавляет документацию Bitrix Framework (она же https://docs.1c-bitrix.ru/) в ресурсы MCP сервера, к которым агент может обращаться напрямую
Инструменты:
- Информация об окружении:
- Информация о системе:
- Название операционной системы;
- Имя хоста;
- Имя текущего пользователя;
- Объем диска в байтах;
- Объем свободного места на диске в байтах;
- Информация о Битриксе:
- Редакция;
- Версия главного модуля;
- Установленные модули;
- Информация о PHP:
- Версия PHP;
- Подключенные расширения;
- Ограничение по объему доступной оперативной памяти;
- Максимальное время исполнения PHP-скриптов;
- Информация о базе данных:
- Тип базы данных;
- Версия сервера баз данных;
- Хост подключения;
- Имя базы данных;
- Информация о системе:
- Live API:
- Список доступных функций в модуле;
- Список доступных событий в модуле;
- Поиск функций в модулях по проиндексированной базе;
- Код функции модуля с её описанием PHPDoc;
- Поиск функций через механизм Reflection по всему коду;
- Исполнение PHP-кода на сервере;
- Исполнение Shell-команд на сервере;
- Исполнение SQL-запросов на сервере;
- Поиск по документации Bitrix Framework (требует дополнительного подключения сервиса генерации embeddings):
- Нормализует markdown-файлы документации Bitrix Framework перед индексированием;
- Индексирует markdown-файлы документации Bitrix Framework в формате embeddings для поиска по смыслу, а не по вхождению;
- Производит векторный поиск по документации Bitrix Framework по запросу от AI-агента.
🔔 Доступные события в модуле
| Имя события | Когда вызывается | Параметры |
|---|---|---|
| OnBeforeExec | Перед исполнением shell-команд | ['command' => (string) $command] Команда на исполнение |
| OnAfterExec | После исполнения shell-команд | ['output' => (array) $output] Массив с построчным выводом исполненной команды |
| OnBeforeEval | Перед исполнением PHP-кода | ['code' => (string) $code] Код на исполнение |
| OnAfterEval | После исполнения PHP-кода | ['output' => (string) $output] Экранный вывод исполненного кода |
| OnBeforeSql | Перед исполнением SQL-кода | ['query' => (string) $query] SQL-запрос(ы) на исполнение |
| OnAfterSql | После исполнения SQL-кода | [ 'columns' => (array) $columns, 'rows' => (array) $rows, 'rowCount' => (int) count($rows), 'query' => (string) $query``];Массив с результатом SQL-запроса |
| OnBeforeGenerateEmbedding | Перед отправкой данных в сервис генерации эмбеддингов | [ 'url' => (string) self::GENERATE_EMBEDDINGS_ENDPOINT, 'data' => Json::encode(['text' => $text]), 'headers' => [ 'Content-Type' => 'application/json', ], 'timeout' => $this->timeout, 'waitResponse' => true``]Массив с данными запроса |
| OnAfterGenerateEmbedding | После получения данных от сервиса генерации эмбеддингов | ['response' => (bool|string) $response]Результат POST-запроса через \Bitrix\Main\Web\HttpClient |
🛡️ Безопасность
Доступ AI-агентов к модулю реализован с помощью JWT-токенов с возможностью указания времени жизни и прав токена на отдельные эндпоинты. Доступно удаление идентификаторов токенов со страницы настроек модуля, чтобы заблокировать доступ по ранее выпущенному токену.
Есть возможность ограничить доступ к настройкам модуля определенным группам пользователей.
Доступно логирование запросов/ответов к внешнему API модуля.
В модуле используются потенциально опасные функции eval и exec, которые могут быть приняты антивирусами за вредоносный код.
Эти функции позволяют AI-агенту исполнять произвольный код на сервере, если у токена есть соответствующие права.
Во избежание ложных срабатываний антивируса рекомендуется добавить модуль в исключения. Код модуля открыт и можно самостоятельно убедиться, что использование этих функций не является уязвимостью.
Токены с правами на исполнение PHP/Shell/SQL кода рекомендуется использовать только на тестовых площадках! Помните, что AI-агенты ошибаются и могут удалить или испортить ваши данные.
🔌 Примеры подключения MCP сервера
Особенности указания команды npx
Значение поля command может зависеть от операционной системы и окружения. Примеры:
"command": "npx"
"command": "npx.cmd"
"command": "C:\\Program Files\\nodejs\\npx.cmd"
Если возникает ошибка запуска, укажите полный путь до npx.
Особенности авторизации
В некоторых системах стандартный заголовок Authorization недоступен для чтения на бэкенде, в таких случаях можно использовать заголовок X-Authorization.
🧠 Подключение embeddings-сервиса
Т.к. документация Bitrix Framework автоматически добавляется в ресурсы MCP сервера и доступна AI-агенту по запросу, то острой необходимости в настройке поиска по документации нет, это лишь может сэкономить контекст.
Для корректной работы сервиса поиска по документации Bitrix Framework требуется взаимодействие с сервисом генерации embeddings (векторных представлений текста), которые нужны для поиска не по содержанию, а по смыслу.
В качестве основного пути предлагается на собственном сервере поднять микросервис на Python (sentence-transformers), код микросервиса также предоставляется в модуле, но можно использовать и другие варианты (OpenAI, Olama и прочее) - для их использования нужно по событию OnBeforeGenerateEmbedding переопределить параметры запроса на генерацию embeddings, и по другому событию OnAfterGenerateEmbedding привести ответ к JSON-строке вида
"[-0.22979317605495453,-0.1455831080675125,-0.2588725686073303,0.0562337264418602,...]"
Установка и настройка микросервиса Embeddings
Этот сервис должен работать в фоновом режиме и автоматически запускаться после перезагрузки сервера.
Инструкция ниже предназначена для BitrixEnv 9+ и предполагает, что все команды выполняются последовательно через SSH от root-пользователя. Все пути требуется актуализировать под ваше окружение.
💡 Другие решения разработчика для 1С-Битрикс:
- Webp - Конвертер изображений в современный формат «на лету» 🏆 2000+ установок
- LazyLoad LITE - Отложенная загрузка изображений 🏆 2000+ установок
- LazyLoad PRO - Отложенная загрузка изображений, видео и iframe в 1 клик
- Выбор даты и времени доставки
- PHP-условие в правилах работы с корзиной для реализации собственных условий скидок и наценок
- Расширенные накопительные скидки в правилах работы с корзиной
- Асинхронизатор: асинхронная загрузка компонентов
- Предзагрузчик ресурсов
- Минификация HTML/JS/CSS
👨💻 Автор
Модуль принёс пользу? Ты можешь оставить отзыв или поблагодарить разработчика: https://yoomoney.ru/to/41001510540341
Установка
npx mcp-remote https://{ВАШ_ДОМЕН}/bitrix/services/main/ajax.php?action=delight:mcp.Rpc.handler --header Authorization: Bearer {ВАШ_ТОКЕН}