MCP-1C: частые ошибки установки и подключения

·
  • ошибки
  • установка
  • faq
  • 1c

MCP 1С ошибка при установке и подключении: антивирус, таймаут -32000, безопасный режим, неопределена информационная база, ключи LLM. Симптом, причина, фикс.

Большая часть проблем при первом запуске MCP-1C сводится к десятку повторяющихся ситуаций: антивирус блокирует бинарник, Claude Code рвёт соединение с кодом -32000, расширение опроса упирается в безопасный режим 1С, а запрос «неопределена информационная база» на деле почти всегда означает неверный URL HTTP-сервиса в --base. Ниже по каждой ошибке: симптом, причина, проверка и фикс. Базовая установка и параметры запуска описаны в документации.

Антивирус ругается на бинарник

Симптом: Windows Defender или другой антивирус помещает mcp-1c-advanced в карантин или не даёт запустить.

Причина: бинарник обфусцируется для защиты от анализа (это касается всех редакций), а обфусцированные Go-бинарники эвристика антивирусов часто помечает как подозрительные. Вредоносного кода в файле нет, поведение воспроизводимо и разбиралось в GitHub Issues #4 и на Infostart. Открытую редакцию мы собрали с обфускацией и проверили через VirusTotal.

Фикс: восстановить файл из карантина и при необходимости добавить его в исключения антивируса штатными средствами вашей ОС. Скачивайте бинарник только из официального источника.

Ошибка -32000 / Connection closed на большой базе

Симптом: при подключении к большой базе Claude Code обрывает соединение с ошибкой -32000 / Connection closed.

Причина: старые билды строили индекс базы синхронно при запуске, и первая сборка блокировала готовность сервера дольше, чем клиент готов ждать.

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

Таймауты: какой за что отвечает

Их три, и путать их не стоит.

Настройка Где задаётся За что отвечает
MCP_TIMEOUT (мс, по умолчанию 30000) секция env в ~/.claude/settings.json или .claude/settings.json, либо MCP_TIMEOUT=120000 claude время ожидания запуска MCP-сервера клиентом Claude Code
timeout (мс) per-server поле в записи сервера .mcp.json длительность отдельного вызова инструмента (см. также MCP_TOOL_TIMEOUT)
--request-timeout (сек, env MCP_1C_REQUEST_TIMEOUT) флаг нашего сервера таймаут HTTP-запроса от сервера к 1С

MCP_TIMEOUT задаётся именно в файле настроек Claude Code, а не в .mcp.json. Это разные файлы.

«Установлен безопасный режим. Выполнение операции запрещено»

Симптом: в polling-режиме при обращении расширения к серверу опроса 1С пишет Установлен безопасный режим. Выполнение операции запрещено.

Причина: расширение MCP_Polling создаёт исходящее HTTP-соединение к серверу mcp-1c, а в безопасном режиме 1С исходящие соединения запрещены.

Фикс для файловой базы:

  1. Все функции -> Расширения конфигурации.
  2. Выберите MCP_Polling.
  3. Снимите флажок «Безопасный режим».
  4. Перезапустите 1С.

Фикс для клиент-серверной базы:

  1. Создайте профиль безопасности (через RAC или консоль кластера).
  2. Разрешите интернет-ресурс: хост и порт из --listen.
  3. Назначьте профиль в поле «Профиль безопасности безопасного режима» информационной базы.
  4. Перезапустите сеансы.

«Защиту от опасных действий» при этом трогать не нужно. Начиная с версии 2.20.0 настройку профиля для клиент-серверной базы автоматизирует команда --configure-security-profile <ras> (через утилиту rac), обязательные параметры --server, --infobase-name, --poll-server-url. Флаг --dry-run показывает команды rac без изменений. Для файловой базы команда печатает ручные шаги и ничего не меняет.

Подсказка от сервера: если в течение 60 секунд после запуска сервера опроса (--listen) ни один клиент 1С не обратился, сервер один раз пишет в журнал (stderr) намёк, что причиной может быть безопасный режим. После того как соединение разрешено, расширение переустанавливается командой --install-polling.

Инструменты mcp-1c не появились в клиенте

Симптом: клиент запустился, но инструментов 1С в нём нет.

Причина: чаще всего это неверный путь к бинарнику или к базе. В Claude Desktop логи пишутся в ~/Library/Logs/Claude (macOS) или %APPDATA%\Claude\logs (Windows): там есть строка про запуск mcp-1c-advanced и причину ошибки.

Проверьте конфиг и его расположение для вашего клиента.

