MCP-сервер
MCP-сервер даёт агенту Cursor, VS Code или Claude доступ к командам расширения 1C: Platform Tools: тесты, профили запуска, сборка и загрузка конфигурации и расширений, работа с базой. Агент вызывает ровно те же команды, что вы нажимаете кнопками. Сервер живёт отдельным расширением 1C: Platform Tools MCP и общается с 1C: Platform Tools по локальному каналу.
Установка
- Установите 1C: Platform Tools: Marketplace, Open VSX.
- Установите 1C: Platform Tools MCP: Marketplace, Open VSX.
- Откройте проект 1С: папку с
packagedef.
Подключение
VS Code больше ничего не требует: расширение регистрирует MCP-сервер само.
Cursor не поддерживает провайдер MCP-серверов VS Code, поэтому сервер подключается через .cursor/mcp.json проекта. Файл создаёт и обновляет расширение:
- Палитра команд → 1C: Platform Tools MCP: Настроить MCP для Cursor, либо дерево 1С: Инструменты → Навыки для AI → Настроить MCP для Cursor.
- Перезагрузите окно.
- Включите сервер
mcp-1c-platform-toolsв настройках MCP: новый сервер Cursor добавляет выключенным.
Команда пишет путь к серверу и параметры канала, включает канал и сохраняет другие серверы файла. Путь содержит версию расширения, поэтому после обновления запись устаревает и сервер падает с MODULE_NOT_FOUND; расширение чинит это при запуске, если путь ведёт на другую установку этого же расширения. Путь, прописанный вручную, остаётся как есть.
Канал связи включается настройкой 1c-platform-tools.ipc.enabled, порт и токен задают 1c-platform-tools.ipc.port и 1c-platform-tools.ipc.token. Если конфиг заводится без расширения, те же значения передаются серверу переменными окружения:
{
"mcpServers": {
"mcp-1c-platform-tools": {
"command": "node",
"args": ["<каталог расширения>/out/src/index.js"],
"env": {
"ONEC_IPC_HOST": "127.0.0.1",
"ONEC_IPC_PORT": "40241",
"ONEC_IPC_TOKEN": ""
}
}
}
}Каталог расширения: %USERPROFILE%\.cursor\extensions\yellow-hammer.mcp-1c-platform-tools-<версия>-universal (Windows) или ~/.cursor/extensions/... (macOS, Linux); после обновления расширения такой путь придётся поправить руками. Глобальный %USERPROFILE%\.cursor\mcp.json работает так же, но расширение его не обновляет: для нескольких проектов надёжнее проектный файл.
Несколько окон
Каждое окно Cursor или VS Code поднимает свой канал IPC. Порт по умолчанию один — 40241, поэтому второе окно пишет «порт уже используется», а агент может попасть не в тот проект (WORKSPACE_MISMATCH).
В каждом проекте задайте свой порт в .vscode/settings.json — не в пользовательских настройках редактора:
{
"1c-platform-tools.ipc.enabled": true,
"1c-platform-tools.ipc.port": 40242
}Порты одновременно открытых окон не должны совпадать. Токен в этот файл не кладите: если он нужен, задайте 1c-platform-tools.ipc.token в пользовательских настройках.
В Cursor после правки снова выполните Настроить MCP для Cursor: команда запишет тот же порт в .cursor/mcp.json. Перезагрузите окно.
Не держите этот сервер в глобальном %USERPROFILE%\.cursor\mcp.json: там один порт на все проекты. Несколько папок в одной рабочей области — это одно окно и один порт, отдельный порт им не нужен.
Проверка
Напишите агенту «покажи состояние окружения 1С». В ответе будут активный профиль запуска, версия платформы и путь к базе. Дальше можно просить прогон тестов, переключение профиля, сборку конфигурации.
Как агент работает с командами
- Агент дожидается результата. Инструменты возвращают код возврата и вывод команды, у прогонов тестов ещё и счётчики из отчёта. С параметром
wait: falseкоманда уходит в терминал, и ход выполнения видно на экране. - Окна не открываются. Команда, вызванная агентом, никогда не показывает окна выбора: если данных не хватает, возвращается ошибка с подсказкой, какие параметры передать. Интерактивные мастера (поставка, установка версии, создание профиля) агенту недоступны, их выполняет пользователь.
- Окружение запуска.
env_statusпоказывает активный профиль, файл настроек и строку подключения;env_selectProfileпереключает профиль по имени. Разовый прогон под другим файлом настроек задаётся параметромsettingsFile: активный профиль при этом не меняется, а параметры вызова имеют приоритет над временными параметрами профиля. - Ошибки видны как ошибки. Упавшие тесты, ошибки синтаксического контроля, ненулевой код возврата и обрыв связи с расширением помечают ответ как неуспешный. Синтаксический контроль отдаёт список ошибок с путём к файлу модуля. Длинный вывод обрезается до хвоста, целиком он остаётся в панели расширения.
- Исходный код находится сам. Каталоги исходного кода инструменты не принимают: конфигурацию, расширения, внешние обработки и отчёты расширение находит в проекте, в выгрузке конфигуратора и в проектах 1С:EDT.
- Проекты окна. Команды без
projectPathвыполняются в текущем проекте окна.project_listпоказывает проекты,project_selectпереключает текущий,project_initделает проектом каталог безpackagedef,projectPathнаправляет один вызов в другой проект, не меняя текущий.
Автоматизация из агента
Агенту доступна команда pipelines_run с параметром pipeline: идентификатор или название цепочки из .1cpt/pipelines.json. Возвращается пошаговый отчёт: что выполнено, что упало, сколько попыток.
Редакторы пайплайнов и хуков агенту не публикуются: файлы он правит напрямую, состав полей подсказывают схемы pipelines.schema.json и hooks.schema.json. Шаг с подтверждением в таком запуске завершается ошибкой: подтверждать некому.
Дальше: параметры инструментов и что писать агенту.