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

ошибкиустановкаfaq1c

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

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

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

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

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

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

macOS: скачанный бинарник не запускается

Симптом: файл скачан из личного кабинета, в Finder он показан обычным документом, а в терминале запуск даёт permission denied. После chmod +x картина меняется: процесс завершается сразу после старта и ничего не выводит.

Причина: их две, и они независимы.

  1. HTTP переносит содержимое файла, но не права доступа, поэтому скачанный файл приходит без бита исполнения (-rw-r--r--). Это одинаково для macOS и Linux.
  2. Файлу, скачанному браузером, macOS приписывает атрибут com.apple.quarantine. Подпись у наших бинарников только служебная, её ставит сборщик Go, сертификата разработчика Apple нет, поэтому Gatekeeper такой файл не пропускает. Приговор видно командой spctl -a -vv <файл>, она печатает rejected.

Фикс: выставить бит и снять карантин.

chmod +x mcp-1c-pro-darwin-arm64
xattr -d com.apple.quarantine mcp-1c-pro-darwin-arm64
./mcp-1c-pro-darwin-arm64 --version

Вторая команда нужна не всегда: через curl файл приходит без карантина, и тогда достаточно первой. Список атрибутов файла показывает xattr <файл>, и если com.apple.quarantine там нет, снимать нечего.

На Linux работает только первая причина, там нужен один chmod +x. На Windows не нужно ни того, ни другого.

Раз подписи Apple нет, проверить скачанное можно по контрольной сумме SHA-256: она указана рядом с каждой ссылкой в личном кабинете, а локально считается командой shasum -a 256 <файл> (на Linux sha256sum <файл>). Полный порядок установки описан в быстром старте.

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

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

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

Фикс: обновитесь до версии 2.23.4 или новее. Начиная с неё сервер выходит в готовность сразу и строит индекс выгрузки (--dump) в фоне. Пока индекс ещё строится, поиск по коду возвращает сообщение Индекс базы ещё не готов. Он строится один раз после запуска сервера, время зависит от размера конфигурации. Повторите запрос позже., такой текст у сообщения с версии 2.41.0. Модуль объекта или менеджера на базе, подключённой к 1С, в это время запрашивается у самой 1С и приходит, если она его отдаёт, а чтение модуля, который сервер берёт только из выгрузки, например общего, отвечает отказом с тем же сообщением в тексте ошибки. Если сборка индекса прервалась, ответ другой: Не удалось построить индекс базы с причиной и просьбой перезапустить сервер. Отдельно увеличивать таймаут для этого случая больше не нужно.

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

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

Настройка Где задаётся За что отвечает
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. Разрешите интернет-ресурс: хост и порт адреса, по которому расширение обращается к серверу опроса (обычно его задаёт --poll-server-url при установке).
  3. Назначьте профиль в поле «Профиль безопасности безопасного режима» информационной базы.
  4. Перезапустите сеансы.

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

Подсказка от установки: с версии 2.41.0 успешная команда --install-polling сама напоминает, что безопасный режим 1С может не пропустить запрос расширения к серверу опроса, и называет те же два способа, что описаны выше.

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

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

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

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

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

Клиент Файл конфигурации Корневой ключ
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-ключей

Симптом: в Профессиональной редакции действия generate и regenerate инструмента автодокументации (autodoc) возвращают ошибку, остальное работает.

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

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

Регламентное задание MCP_PollingJob не появилось в базе

Симптом: команда --install-polling отработала без ошибок, расширение опроса числится в базе активным, но фоновый опрос не идёт, а задания MCP_PollingJob в списке регламентных и фоновых заданий нет.

Причина: до версии 2.33.0 два расширения продукта конфликтовали между собой, расширение фонового опроса (--install-polling) и расширение HTTP-сервиса (--install). Когда в одной базе оказывались оба, то из них, которое поставили вторым, платформа 1С не применяла вовсе и об этом не сообщала. Установка при этом доходила до конца, оба расширения числились активными, установщик выводил те же строки, что и при успешной установке, ошибок не было ни у установщика, ни в журнале регистрации. Замерено на платформе 8.3.27.2130.

