Подключение mcp-1c к Claude Desktop

claudedesktopmcpintegration

Как добавить mcp-1c-advanced в Claude Desktop. Файл конфигурации, путь к бинарнику, параметры подключения к базе 1С. Stdio-транспорт по умолчанию.

Claude Desktop поддерживает протокол MCP из коробки. Это значит что мост для 1С достаточно прописать в конфиге, и инструменты появятся в чате без всяких дополнительных адаптеров.

Транспорт по умолчанию это stdio: Claude Desktop запускает бинарник, общается с ним через stdin и stdout. Никаких отдельных портов настраивать не нужно, никаких HTTP-серверов поднимать тоже не нужно.

Где лежит конфиг

ОС Путь
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json
Linux ~/.config/Claude/claude_desktop_config.json

Если файла нет, его нужно создать. Минимальный валидный конфиг это пустой объект {}.

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

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

Объект mcpServers это словарь, где ключ это произвольное имя сервера для отображения в Claude (mcp-1c), а значение содержит команду запуска. Параметры --base, --user, --password совпадают с теми, что используются при ручном запуске: --base это адрес опубликованного HTTP-сервиса 1С, а --user и --password действуют, когда база одна и задана адресом без имени.

После сохранения файла нужно перезапустить Claude Desktop. При следующем открытии чата в нижнем правом углу появится индикатор подключённых MCP-серверов с кнопкой инструментов.

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

Флаг --base повторяется для каждой базы в форме имя=URL, а учётные данные каждой базы задаёт --auth имя=ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ (для пустого пароля двоеточие ставится в конце):

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

В каждом запросе к Claude можно явно указать базу: «посмотри метаданные документа Реализация в базе prod». Если в вызове инструмента нет параметра base, сервер отвечает по базе по умолчанию: это первая в списке, если не задан --default-base.

Профессиональная редакция и токены LLM

В режиме сервера к LLM обращается только инструмент автогенерации документации (autodoc). autodoc работает только с выгрузкой конфигурации: без --dump он отказывает на любое действие, поэтому для него в аргументы запуска нужно добавить --dump с путём к выгрузке. Если планируется им пользоваться, переменные окружения с API-ключами надо задать в секции env:

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

Без этих переменных действия generate и regenerate инструмента autodoc возвращают ошибку, а summary и find работают и без них. Генерация тестов, сборка .epf и навигация по типовым конфигурациям в режиме сервера к LLM не обращаются, ключи им не нужны. Базовые инструменты (поиск, метаданные, оптимизатор запросов) от LLM не зависят и работают всегда.

Долгая инициализация

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

Long polling вместо HTTP-сервиса

Если в базе уже установлено расширение MCP_Polling, в --base указывается схема poll://, а --poll-user и --poll-password должны совпадать с теми, с которыми обращается расширение, обычно это значения, заданные при установке:

{
  "mcpServers": {
    "mcp-1c": {
      "command": "/usr/local/bin/mcp-1c-advanced",
      "args": [
        "--base", "acc=poll://",
        "--listen", ":9090",
        "--poll-user", "myuser",
        "--poll-password", "mypassword12"
      ]
    }
  }
}

В этом случае Claude Desktop запускает mcp-1c-advanced как stdio-сервер, и внутри он сам поднимает HTTP-приёмник для расширения 1С. Без учётных данных опроса, здесь это --poll-user и --poll-password (пароль не короче 12 символов), сервер не запустится, если явно не отказаться от проверки подлинности. 1С обращается к серверу сама, через регламентное задание, по адресу, который обычно задаёт при установке флаг --poll-server-url: чтобы опрос шёл, этот адрес должен вести к приёмнику. Если задание не запущено или безопасный режим 1С блокирует этот исходящий запрос, опроса не будет (что делать с безопасным режимом, описано в документации). Для разработчика это удобно тем, что один процесс держит и MCP-stdio для Claude, и HTTP для расширения, без разных конфигов.

Проверка

После перезапуска Claude в чате можно спросить: «какие инструменты mcp-1c тебе доступны». Claude перечислит зарегистрированные инструменты (code_read, code_search, code_analyze, bulk_analyze, и так далее, в зависимости от редакции лицензии).

Если инструменты не появились, в логах Claude Desktop (Help -> Open Logs) должна быть строка про запуск mcp-1c-advanced и причину ошибки. Чаще всего это неверный путь к бинарнику или к базе.