Начало работы

Конфигурация

Режимы подключения к базе 1С, мультибазовость, аутентификация, выгрузка конфигурации и long polling.

MCP-1C поддерживает два режима подключения к базе 1С:

Файловая база

Прямое подключение к .1CD файлу через HTTP-сервис 1С.

mcp-1c --base http://localhost:8080/hs/mcp-1c

Клиент-серверная база

Через HTTP-сервис, опубликованный на сервере 1С (Apache/IIS).

mcp-1c --base http://server:8080/erp/hs/mcp-1c \
  --user Admin --password secret

Мультибазовость Расширенная

Расширенная версия позволяет подключить несколько баз 1С одновременно. Каждая база получает имя, по которому AI-ассистент выбирает нужную:

mcp-1c-advanced \
  --base dev=http://localhost:8080/hs/mcp-1c \
  --base prod=http://prod-server:8080/erp/hs/mcp-1c \
  --auth dev=Admin:pass123 \
  --auth prod=ReadOnly:readonly \
  --dump dev=/path/to/dev/dump \
  --default-base dev

Совет: Флаг --default-base задает базу по умолчанию. Если не указан, используется первая.

Важно с v2.30.0: имя базы в --auth, --dump и --reindex должно совпадать с именем из --base. Опечатка в имени раньше проходила молча, и база поднималась без выгрузки или без учётных данных, а теперь сервер останавливается на старте с сообщением Configuration error: dump называет базу "имя", которая не настроена. Подробности и разбор пограничного случая с короткой формой --dump ПУТЬ есть в справочнике CLI.

Важно про --cache-dir: в мультибазовом режиме это один общий флаг на все базы, префиксы вида имя=путь он не поддерживает (в отличие от --dump, --base, --reindex). Отдельный каталог на каждую базу не нужен: кэш и так раскладывается по своим подкаталогам по хэшу пути к дампу. Если указать --cache-dir имя=путь, сервер возьмет значение целиком строкой и путь окажется некорректным (на Windows это ошибка вида mkdir .\имя=D:). Задавайте один каталог без префикса, например --cache-dir D:/AI/.cache, либо не указывайте флаг.

Аутентификация

Три способа задать учетные данные (по приоритету):

  1. Флаги CLI: --user и --password (или --auth NAME=USER:PASS в мультибазовом режиме)
  2. Переменные окружения: MCP_1C_USER и MCP_1C_PASSWORD
  3. Без аутентификации (если HTTP-сервис 1С не требует авторизации)

Выгрузка конфигурации (--dump)

Для полнотекстового поиска по коду модулей (code_search(action: "text")) необходима выгрузка конфигурации в файлы:

# 1. Выгрузите конфигурацию из Конфигуратора:
# Конфигурация → Выгрузить конфигурацию в файлы...

# 2. Укажите путь при запуске:
mcp-1c --base http://localhost:8080/hs/mcp-1c \
  --dump "C:\dumps\erp"

# Принудительная перестройка индекса (игнорирует кэш):
mcp-1c --base http://localhost:8080/hs/mcp-1c \
  --dump "C:\dumps\erp" --reindex

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

Long Polling Расширенная

Long polling позволяет подключить базу 1С без Apache/IIS. Go-сервер поднимает HTTP-эндпоинт, а 1С сама ходит за задачами через регламентное задание.

[Claude/Cursor] --stdio--> [mcp-1c-advanced] --HTTP :9090--> [1С polling client]
                                ^                                    |
                                |                                    v
                            TaskQueue <--- POST /result/{id} --- [Обработка запроса]
                                |
                            GET /poll (long poll, 25 сек)

Требования:

  • Платформа 1С 8.3.23+ (регламентные задания в расширениях)
  • Для автозапуска: клиент-серверный режим (1С Сервер + PostgreSQL/MS SQL)
  • В файловом режиме регламентные задания работают только при открытом клиенте 1С

