Подключение MCP-1C к GitHub Copilot в VS Code

·
  • copilot
  • vscode
  • mcp
  • 1c

Подключение MCP-1C к GitHub Copilot в VS Code по stdio: где лежит .vscode/mcp.json, ключ servers вместо mcpServers, агент-режим и проверка инструментов 1С.

Начиная с релиза 1.102 (июнь 2025) поддержка MCP в VS Code объявлена общедоступной (GA), а агент-режим GitHub Copilot доступен всем пользователям и умеет работать с MCP-серверами. MCP-1C это обычный stdio-сервер протокола, поэтому к агент-режиму он подключается штатно, без отдельных расширений-прослоек: VS Code запускает бинарник так же, как любой другой локальный MCP-сервер. Где лежит файл конфигурации, чем ключ servers в VS Code отличается от Claude Desktop и Cursor и как проверить, что инструменты 1С появились в чате, описано ниже.

Связь идёт по транспорту stdio: клиент запускает бинарник и общается с ним через stdin и stdout. Отдельные порты настраивать не нужно, HTTP-сервер поднимать тоже не нужно. Один процесс обслуживает одно рабочее место, поэтому конфигурация привязывается либо к проекту, либо к вашему профилю.

Что нужно заранее

  • VS Code версии 1.102 или новее.
  • Бинарник MCP-1C на диске. В примерах ниже используется файл платной Расширенной редакции mcp-1c-advanced; путь к нему прописывается в конфигурации.
  • Доступ к базе 1С: строка соединения, пользователь и пароль.

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

Где VS Code хранит конфигурацию MCP

VS Code различает две области видимости сервера:

Область Где задаётся
Рабочая область (проект) файл .vscode/mcp.json в корне проекта
Профиль пользователя (глобально) команда MCP: Open User Configuration

Проектный файл .vscode/mcp.json удобен, когда база привязана к конкретному репозиторию с расширением или внешними обработками. Если положить этот файл под контроль версий, конфигурация уедет в репозиторий вместе с проектом и команда получит её автоматически. Профиль пользователя подходит, когда вы работаете с одной базой из любого проекта.

Важная деталь, на которой спотыкаются после Claude Desktop и Cursor: у VS Code корневой ключ называется servers, а не mcpServers. Если перенести конфиг из Claude Desktop как есть, сервер просто не подхватится.

Минимальная конфигурация

Создайте .vscode/mcp.json в корне проекта:

{
  "servers": {
    "mcp-1c": {
      "type": "stdio",
      "command": "/usr/local/bin/mcp-1c-advanced",
      "args": [
        "--base", "acc=http://localhost:8080/hs/mcp-1c",
        "--user", "Администратор",
        "--password", ""
      ]
    }
  }
}

Ключ внутри servers (mcp-1c) это произвольное имя сервера для отображения. Для локального stdio-сервера значимы поля:

  • command это путь к исполняемому файлу.
  • args это массив аргументов запуска.
  • type со значением stdio указывает транспорт явно (для локального бинарника это его обычный режим).
  • env это блок переменных окружения, опционально.
  • cwd это рабочий каталог, опционально.

Параметры запуска бинарника совпадают с теми, что используются при ручном старте и в других клиентах: --base объявляет базу в форме NAME=строка_соединения, --user задаёт пользователя, --password задаёт пароль (пустая строка, если пароль не задан).

На Windows путь к файлу указывается с экранированными слэшами:

{
  "servers": {
    "mcp-1c": {
      "type": "stdio",
      "command": "C:\\Program Files\\mcp-1c\\mcp-1c-advanced.exe",
      "args": ["--base", "acc=http://localhost:8080/hs/mcp-1c", "--user", "Администратор", "--password", ""]
    }
  }
}

Несколько баз и ключи LLM

Флаг --base повторяется для каждой базы в форме NAME=строка_соединения, имя базы потом можно называть в запросе явно. Учётные данные в мультибазовом режиме задаются per-base флагом --auth в форме NAME=USER:PASS (пустой пароль - двоеточие в конце). Часть инструментов Профессиональной редакции обращается к внешней LLM (например, автогенерация документации и генерация тестов); такие инструменты есть только в бинарнике mcp-1c-pro, требуют ключей API, и ключи задаются в блоке env:

