Подключение MCP-1C к Windsurf
- windsurf
- mcp
- 1c
Как подключить MCP-1C к Windsurf по транспорту stdio: где лежит mcp_config.json, минимальный конфиг, несколько баз 1С, ключи LLM в секции env и лимит инструментов Cascade.
Cascade, агент внутри Windsurf, читает определения инструментов MCP из конфигурационного файла и сам определяет, когда они уместны для запроса. Чтобы дать редактору доступ к метаданным вашей конфигурации 1С, в этот файл прописывается запуск бинарника MCP-1C.
Связь идёт по транспорту stdio: клиент запускает бинарник и общается с ним через stdin и stdout. Отдельные порты настраивать не нужно, HTTP-сервер поднимать тоже не нужно. Один запущенный процесс обслуживает ровно одного пользователя, так что конфиг привязан к вашему рабочему месту.
Где Windsurf хранит конфиг
Windsurf держит настройки MCP-серверов в файле mcp_config.json:
| ОС | Путь |
|---|---|
| macOS, Linux | ~/.codeium/windsurf/mcp_config.json |
| Windows | %USERPROFILE%\.codeium\windsurf\mcp_config.json |
Тильда раскрывается в домашний каталог пользователя. Если файла нет, его нужно создать.
Бренд Windsurf перешёл под Cognition/Devin. Официальный домен документации docs.windsurf.com отдаёт редирект на docs.devin.ai, а в интерфейсе настроек наряду с Windsurf Settings встречается формулировка Devin Settings. На структуру конфига это не влияет, но названия пунктов меню между версиями редактора могут различаться.
Минимальная конфигурация
// Файл: ~/.codeium/windsurf/mcp_config.json
// Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
// (на Windows command = путь к mcp-1c-advanced.exe)
{
"mcpServers": {
"mcp-1c": {
"command": "/usr/local/bin/mcp-1c-advanced",
"args": [
"--base", "acc=http://localhost:8080/acc/hs/mcp-1c",
"--user", "Администратор",
"--password", ""
]
}
}
}
Корневой ключ mcpServers это объект, где ключ (mcp-1c) это произвольное имя сервера, а значение описывает запуск. Структура полностью совпадает с официальным примером Windsurf для stdio-сервера, который выглядит так:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_PERSONAL_ACCESS_TOKEN>"
}
}
}
}
Поскольку формат mcp_config.json совпадает с тем, что использует Claude Desktop (тот же ключ mcpServers, те же поля command, args, env), конфиг переносится между клиентами без изменений. Параметры запуска бинарника:
--base <имя=URL>объявляет базу, где URL это адрес опубликованного HTTP-сервиса 1С (http://host:port/base/hs/mcp-1c) либоpoll://для polling-базы (вместе с--listen). Для офлайн-выгрузки конфигурации используйте отдельный флаг--dump <имя=путь>.--user <имя>задаёт пользователя.--password <пароль>задаёт пароль (пустая строка, если пароль не задан).
Бинарник Расширенной редакции называется mcp-1c-advanced. Инструменты с обращением к LLM относятся к Профессиональной редакции. Корпоративная редакция пока в разработке.
Транспорт и поля
Cascade поддерживает три типа транспорта MCP: stdio, Streamable HTTP и SSE. Для локального бинарника подходит stdio: поля command, args и опционально env. Удалённые HTTP-серверы задаются через поле serverUrl (у Windsurf это именно serverUrl), но MCP-1C по stdio в нём не нуждается.
В полях command, args, env, serverUrl, url и headers поддерживается интерполяция переменных синтаксисом ${env:VAR_NAME} и ${file:/path/to/file}, чтобы не хранить секреты прямо в файле.
Несколько баз и ключи LLM
Флаг --base повторяется для каждой базы, а учётные данные при нескольких базах задаются per-base флагом --auth в форме ИМЯ=ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ (для пустого пароля двоеточие ставится в конце). Часть инструментов Профессиональной редакции обращается к внешней LLM: автогенерация документации, генерация тестов, генерация .epf обработок, навигация по типовым. Эти инструменты есть только в бинарнике mcp-1c-pro: в сборку mcp-1c-advanced они не входят и в списке инструментов Cascade не появляются. Для них API-ключи задаются в секции env, которую формат конфига Windsurf поддерживает:
{
"mcpServers": {
"mcp-1c": {
"command": "/usr/local/bin/mcp-1c-pro",
"args": [
"--base", "dev=http://localhost:8080/acc-dev/hs/mcp-1c",
"--base", "prod=http://prod-server:8080/acc/hs/mcp-1c",
"--auth", "dev=Администратор:",
"--auth", "prod=Администратор:"
],
"env": {
"YANDEXGPT_API_KEY": "AQVN...",
"YANDEXGPT_FOLDER_ID": "b1g..."
}
}
}
}
Без этих переменных бинарник с включённой автогенерацией документации или генерацией тестов завершит работу с ошибкой при запуске: без API-ключей эти функции не стартуют. У части LLM-функций есть флаги отключения модели (--testgen-llm-disable, --epfgen-llm-disable, --typicalconfigs-llm-disable), которые дают только скелеты или пустые описания; у автогенерации документации такого флага нет. Базовые инструменты от LLM не зависят и работают всегда: поиск, чтение метаданных, оптимизатор запросов.
Добавление через интерфейс
Кроме ручной правки файла, сервер добавляется через настройки. Доступ к настройкам MCP есть двумя путями: иконка MCPs в правом верхнем углу панели Cascade либо раздел Settings > Cascade > MCP Servers. Если нужного сервера нет в маркетплейсе, его добавляют вручную, редактируя mcp_config.json напрямую.
Точный путь к ручному редактированию конфига по документации Microsoft Learn для Windsurf такой:
- Откройте File > Preferences > Windsurf Settings.
- На странице Windsurf Settings выберите Manage MCPs.
- На странице Manage MCP Servers нажмите View raw config вверху, чтобы открыть
mcp_config.jsonдля редактирования.
UI-лейблы здесь подтверждены документацией Microsoft, а не самой докой Windsurf, и из-за ребрендинга могут называться Windsurf Settings или Devin Settings в зависимости от версии редактора.
Лимит инструментов Cascade
У Cascade жёсткий лимит: не более 100 инструментов, доступных одновременно. Если суммарно подключённые MCP-серверы дают больше 100 инструментов, лишние не загружаются. Учитывайте это, когда к Windsurf подключено несколько MCP-серверов параллельно с MCP-1C.
Первый запуск и индекс
Старт сервера неблокирующий: MCP-сервер отвечает на подключение сразу, а индекс строится в фоне. Пока индекс ещё не готов, поиск по коду и чтение модулей возвращают сообщение о построении индекса с предложением повторить запрос позже; остальные инструменты работают сразу. Индекс кэшируется в системном каталоге кэша ОС, путь переопределяется флагом --cache-dir или переменной MCP_1C_CACHE_DIR. Последующие запуски проходят быстро за счёт переиспользования кэша.
Проверка
После добавления или правки сервера инструменты подхватываются по кнопке Refresh в разделе MCP Servers. Если они не появились, нажмите refresh в правом верхнем углу секции.
Дальше работа идёт через чат:
- Откройте AI-чат Cascade (Ctrl+L или иконка чата в сайдбаре).
- Отправьте запрос, использующий возможности сервера, например: посмотри метаданные документа Реализация в базе prod.
- Когда Cascade предложит вызвать инструмент, подтвердите кнопкой Run tool.
Официальная дока Windsurf не приводит отдельный визуальный индикатор статуса подключения, поэтому факт работы проще проверять именно запросом в чат и предложением Run tool.
Полное описание инструментов по редакциям лежит в документации, а краткий обзор продукта на главной. Если работаете в другом редакторе, посмотрите подключение к Cursor: там тот же ключ mcpServers с полями command, args и env.