В режиме фонового опроса анализ подсистем (analyze_subsystems) работает без выгрузки конфигурации: поиск объектов вне подсистем, состав и пересечения подсистем доступны прямо по живой базе (v2.29.0).

Шаг 1. Установка расширения

Обновились на 2.33.0? Переустановите расширение опроса

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

Выглядело это исправно: установка доходила до конца, оба расширения числились в базе активными, установщик выводил те же строки, что и при успешной установке, ошибок не было ни у установщика, ни в журнале регистрации. Фактически опрос не шёл, потому что в базу не попадали ни регламентное задание MCP_PollingJob, ни модули расширения опроса. Замерено на платформе 8.3.27.2130.

Что сделать. Обновите бинарник до 2.33.0 и повторите команду --install-polling с теми же параметрами, что и при первой установке. Адрес сервера и учётные данные опроса установщик записывает внутрь расширения, поэтому передать их нужно заново. Расширение HTTP-сервиса переустанавливать не требуется.

Удалять расширение перед этим не нужно. Установщик кладёт новую версию поверх старой, и недостающие объекты возвращаются в базу. Отдельная команда удаления расширения на части платформ открывает окно Конфигуратора и подвисает, поэтому мы её не применяем заранее и вам не советуем.

Кого это касается. Всех, у кого расширение опроса установлено, а не только тех, у кого сейчас стоят оба. Пока в базе лежит расширение опроса из более ранней версии, тот же конфликт возникнет и позже, если расширение HTTP-сервиса поставят в эту же базу. Переустановка снимает эту возможность заранее. Если расширение опроса вы не ставили, делать ничего не нужно.

Как убедиться, что помогло. Главное меню → Все функции (или «Функции для технического специалиста») → Стандартные → Регламентные и фоновые задания. Задание MCP_PollingJob должно появиться в списке. Если пункта «Все функции» в меню нет, включите его: Сервис → Параметры.

Файловая база:

mcp-1c-advanced --install-polling /path/to/database \
  --poll-user myuser \
  --poll-password mypassword12

Клиент-серверная база:

mcp-1c-advanced --install-polling "SERVER01\MyDatabase" \
  --server \
  --poll-user myuser \
  --poll-password mypassword12 \
  --db-user admin \
  --db-password dbpass

Что происходит при установке:

  1. Находит платформу 1С автоматически
  2. Устанавливает расширение MCP_Polling. Механизм зависит от типа базы. Клиент-серверная база (флаг --server) всегда ставится через Конфигуратор (DESIGNER). Для файловой базы сначала ищется ibcmd, и только если он не найден, установка переключается на Конфигуратор. Учётные данные информационной базы передаются при необходимости. Описание снято с версии 2.33.0, более ранние версии мы не проверяли
  3. Расширение содержит модуль MCP_PollingClient и регламентное задание MCP_PollingJob
  4. Авторестарт при сбое: 3 попытки, интервал 60 секунд
  5. Настройки подключения встраиваются в код модуля
