DD

delighter1990/delight.mcp

Developer tools
23 stars 0 forks Качество 54 Тренд 31

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С-Битрикс:

👨‍💻 Автор

Дмитрий Кротов

Модуль принёс пользу? Ты можешь оставить отзыв или поблагодарить разработчика: https://yoomoney.ru/to/41001510540341

Открыть полный README на GitHub

Установка

npx mcp-remote https://{ВАШ_ДОМЕН}/bitrix/services/main/ajax.php?action=delight:mcp.Rpc.handler --header Authorization: Bearer {ВАШ_ТОКЕН}
Новичок в MCP? Начните с руководства на mcpskill.org →