MCP-сервер и редакторы
Работа с elemctl из ИИ-агента по MCP, плюс плагины и расширение VS Code.
MCP-сервер
Сервер отдаёт операции платформы как MCP-инструменты (транспорт stdio):
pip install "elemctl[mcp]"
claude mcp add elemctl -- elemctl mcp
Реквизиты подключения сервер берёт из тех же переменных ELEMENT_* /
.env. Среди инструментов: list_apps, get_app, deploy (с полем ok
в ответе), verify_deploy, list_builds, merge_branch и другие.
Одно окружение не приковывает: у каждого инструмента, обращающегося к платформе,
есть необязательный env_file - путь к .env другого стенда. Так один сервер
работает и с облаком, и с локальной установкой, без перезапуска с другими
реквизитами. list_apps по умолчанию отдаёт краткие карточки (id, имя, статус,
uri, применённая версия): полные карточки пространства - это десятки тысяч
символов в ответе агенту, за ними - brief=false.
Плагины
elemctl подхватывает внешние пакеты через точки расширения importlib.metadata:
сам он в своём pyproject.toml о плагинах ничего не объявляет, а читает их при
обращении. Так непубликуемые вендорские артефакты живут отдельным пакетом, а ядро
elemctl остаётся чистым и общедоступным.
Сейчас поддержана одна группа - elemctl.debug_adapter: пакет-плагин объявляет
каталог debug-адаптера платформы (проприетарные jar 1С, в состав elemctl не входят).
Значение точки расширения - путь либо функция без аргументов, возвращающая путь;
путь указывает на каталог с подкаталогом repo/, где лежат jar-файлы адаптера.
# pyproject.toml пакета-плагина
[project.entry-points."elemctl.debug_adapter"]
имя = "мой_пакет:adapter_root" # () -> Path на каталог, содержащий repo/
# путь к адаптеру от установленного плагина (для расширения VS Code):
# {"path": "...", "found": true} либо {"path": null, "found": false}
elemctl debug-adapter
# какие плагины видны - диагностика установки
elemctl plugins
Сам адаптер (проприетарные jar 1С) извлекается из дистрибутива платформы скриптом
tools/extract_adapter.py - в каталог для ручной настройки xbslDebug.adapterPath либо
для сборки пакета-плагина. Скрипт в дистрибутив пакета не входит.
Обнаружение плагинов отключается переменной ELEMCTL_NO_PLUGINS=1 (прогон только
со штатными возможностями ядра).
VS Code
С редактором elemctl связывают два расширения-спутника:
- XBSL (проект
xbsl-lint) – подсветка, линтер, предпросмотр форм
и кнопка “XBSL: деплой на стенд”, запускающая
elemctl deployтерминальной задачей с проверкой применения. - XBSL Debug
(живёт в этом репозитории,
editors/vscode) – отладка приложений 1С:Элемента штатным DAP-адаптером платформы; данные отладочной сессии берётelemctl apps debug.
Оба публикуются и в Open VSX.