ПараметрОписание
--poll-user / --poll-passwordУчетные данные Basic Auth между Go-сервером и 1С
--db-user / --db-passwordПользователь базы 1С для DESIGNER
--serverСерверный режим подключения
--platform /pathПуть к платформе 1С (если не определяется автоматически)
--platform-versionВерсия платформы 1С (например 8.3.27). Определяется из пути, если не указана. Минимум для --install-polling: 8.3.23, установка на более раннюю платформу отклоняется. У команды --install минимум другой, 8.3.10. Если версию определить не удалось, проверка не выполняется и установка печатает предупреждение. На установку клиента опроса флаг действует с версии 2.33.0. По умолчанию: авто
--poll-server-url URLURL Go-сервера (по умолчанию http://localhost:9090)
MCP_1C_IBCMD_PATH (переменная окружения)Полный путь к ibcmd для установки в файловую базу. Если переменная задана, путь берётся из неё и больше нигде не ищется. Если не задана, ibcmd ищется по имени в каталогах $PATH, а затем в известных каталогах установки платформы 1С. Третий шаг добавлен в версии 2.33.0

Установка на сервере Linux без графической оболочки

На серверной установке платформы из типового tarball исполняемый файл ibcmd лежит в каталоге платформы и на $PATH не попадает. Замерено на двух хостах, Debian 13 и Ubuntu 24.04, платформа 8.3.27.2130: путь вида /opt/1cv8/x86_64/8.3.27.2130/ibcmd. Начиная с версии 2.33.0 такие каталоги входят в поиск, поэтому при установке платформы в её обычный каталог настраивать для этого ничего не нужно.

Задавайте MCP_1C_IBCMD_PATH тогда, когда платформа установлена в нестандартный каталог.

MCP_1C_IBCMD_PATH=/opt/1cv8/x86_64/8.3.27.2130/ibcmd \
  mcp-1c-advanced --install-polling /path/to/database \
  --poll-user myuser \
  --poll-password mypassword12

Если ibcmd не найден ни переменной MCP_1C_IBCMD_PATH, ни в $PATH, ни в каталогах установки платформы, установка уходит на Конфигуратор, а он на машине без графического окружения может не запуститься. В этом случае установка печатает предупреждение, перечисляет полным списком каталоги, в которых искала, и показывает, как задать путь вручную. Для клиент-серверной базы Конфигуратор используется всегда, поэтому на неё эта переменная не влияет.

Шаг 2. Настройка AI-клиента

Флаг --base объявляет базу данных в формате NAME=URL. Схема poll:// указывает MCP-серверу маршрутизировать запросы через очередь задач вместо прямого HTTP-подключения к 1С. Флаг --listen задает адрес HTTP-сервера, к которому 1С будет подключаться для получения задач. Оба флага обязательны: --base mydb=poll:// объявляет polling-базу, --listen :9090 запускает HTTP-сервер.

Файл: claude_desktop_config.json

{
  "mcpServers": {
    "mcp-1c": {
      "command": "/path/to/mcp-1c-pro",
      "args": [
        "--base", "mydb=poll://",
        "--listen", ":9090",
        "--poll-user", "myuser",
        "--poll-password", "mypassword12"
      ]
    }
  }
}

Для Расширенной версии замените mcp-1c-pro на mcp-1c-advanced.

Шаг 3. Проверка

  1. Запустите AI-клиент - MCP-сервер стартует и слушает :9090
  2. Регламентное задание автоматически начинает polling
  3. В журнале регистрации 1С: "MCP.Polling: polling loop started"
  4. Проверка здоровья: curl http://localhost:9090/health

HTTP-эндпоинты

ЭндпоинтМетодОписание
/pollGETLong poll, таймаут 25 сек. 200 + JSON при наличии задачи, 204 если задач нет
/result/{id}POSTРезультат выполнения задачи. 200 при успехе, 404 если задача не найдена
/healthGETПроверка здоровья сервера. Без авторизации

Важно: /poll и /result требуют Basic Auth (--poll-user/--poll-password).

Сравнение режимов

КритерийHTTP-сервис (стандартный)Long Polling
Мин. версия платформы8.3.108.3.23
Требует Apache/IISДаНет
Файловый режимРаботает всегдаТолько при открытом клиенте 1С
Автоматический запускПосле публикацииКлиент-серверный: да, файловый: нет
Задержка~50 мсДо 25 сек на первый запрос, далее мгновенно
НастройкаСложнее (Apache/IIS + публикация)Одна команда

Отладка

  • Журнал регистрации 1С: события с источником "MCP.Polling"
  • Проверка здоровья: curl http://localhost:9090/health
  • Ручная проверка polling: curl -u user:pass http://localhost:9090/poll --max-time 30
  • Регламентное задание: Администрирование → Регламентные и фоновые задания → MCP_PollingJob
  • Файловый режим: регламентные задания работают только при открытом клиенте 1С

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

Расширение опроса (MCP_Polling) создаёт исходящее HTTP-соединение к серверу mcp-1c. В безопасном режиме 1С это запрещено, и опрос завершается этой ошибкой. Нужно разрешить расширению это соединение. Способ зависит от типа базы.

Клиент-серверная база

  1. Откройте консоль администрирования серверов 1С (или утилиту RAC).
  2. Создайте профиль безопасности: кластер → Профили безопасности → Создать. Включите флаг «Профиль безопасного режима»; флаг «Полный доступ к интернет-ресурсам» оставьте выключенным.
  3. Добавьте в профиль разрешённый интернет-ресурс: Протокол: HTTP (или HTTPS, если соединение защищённое); Адрес: хост mcp-1c без протокола и порта (например, localhost); Порт: порт из --listen (например, 9090); Имя: любое уникальное.
  4. В свойствах информационной базы укажите этот профиль в поле «Профиль безопасности безопасного режима» (именно безопасного режима, оно управляет кодом расширения).
  5. Перезапустите сеансы базы: изменения профиля применяются после отключения последнего соединения.

Файловая база

  1. В 1С:Предприятии с правами администратора откройте: «Все функции» (или «Функции для технического специалиста») → Расширения конфигурации.
  2. Выберите расширение MCP_Polling.
  3. Снимите у него флажок «Безопасный режим».
  4. Перезапустите 1С:Предприятие.

«Защиту от опасных действий» трогать не нужно: это другой механизм, на эту ошибку он не влияет.

Автоматическая настройка профиля безопасности

Доступно с v2.20.0.

Команда --configure-security-profile автоматизирует ручную процедуру выше для клиент-серверной базы: через утилиту 1С rac она создаёт (или переиспользует) профиль безопасности, разрешает в нём интернет-ресурс сервера опроса и назначает профиль информационной базе. Значение флага задаёт адрес запущенного сервера администрирования ras (например, localhost:1545). Для клиент-серверной базы команде нужны --server, --infobase-name и --poll-server-url.

mcp-1c-advanced --configure-security-profile localhost:1545 \
  --server --infobase-name AccBase \
  --poll-server-url http://10.0.0.5:9090

Перед изменениями команда показывает план и спрашивает подтверждение. Чтобы заранее увидеть точные команды rac (пароли скрыты) и ничего не менять, добавьте --dry-run:

mcp-1c-advanced --configure-security-profile localhost:1545 \
  --server --infobase-name AccBase \
  --poll-server-url http://10.0.0.5:9090 --dry-run

Параметры команды

ФлагНазначение
--configure-security-profile <ras>Включает команду. Значение: адрес сервера администрирования ras, например localhost:1545.
--serverКлиент-серверная база (обязателен для автоматической настройки).
--infobase-name <имя>Имя информационной базы в кластере, к которой привязывается профиль (обязателен для клиент-серверной базы).
--poll-server-url <URL>Адрес сервера опроса, который нужно разрешить в профиле (по умолчанию http://localhost:9090).
--rac-path <путь>Путь к утилите rac (переменная окружения MCP_1C_RAC_PATH). По умолчанию ищется в $PATH и в каталоге установки сервера 1С.
--profile-name <имя>Имя создаваемого или переиспользуемого профиля (по умолчанию mcp-1c).
--cluster-user / --cluster-pwdАдминистратор кластера (если в кластере включено администрирование). Пароль не пишется на диск и скрыт в выводе.
--infobase-user / --infobase-pwdАдминистратор информационной базы (если включено администрирование). Пароль не пишется на диск и скрыт в выводе.
--dry-runПоказать план и точные команды rac (пароль скрыт) без выполнения.
--yesПропустить запрос подтверждения (для автоматизации).
  • На Windows rac находится автоматически (в том числе в Program Files (x86)\1cv8\<версия>\bin), поэтому --rac-path на стандартной установке обычно указывать не нужно.
  • Для файловой базы команда ничего не меняет, а печатает ручные шаги (см. процедуру для файловой базы выше). Если rac не найден, команда тоже печатает ручные шаги и не прерывается с ошибкой.

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