Создание сайтов на 1С Битрикс стало еще просто, используйте готовые шаблоны! Подключайте современные модули, делая ваш сайт еще эффективнее!
Например, парсер сайтов

MCP сервер

Бесплатно
Модуль на гитхабе: https://github.com/DeLighter1990/delight.mcp

Модуль создан с целью улучшения качества разработки проектов на Битриксе с использованием AI-агентов.

Модуль реализует MCP сервер в виде набора эндпоинтов, которые используются для связи 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-агента.
Безопасность

Доступ AI-агентов к модулю реализован с помощью JWT-токенов с возможностью указания времени жизни и прав токена на отдельные эндпоинты. Доступно удаление идентификаторов токенов со страницы настроек модуля, чтобы заблокировать доступ по ранее выпущенному токену.

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

Доступно логирование запросов/ответов к внешнему API модуля.

Токены с правами на исполнение PHP/Shell/SQL кода рекомендуется использовать только на тестовых площадках! Помните, что AI-агенты ошибаются и могут удалить или испортить ваши данные.


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

Требуется стандартная установка решения.
После установки необходимо выпустить токен в настройках модуля.

Пример подключения MCP сервера в Cursor

{

    "mcpServers": {

        "bitrix": {

            "command": "npx",

            "args": [

                "mcp-remote",

                "https://{ВАШ_ДОМЕН}/bitrix/services/main/ajax.php?action=delight:mcp.Rpc.handler",

                "--header",

                "Authorization: Bearer {ВАШ_ТОКЕН}"

             ]

        }

    }

}

Подключение 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: Установка Python и зависимостей

Эти команды установят Python, создадут изолированное окружение для сервиса и загрузят в него все необходимые библиотеки.

# Устанавливаем Python 3 и менеджер пакетов pip

sudo yum install -y python3 python3-pip



# Задаем путь к модулю

MODULE_PATH="/home/bitrix/www/bitrix/modules/delight.mcp"



# Переходим в директорию, где будет работать сервис

cd $MODULE_PATH/python



# Создаем виртуальное окружение в папке 'venv'

python3 -m venv venv



# Активируем окружение, обновляем pip и устанавливаем библиотеки

source venv/bin/activate

python3 -m pip install --upgrade pip

pip install fastapi uvicorn "sentence-transformers[txt]"

deactivate



# Меняем владельца всех файлов на bitrix, чтобы у сервиса были права доступа

sudo chown -R bitrix:bitrix $MODULE_PATH/python
Шаг 2: Создание фоновой службы (systemd)

Следующие команды создадут, настроят и запустят фоновый процесс.

# Задаем имя файла службы

SERVICE_FILE="/etc/systemd/system/delight.embeddings.service"



# Задаем путь к модулю

MODULE_PATH="/home/bitrix/www/bitrix/modules/delight.mcp"



# Создаем unit-файл для systemd с помощью команды tee

# Это позволяет запускать сервис от пользователя bitrix и автоматически перезапускать его

sudo tee $SERVICE_FILE > /dev/null <<EOF

[Unit]

Description=Delight Embeddings Generation Service

After=network.target



[Service]

User=bitrix

Group=bitrix

WorkingDirectory=$MODULE_PATH/python

ExecStart=$MODULE_PATH/python/venv/bin/python -m uvicorn embeddings-service:app --host 0.0.0.0 --port 8000

Restart=always



[Install]

WantedBy=multi-user.target

EOF



# Открываем порт 8000 в брандмауэре

sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent

sudo firewall-cmd --reload



# Перечитываем конфигурацию systemd, включаем автозапуск и стартуем сервис

sudo systemctl daemon-reload

sudo systemctl enable delight.embeddings.service

sudo systemctl start delight.embeddings.service
Шаг 3: Проверка статуса

Чтобы убедиться, что сервис успешно запущен и работает, выполните:

sudo systemctl status delight.embeddings.service
Вы должны увидеть статус active (running). Если возникли ошибки, их можно посмотреть командой
sudo journalctl -u delight.embeddings.service


Доступные в модуле события

Имя события Когда вызывается Параметры
OnBeforeExec Перед исполнением shell-команд
// Команда на исполнение

['command' => (string) $command]
OnAfterExec После исполнения shell-команд
// Массив с построчным выводом исполненной команды

['output' => (array) $output]
OnBeforeEval Перед исполнением PHP-кода
// Код на исполнение

['code' => (string) $code]
OnAfterEval После исполнения PHP-кода
// Экранный вывод исполненного кода

['output' => (string) $output]
OnBeforeSql Перед исполнением SQL-кода
// SQL-запрос(ы) на исполнение

['query' => (string) $query]
OnAfterSql После исполнения SQL-кода
// Массив с результатом SQL-запроса

[

    'columns' => (array) $columns,

    'rows' => (array) $rows,

    'rowCount' => (int) count($rows),

    'query' => (string) $query

];
OnBeforeGenerateEmbedding Перед отправкой данных в сервис
генерации эмбеддингов
// Массив с данными запроса

[

    'url' => (string) self::GENERATE_EMBEDDINGS_ENDPOINT,

    'data' => Json::encode(['text' => $text]),

    'headers' => [

        'Content-Type' => 'application/json',

    ],

    'timeout' => $this->timeout,

    'waitResponse' => true

]
OnAfterGenerateEmbedding После получения данных от сервиса
генерации эмбеддингов
// Результат POST-запроса через \Bitrix\Main\Web\HttpClient

['response' => (bool|string) $response]
Об ошибках сообщайте в раздел issues на GitHub.
Вы можете поучаствовать в улучшении модуля, создав Pull Request в репозитории на GitHub с вашими доработками.

Стандартная техническая поддержка платная.
При обращении за технической поддержкой обязательно указывайте ссылку на сайт, доступы в админку и FTP!
Пишите на dronazzz@mail.ru или https://t.me/delighter

x