Клиент Файл конфигурации Корневой ключ
Claude Desktop (Windows) %APPDATA%\Claude\claude_desktop_config.json mcpServers
Claude Desktop (macOS) ~/Library/Application Support/Claude/claude_desktop_config.json mcpServers
Claude Code .mcp.json (проект) или ~/.claude.json (user) mcpServers
VS Code + Copilot .vscode/mcp.json servers

Транспорт по умолчанию это stdio: клиент сам запускает бинарник и общается с ним через stdin и stdout, отдельные порты и HTTP-серверы поднимать не нужно. После любой правки конфига клиент нужно перезапустить. Минимальный валидный конфиг содержит ключ mcpServers с записью хотя бы одного сервера (см. пример ниже).

Рабочий конфиг для Claude Code:

{
  "mcpServers": {
    "1c": {
      "command": "C:\\path\\to\\mcp-1c-advanced.exe",
      "args": ["--base", "http://localhost:8080/hs/mcp-1c"]
    }
  }
}

Для клиент-серверной базы добавьте аутентификацию:

{
  "mcpServers": {
    "1c": {
      "command": "C:\\path\\to\\mcp-1c-advanced.exe",
      "args": [
        "--base", "http://server:8080/erp/hs/mcp-1c",
        "--user", "Admin",
        "--password", "secret"
      ]
    }
  }
}

В Claude Code сервер можно добавить и командами claude mcp add / claude mcp add-json. Stdio-серверы это локальные процессы: они не переподключаются автоматически и не подпадают под idle-timeout. Поддерживаемые клиенты: Claude Desktop, Claude Code, Cursor, Windsurf, VS Code + Copilot, VS Code + Continue, JetBrains IDE. Подключение Cursor разобрано отдельно: настройка Cursor.

«Неопределена информационная база»

Симптом: при запуске мост не может выйти на базу, по теме всплывает формулировка «неопределена информационная база».

В контексте MCP-1C это почти всегда означает, что в --base указан неверный или недоступный URL HTTP-сервиса 1С, либо сам HTTP-сервис не опубликован. Проверьте, что URL из --base открывается, что HTTP-сервис опубликован на сервере и что для клиент-серверной базы переданы --user и --password.

LLM-инструменты возвращают ошибку без API-ключей

Симптом: в Профессиональной редакции автодокументация, генерация тестов и другие LLM-возможности падают при первом вызове, остальное работает.

Причина: эти LLM-инструменты есть только в Профессиональной редакции (бинарник mcp-1c-pro), и им нужны переменные окружения с API-ключами (YANDEXGPT_API_KEY и YANDEXGPT_FOLDER_ID либо ключи GigaChat). Без них бинарник mcp-1c-pro завершается с ошибкой вида --autodoc-provider=yandexgpt требует переменные окружения YANDEXGPT_API_KEY и YANDEXGPT_FOLDER_ID. В Расширенной редакции (mcp-1c-advanced) этих команд нет: вызов возвращает сообщение о том, что возможность доступна в Профессиональной редакции.

Фикс: задайте нужные переменные в секции env конфига mcp-1c-pro. Базовые инструменты (поиск, метаданные, оптимизатор запросов) от LLM не зависят и работают всегда.

Платформа 1С для --install и --install-polling

Команды --install и --install-polling требуют установленной платформы 1С (Конфигуратора). Если платформа не определяется автоматически, путь к 1cv8.exe задаётся флагом --platform, а версию можно указать явно через --platform-version. Минимальная поддерживаемая версия платформы: 8.3.10.

macOS: где поднимать HTTP-сервис

На macOS MCP-сервер запускается, но HTTP-сервис 1С нужно поднять на Windows или Linux: на виртуальной машине или удалённом сервере. URL этого удалённого сервиса указывается в --base.

Мелкие ошибки командной строки

  • Опечатка или неизвестный флаг: печатается подсказка Введена неправильная команда. Запустите mcp-1c-advanced --help для получения списка команд.
  • Флаги-переключатели включаются добавлением самого флага без значения, например --enable-semantic. Указание значения вызывает ошибку: --enable-semantic true приведёт к ошибке.
  • Слишком крупный ответ 1С отклоняется с понятной ошибкой. Лимит задаётся флагом --max-response-size (MiB, env MCP_1C_MAX_RESPONSE_SIZE) и увеличивается для больших баз с расширениями. Передачу очень большого ответа регулирует --request-timeout (env MCP_1C_REQUEST_TIMEOUT, секунды).

Если ошибка не из этого списка, начните с логов клиента и проверки --base на доступность. Установка с нуля и описание всех флагов: документация, общий обзор продукта на главной.