Skip to content

MCP-сервер

MCP-сервер даёт агенту Cursor, VS Code или Claude доступ к командам расширения 1C: Platform Tools: тесты, профили запуска, сборка и загрузка конфигурации и расширений, работа с базой. Агент вызывает ровно те же команды, что вы нажимаете кнопками. Сервер живёт отдельным расширением 1C: Platform Tools MCP и общается с 1C: Platform Tools по локальному каналу.

Установка

  1. Установите 1C: Platform Tools: Marketplace, Open VSX.
  2. Установите 1C: Platform Tools MCP: Marketplace, Open VSX.
  3. Откройте проект 1С: папку с packagedef.

Подключение

VS Code больше ничего не требует: расширение регистрирует MCP-сервер само.

Cursor не поддерживает провайдер MCP-серверов VS Code, поэтому сервер подключается через .cursor/mcp.json проекта. Файл создаёт и обновляет расширение:

  1. Палитра команд → 1C: Platform Tools MCP: Настроить MCP для Cursor, либо дерево 1С: ИнструментыНавыки для AIНастроить MCP для Cursor.
  2. Перезагрузите окно.
  3. Включите сервер mcp-1c-platform-tools в настройках MCP: новый сервер Cursor добавляет выключенным.

Команда пишет путь к серверу и параметры канала, включает канал и сохраняет другие серверы файла. Путь содержит версию расширения, поэтому после обновления запись устаревает и сервер падает с MODULE_NOT_FOUND; расширение чинит это при запуске, если путь ведёт на другую установку этого же расширения. Путь, прописанный вручную, остаётся как есть.

Канал связи включается настройкой 1c-platform-tools.ipc.enabled, порт и токен задают 1c-platform-tools.ipc.port и 1c-platform-tools.ipc.token. Если конфиг заводится без расширения, те же значения передаются серверу переменными окружения:

json
{
  "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 — не в пользовательских настройках редактора:

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. Шаг с подтверждением в таком запуске завершается ошибкой: подтверждать некому.

Дальше: параметры инструментов и что писать агенту.

Распространяется по лицензии MIT.