Подключение MCP-1C к Cursor

·
  • cursor
  • mcp
  • 1c
  • integration

Как подключить MCP-1C к Cursor по транспорту stdio: где лежит mcp.json, минимальный конфиг, несколько баз 1С, ключи LLM в секции env и проверка через MCP Logs.

Cursor читает определения инструментов MCP из конфигурационного файла и подключает их к чату. Чтобы получить в редакторе доступ к метаданным вашей конфигурации 1С, достаточно прописать в этот файл запуск бинарника MCP-1C. Дальше Cursor сам показывает инструменты сервера и обращается к ним, когда они уместны для запроса.

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

Где Cursor хранит конфиг

Cursor держит настройки MCP-серверов в файле mcp.json и ищет его в двух местах:

Файл Область действия
.cursor/mcp.json в корне проекта только этот проект
~/.cursor/mcp.json в домашнем каталоге все проекты

Проектный файл удобен, когда база 1С привязана к конкретному репозиторию с расширением или внешними обработками. Глобальный файл подходит, если вы работаете с одной базой из любого проекта. Если файла нет, его нужно создать.

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

// Cursor: глобальный конфиг ~/.cursor/mcp.json (или .cursor/mcp.json в корне проекта)
{
  "mcpServers": {
    "mcp-1c": {
      "command": "mcp-1c-advanced",
      "args": [
        "--base", "http://localhost:8080/hs/mcp-1c",
        "--user", "Администратор",
        "--password", ""
      ]
    }
  }
}

Корневой ключ mcpServers это словарь. Ключ внутри (mcp-1c) это произвольное имя сервера для отображения в Cursor, а значение описывает запуск. Параметры запуска бинарника:

  • --base <URL> объявляет базу 1С, в примере это http://localhost:8080/hs/mcp-1c.
  • --user <имя> задаёт пользователя.
  • --password <пароль> задаёт пароль (пустая строка, если пароль не задан).

Здесь command это имя бинарника Расширенной редакции mcp-1c-advanced: он должен быть в PATH либо указан полным путём. В опубликованном на сайте примере для Cursor с бинарником Открытой редакции mcp-1c структура та же и используется такая же HTTP-форма --base, меняется только значение command. Профессиональная редакция собрана как надмножество Расширенной и поставляется бинарником mcp-1c-pro. Корпоративная редакция в разработке.

Поля конфига и UI

Формат mcp.json у Cursor описывает три поля на сервер:

Поле Назначение
command обязательно, исполняемый файл в PATH или указанный полным путём
args массив аргументов запуска, опционально
env переменные окружения, опционально

В таблице полей Cursor поле type для stdio-сервера помечено обязательным со значением stdio, но в минимальных примерах из документации Cursor его опускают. Кроме stdio Cursor умеет http и sse, но MCP-1C по stdio в нём не нуждается.

Тот же сервер добавляется и через интерфейс настроек Cursor в разделе MCP, где выбирается транспорт stdio и заполняются command и args. Названия пунктов меню в разных версиях Cursor отличаются, поэтому надёжнее править mcp.json напрямую. Структура совпадает с официальным примером Cursor для stdio:

{
  "mcpServers": {
    "server-name": {
      "command": "npx",
      "args": ["-y", "mcp-server"],
      "env": {
        "API_KEY": "value"
      }
    }
  }
}

Несколько баз

Если нужно держать несколько баз в одном процессе, --base принимает форму NAME=URL и повторяется, а учётные данные задаются флагом --auth в форме NAME=USER:PASS:

{
  "mcpServers": {
    "mcp-1c": {
      "command": "mcp-1c-advanced",
      "args": [
        "--base", "dev=http://localhost:8080/hs/mcp-1c",
        "--base", "prod=http://prod-host/acc/hs/mcp-1c",
        "--auth", "dev=Администратор:",
        "--auth", "prod=Администратор:"
      ]
    }
  }
}

В запросе к Cursor базу можно назвать явно, например: посмотри метаданные документа Реализация в базе prod.

Ключи LLM в секции env

Часть инструментов Профессиональной редакции обращается к внешней LLM: автогенерация документации, генерация тестов и подобное. Они доступны только в бинарнике mcp-1c-pro, поэтому секция env с ключами LLM имеет смысл при запуске именно его. API-ключи задаются в секции env, которую формат конфига Cursor поддерживает:

{
  "mcpServers": {
    "mcp-1c": {
      "command": "mcp-1c-pro",
      "args": ["--base", "http://localhost:8080/hs/mcp-1c"],
      "env": {
        "YANDEXGPT_API_KEY": "AQVN...",
        "YANDEXGPT_FOLDER_ID": "b1g..."
      }
    }
  }
}

Базовые инструменты от LLM не зависят и работают без этих ключей: поиск по коду, чтение метаданных, анализ. Секция env нужна только если вы собираетесь пользоваться инструментами с обращением к модели.

Проверка подключения

После добавления сервера Cursor сам использует его инструменты, когда они уместны; они перечислены в разделе Available Tools. Включать и выключать серверы можно через Customize в сайдбаре.

Если инструменты не появились, откройте панель Output (Cmd+Shift+U) и выберите в выпадающем списке MCP Logs. Там видны сообщения об инициализации и об ошибках сервера. Возможные причины: неверный путь к бинарнику в command или недоступный адрес базы в --base.

Первый запуск и индекс

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

Дальше

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

Актуальная справка Cursor по MCP находится на cursor.com/docs/context/mcp. Старый адрес docs.cursor.com отдаёт постоянный редирект на cursor.com/docs.