Подключение 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 умеет провести через настройку пошагово.
- Откройте палитру команд и выполните
MCP: Add Server. - Пройдите шаги мастера и укажите команду запуска (
mcp-1c-advanced) и аргументы. - Когда мастер спросит, куда записать конфигурацию, выберите рабочую область (Workspace) или профиль (Global).
Рядом есть полезные команды: MCP: List Servers показывает зарегистрированные серверы, MCP: Open User Configuration открывает глобальный файл. Кроме этого сервер можно добавить установкой по ссылке вида vscode:mcp/install, ключом командной строки --add-mcp, автообнаружением из других инструментов (например, из конфигурации Claude Desktop) и через расширение, которое регистрирует сервер само.
Запуск в агент-режиме и проверка
MCP-серверы работают именно в агент-режиме. Помимо него у чата есть встроенные режимы Ask и Edit.
- Откройте чат Copilot.
- В селекторе режимов чата выберите Agent. Точное расположение переключателя зависит от версии и темы интерфейса, ориентируйтесь на подпись режима.
- Нажмите кнопку Configure Tools в поле ввода чата: откроется список доступных инструментов, среди которых должны быть инструменты
mcp-1c. - Для контрольной проверки спросите агента, какие инструменты
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. Структура везде одна, меняется лишь файл настроек самого клиента.