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С исходящие соединения запрещены.
Фикс для файловой базы:
- Все функции -> Расширения конфигурации.
- Выберите
MCP_Polling. - Снимите флажок «Безопасный режим».
- Перезапустите 1С.
Фикс для клиент-серверной базы:
- Создайте профиль безопасности (через RAC или консоль кластера).
- Разрешите интернет-ресурс: хост и порт из
--listen. - Назначьте профиль в поле «Профиль безопасности безопасного режима» информационной базы.
- Перезапустите сеансы.
«Защиту от опасных действий» при этом трогать не нужно. Начиная с версии 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, envMCP_1C_MAX_RESPONSE_SIZE) и увеличивается для больших баз с расширениями. Передачу очень большого ответа регулирует--request-timeout(envMCP_1C_REQUEST_TIMEOUT, секунды).
Если ошибка не из этого списка, начните с логов клиента и проверки --base на доступность. Установка с нуля и описание всех флагов: документация, общий обзор продукта на главной.