Skill v1.0.3
currentAutomated scan100/100Merge pull request #419 from yellow-hammer/dependabot/npm_and_yarn/dev-dependencies-090b1c5060
version: "1.0.3" name: 1c-platform-tools-mcp description: Инструменты MCP для команд 1C: Platform Tools (1C: Platform Tools MCP). Используй, когда нужно выполнить загрузку/выгрузку конфигурации, расширений, сборку EPF/ERF, запуск Конфигуратора/Предприятия, установку зависимостей — через MCP вместо палитры команд.
MCP: инструменты 1c-platform-tools
Если пользователь называет инструмент по имени (например «через run_designer», «вызови run_designer») — сразу вызови этот MCP-инструмент. Не заходи сначала в скилл и не обходи все JSON в папке MCP: открой дескриптор нужного инструмента и выполни вызов. Таблицы ниже — когда задача сформулирована без имени инструмента.
Если у тебя подключён сервер mcp-1c-platform-tools, используй его инструменты для операций с платформой 1С. Результат выполнения команды расширения придёт в ответе инструмента.
Проекты окна и параметр projectPath
Команды выполняются в текущем проекте окна VS Code. Проект это каталог с packagedef, в окне их может быть несколько: project_list покажет проекты, их вид (kind: designer и edt по формату исходного кода 1С, onec без исходного кода, onescript) и текущий, project_select с root сделает другой проект текущим, в том числе для пользователя, project_init создаст packagedef в каталоге из projectPath (папка рабочей области или каталог из candidates) и сделает его текущим. У остальных инструментов projectPath выполняет один вызов в указанном проекте и текущий не меняет; относительный путь считается от текущего проекта. Если пользователь проект не называл, projectPath не передавай.
Параметр wait
- `wait: true` (по умолчанию) — синхронное выполнение; в ответе
{ success, exitCode, stdout, stderr, tests?, artifact? }. Прогоны тестов возвращают счётчики по отчёту. - `wait: false` — команда уходит в терминал VS Code, ответ без stdout/exitCode. Нужен, когда пользователь смотрит ход выполнения сам.
Возвращают результат синхронно: конфигурация (loadIncFromSrc — с параметром sha; кроме loadFromFiles), расширения (кроме loadFromFiles), ИБ (кроме loadFromDt), внешние EPF/ERF, тесты (кроме allure), epf_run, test_configure (с параметром frameworks), odata_query, odata_setup, сборка и разбор.
Исход не возвращают (ответ подтверждает только запуск): run_*, server_*, debug_*, launch_*, deps_*, syntaxCheck_refresh, syntaxCheck_clear, oscript_run, components_update, loadFromDt, objlist, allure, clearCache. У таких инструментов это написано в описании.
Состояние окружения: env_status
Read-only инструмент env_status возвращает JSON: активный профиль, файл настроек и признак его существования, схему (v2/v3), версию vanessa-runner, временные параметры (пароль замаскирован) и итоговую строку подключения, а в поле odata — адрес стандартного интерфейса OData запущенного автономного сервера либо причину, почему его нет. Вызывай его перед операциями, когда важно, в каком окружении они выполнятся.
Явно переданные settingsFile/ibConnection имеют приоритет над временными параметрами профиля; применение или отбрасывание временных параметров отражается строками [контекст] ... в stdout результата.
Прочие параметры MCP
Параметры объявлены у тех инструментов, к которым применимы: sha есть только у инкрементальной загрузки, frameworks — только у настройки тестов. Если параметра нет в схеме инструмента, он этой команде не нужен.
settingsFile— файл настроек vanessa-runner относительноprojectPath; перекрывает активный профиль для конкретного вызова (например,tools/vrunner.init.jsonдля init-сценариев).ibConnection— явная строка подключения к ИБ, перекрывает значение файла настроек.
Каталогов исходного кода инструменты не принимают: конфигурацию, расширения, внешние обработки и отчёты расширение находит в проекте само, в выгрузке конфигуратора и в проектах 1С:EDT.
Дополнительные параметры операций
Те же значения можно передать объектом первым аргументом команды расширения (Execute Command), если MCP недоступен:
sha— инкрементальная загрузкаcf_loadInc(пустая строка — полная загрузка);extensions— явный список расширений дляcfe_*;profile— переключение профиля:env_selectProfile { profile: "test" };frameworks— настройка тестов:test_configure { frameworks: ["vanessa"] };execute,command— запуск EPF в Предприятии:epf_run { execute: "путь.epf", command: "строка /C" }.
Команды не открывают окон при агентном вызове: если данных не хватает, вернётся структурированная ошибка с подсказкой.
Неуспешный результат
Упавшие тесты, ошибки синтаксического контроля и ненулевой код возврата приходят с признаком ошибки: считать такой вызов выполненным нельзя. test_syntaxCheck возвращает список ошибок с путём к файлу модуля и текстом сообщения — правь по нему исходники, не разбирая stdout. Длинный вывод обрезается до хвоста, полный лог остаётся в панели расширения.
Как формируются имена инструментов
Имена генерируются из command ID расширения: убирается префикс 1c-platform-tools., точки заменяются на _, длинные слова сокращаются (dependencies → deps, Processors → Procs, loadIncrementFromSrc → loadIncFromSrc и др.). Полный список возвращается сервером при подключении.
Конфигурация
| Задача | Инструмент MCP | |
|---|---|---|
| Загрузить из исходников | cf_load | |
| Обновить конфигурацию БД | infobase_updateDb | |
| Загрузить изменения (git diff) | cf_loadInc | |
| Загрузить из objlist.txt | cf_loadByList | |
| Загрузить из 1Cv8.cf | cf_loadFile | |
| Выгрузить в исходники | cf_dump | |
| Выгрузить изменения | cf_dumpInc | |
| Выгрузить в 1Cv8.cf | cf_unload | |
| Собрать 1Cv8.cf | cf_compile | |
| Разобрать 1Cv8.cf | cf_decompile |
Расширения
| Задача | Инструмент MCP | |
|---|---|---|
| Загрузить из исходников | cfe_load | |
| Загрузить из objlist.txt | cfe_loadByList | |
| Загрузить из *.cfe | cfe_loadFile | |
| Выгрузить в исходники | cfe_dump | |
| Выгрузить в *.cfe | cfe_unload | |
| Собрать *.cfe | cfe_compile | |
| Разобрать *.cfe | cfe_decompile |
Тестовые расширения: test_loadExts, test_dumpExts, test_compileExts, test_decompileExts — параметр extensions работает так же.
Внешние обработки и отчёты
| Задача | Инструмент MCP | |
|---|---|---|
| Собрать обработки | epf_compileProc | |
| Разобрать обработки | epf_decompileProc | |
| Собрать отчёты | epf_compileReport | |
| Разобрать отчёты | epf_decompileReport | |
| Удалить кэш | epf_clearCache |
Данные базы через OData
Стандартный интерфейс OData читается и меняется инструментами расширения, без ручных HTTP-вызовов и отдельных секретов.
| Задача | Инструмент MCP | |
|---|---|---|
| Прочитать, создать, изменить, удалить данные | odata_query | |
| Показать или изменить состав интерфейса | odata_setup |
`odata_query` обращается к …/odata/standard.odata/:
- адрес — публикация запущенного автономного сервера проекта (
server_startс отмеченным пунктом «OData» в выборе публикуемых сервисов) либо своя публикация из параметраurl(корень публикации, напримерhttp://srv/base); resource— набор (Catalog_Номенклатура), элемент (Catalog_Номенклатура(guid'…')), свойство или$metadata;method—GETпо умолчанию;POSTсоздаёт,PATCHменяет переданные поля,PUTзаменяет элемент целиком (поля не изbodyсбрасываются — для правки не используй),DELETEудаляет: вызывай их только по явной просьбе пользователя, не «заодно» с чтением;- выборка —
filter,select,expand,orderby,top,skip; тело записи —body: строка с JSON объекта ({"Description":"Стол"}); - учётная запись —
db-userиdb-pwdактивного профиля (илиsettingsFile), пароль в вызов не передаётся.
Своя публикация из url — обычно чужая или продуктивная база. К ней только GET, всегда с select и top; учётная запись — из профиля, который назвал пользователь (settingsFile). odata_setup работает с базой профиля, а не с публикацией из url: к чужой базе его не применяй.
Ответ содержит код HTTP и тело. Большая выборка урезается по записям с пометкой: сузь её top, select, filter. Ошибка объясняет причину: сервер не запущен или OData не опубликован, 401 по учётной записи профиля, объект не входит в состав интерфейса.
`odata_setup` работает с базой профиля: состав интерфейса хранится в информационной базе, а не в публикации.
- без
includeиexcludeвозвращает текущий состав именами наборов OData (Catalog_Номенклатура): при запущенном сервере быстро, из$metadata, без него — запуском Предприятия; include/exclude— точечно включают и исключают объекты, остальной состав не меняется; имена полные (Справочник.Номенклатура) или как набор OData (Catalog_Номенклатура);available: trueдобавляет объекты проекта вне состава (из метаданных исходников); у большой конфигурации список может быть неполным — это сказано в ответе, имя дляincludeможно задать и без списка.
Изменение состава выполняет служебная обработка в Предприятии: нужны административные права и отключённая у пользователя защита от опасных действий. Автономный сервер этой базы на время запуска останавливается и поднимается снова.
Информационные базы, зависимости, запуск и др.
Остальные команды расширения также доступны как инструменты MCP (имена формируются по тому же принципу). Полный список инструментов возвращается сервером при подключении.
Примеры
- Вызови
cf_load— загрузка конфигурации из исходников в текущем проекте. - Вызови
cf_load, затемinfobase_updateDb: загрузка не трогает конфигурацию БД, пока не переданupdateDb: true. - Вызови
run_designer— запуск Конфигуратора (если пользователь просит открыть конфигуратор). - Вызови
deps_install— установка зависимостей packagedef/vrunner. - Пользователь просит дальше работать с проектом retail: вызови
project_list, затемproject_selectсrootпроекта retail. - Пользователь просит показать десять товаров:
odata_queryсresource: "Catalog_Номенклатура",top: 10,select: "Ref_Key,Description". Ошибка «не входит в состав» —odata_setupсinclude: ["Catalog_Номенклатура"]и повтор запроса.
Правило
Для автоматизации (загрузка конфигурации, выгрузка, сборка обработок и т.д.) предпочитай инструменты MCP вместо Execute Command редактора — так агент получает структурированный ответ и не зависит от палитры.