Подключение 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 такой:

  1. Откройте File > Preferences > Windsurf Settings.
  2. На странице Windsurf Settings выберите Manage MCPs.
  3. На странице 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 в правом верхнем углу секции.

Дальше работа идёт через чат:

  1. Откройте AI-чат Cascade (Ctrl+L или иконка чата в сайдбаре).
  2. Отправьте запрос, использующий возможности сервера, например: посмотри метаданные документа Реализация в базе prod.
  3. Когда Cascade предложит вызвать инструмент, подтвердите кнопкой Run tool.

Официальная дока Windsurf не приводит отдельный визуальный индикатор статуса подключения, поэтому факт работы проще проверять именно запросом в чат и предложением Run tool.

Полное описание инструментов по редакциям лежит в документации, а краткий обзор продукта на главной. Если работаете в другом редакторе, посмотрите подключение к Cursor: там тот же ключ mcpServers с полями command, args и env.