{
  "servers": {
    "mcp-1c": {
      "type": "stdio",
      "command": "/usr/local/bin/mcp-1c-pro",
      "args": [
        "--base", "dev=http://localhost:8080/hs/mcp-1c",
        "--base", "prod=http://prod-host/acc/hs/mcp-1c",
        "--auth", "dev=Администратор:",
        "--auth", "prod=Администратор:"
      ],
      "env": {
        "YANDEXGPT_API_KEY": "AQVN...",
        "YANDEXGPT_FOLDER_ID": "b1g..."
      }
    }
  }
}

Ключи YANDEXGPT_* (а также GIGACHAT_*) действуют только в Профессиональной редакции, то есть на бинарнике mcp-1c-pro. В Расширенной редакции (mcp-1c-advanced) инструментов с обращением к LLM нет, и эти переменные ни на что не влияют. Базовые инструменты (поиск по коду, чтение метаданных, анализ) от модели не зависят и работают без этих ключей. Блок env нужен только для инструментов с обращением к LLM.

Добавление через палитру команд

Файл можно не править вручную: VS Code умеет провести через настройку пошагово.

  1. Откройте палитру команд и выполните MCP: Add Server.
  2. Пройдите шаги мастера и укажите команду запуска (mcp-1c-advanced) и аргументы.
  3. Когда мастер спросит, куда записать конфигурацию, выберите рабочую область (Workspace) или профиль (Global).

Рядом есть полезные команды: MCP: List Servers показывает зарегистрированные серверы, MCP: Open User Configuration открывает глобальный файл. Кроме этого сервер можно добавить установкой по ссылке вида vscode:mcp/install, ключом командной строки --add-mcp, автообнаружением из других инструментов (например, из конфигурации Claude Desktop) и через расширение, которое регистрирует сервер само.

Запуск в агент-режиме и проверка

MCP-серверы работают именно в агент-режиме. Помимо него у чата есть встроенные режимы Ask и Edit.

  1. Откройте чат Copilot.
  2. В селекторе режимов чата выберите Agent. Точное расположение переключателя зависит от версии и темы интерфейса, ориентируйтесь на подпись режима.
  3. Нажмите кнопку Configure Tools в поле ввода чата: откроется список доступных инструментов, среди которых должны быть инструменты mcp-1c.
  4. Для контрольной проверки спросите агента, какие инструменты mcp-1c ему доступны.

В Расширенной редакции среди зарегистрированных инструментов обычно code_read, code_search, code_execute, code_analyze, code_generate, system, memory, templates. Фактический набор зависит от редакции и лицензии, поэтому список в Configure Tools это источник истины, а не статья.

Подтверждение перед запуском инструмента

В агент-режиме инструменты вызываются по мере необходимости. VS Code может запрашивать подтверждение перед вызовом инструмента. Это нормальное поведение: подтверждаете вызов, и агент продолжает. Если для сервера включена изоляция (sandbox), вызовы инструментов одобряются автоматически.

Списки разрешённых адресов в VS Code относятся к необязательной изоляции (sandbox) локальных stdio-серверов на macOS и Linux: для такого сервера можно ограничить доступ к файловой системе и сети, перечислив разрешённые домены в блоке sandbox.network.allowedDomains. Сам протокол MCP-1C использует stdio, но бинарник ходит по HTTP к публикации 1С (адрес из --base). Если для сервера включена изоляция, этот адрес публикации 1С нужно внести в список разрешённых доменов, иначе обращения к базе будут заблокированы. На Windows изоляция недоступна, и ограничения не применяются.

Первый запуск дольше обычного

Старт сервера неблокирующий: MCP-сервер отвечает на подключение сразу, а индекс строится в фоне. Пока индекс не готов, поиск по коду и чтение модулей возвращают сообщение «Идёт построение индекса базы...» и становятся доступны по мере готовности; остальные инструменты работают сразу. После того как индекс построен, он кэшируется, и последующие запуски проходят быстро за счёт переиспользования кэша. По умолчанию кэш лежит в системном каталоге кэша ОС. Каталог можно переопределить флагом --cache-dir или переменной MCP_1C_CACHE_DIR.

Дальше

Полный список инструментов и параметров запуска есть в документации, общий обзор продукта на главной. Настройка Cursor идёт по той же схеме и отличается только корневым ключом и путём к файлу: подключение к Cursor. Структура везде одна, меняется лишь файл настроек самого клиента.