Проверка: посмотрите, стоит ли в этой же базе расширение HTTP-сервиса, то есть ставили ли вы в неё команду --install. Если стоит, это почти наверняка описанный случай.

Фикс: обновите бинарник до версии 2.33.0 и повторите команду --install-polling с теми же параметрами, что и при первой установке. Адрес сервера и учётные данные опроса установщик записывает внутрь расширения, поэтому передать их нужно заново. Удалять расширение перед переустановкой не нужно: новая версия кладётся поверх старой. Расширение HTTP-сервиса переустанавливать не требуется. После переустановки задание MCP_PollingJob появляется в списке: Главное меню → Все функции (или «Функции для технического специалиста») → Стандартные → Регламентные и фоновые задания.

Переустановить расширение опроса стоит всем, у кого оно вообще установлено, а не только тем, у кого сейчас стоят оба расширения. Пока в базе лежит расширение опроса из более ранней версии, тот же конфликт возникнет и позже, если расширение HTTP-сервиса поставят в эту же базу. Поэтому команду --install-polling стоит повторить и в базе, где расширения HTTP-сервиса сейчас нет.

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

Команды --install и --install-polling используют платформу 1С.

Механизм установки расширения фонового опроса зависит от типа базы, а не от операционной системы. В клиент-серверную базу (флаг --server) расширение всегда ставит Конфигуратор. В файловую базу его ставит консольная утилита платформы ibcmd, начиная с версии 2.29.0, и графическая оболочка для этого не нужна; если ibcmd не найден, установка переключается на Конфигуратор. Ищут утилиту в трёх местах по порядку: переменная окружения MCP_1C_IBCMD_PATH, затем каталоги PATH, затем известные каталоги установки платформы 1С. Третий шаг добавлен в версии 2.33.0: платформа 1С на Linux кладёт ibcmd в свой каталог версии и в PATH его не добавляет, поэтому раньше установка в файловую базу на сервере без графической оболочки упиралась в Конфигуратор.

Если платформа не определяется автоматически, путь к исполняемому файлу платформы задаётся флагом --platform, а версию можно указать явно через --platform-version. Минимальная версия платформы у команд разная: для --install это 8.3.10, для --install-polling это 8.3.23, потому что расширение опроса работает регламентным заданием, а регламентные задания в расширениях появились в 8.3.23.

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

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

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

  • Опечатка или неизвестный флаг: печатается подсказка Введена неправильная команда. Запустите mcp-1c-advanced --help для получения списка команд. Вместо mcp-1c-advanced подставляется имя запущенного файла, поэтому в Профессиональной редакции подсказка назовёт mcp-1c-pro.
  • Флаги-переключатели включаются добавлением самого флага без значения, например --enable-semantic. Указание значения вызывает ошибку: --enable-semantic true приведёт к ошибке.
  • Слишком крупный ответ 1С отклоняется с понятной ошибкой. Лимит задаётся флагом --max-response-size (MiB, env MCP_1C_MAX_RESPONSE_SIZE) и увеличивается для больших баз с расширениями. Передачу очень большого ответа регулирует --request-timeout (env MCP_1C_REQUEST_TIMEOUT, секунды).
  • В мультибазовом режиме --cache-dir задаётся одним каталогом на все базы, без префиксов имя= (в отличие от --dump, --base, --reindex, --skip). Если указать --cache-dir имя=путь, путь окажется некорректным; на Windows это проявляется ошибкой вида mkdir .\имя=D: (двоеточие недопустимо в имени каталога). Правильно: один общий --cache-dir D:/AI/.cache без префикса, либо не указывать флаг вовсе. Подробнее в статье про мультибазовость.

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