Эта инструкция описывает подключение Омниум к через промежуточный слой MCPO и локальный сервер 1c_mcp.

Как устроена схема

Рабочая цепочка выглядит так:

%%{init: { "theme": "base", "themeVariables": { "background": "#ffffff", "primaryColor": "#f3f4f6", "primaryBorderColor": "#9ca3af", "primaryTextColor": "#111827", "lineColor": "#4b5563", "secondaryColor": "#e5e7eb", "tertiaryColor": "#f9fafb", "edgeLabelBackground": "#f9fafb" } }}%% flowchart LR OmniumSrv["Омниум
отдельный виртуальный сервер"] <-->|"HTTPS + Bearer"| MCPO["MCPO
прокси в вашем контуре"] MCPO <-->|"stdio"| MCP["1c_mcp
локально у вас"] MCP <-->|"HTTP /hs/mcp/"| OneC["1С
локально у вас"]

Если коротко:

  • находится в вашем локальном контуре.
  • MCPO и 1c_mcp тоже работают на вашей стороне.
  • Омниум подключается к внешнему MCPO по HTTPS с Bearer-токеном.

Важно заранее

  • Вы администрируете и свой контур MCPO.
  • Наружу публикуется только MCPO.
  • HTTP-сервис напрямую в интернет не публикуется.

Что вы получаете

В поставку входят два архива:

  1. MCP_Server.cfe — расширение для .
  2. 1C MCP Proxy — контейнер и конфигурация для связки с MCPO.

Часть 1. Настройка 1С

Шаг 1. Создайте технического пользователя

Создайте в отдельного технического пользователя для интеграции с правами только на чтение.

Шаг 2. Установите расширение MCP_Server.cfe

Администрирование -> Расширения конфигурации -> Добавить из файла

Шаг 3. Перезапустите сеанс

Шаг 4. Опубликуйте сервис

mcp

Шаг 5. Проверьте доступность ручки /health

curl https://<ваш_адрес>/<ваша_публикация>/hs/mcp/health

Ожидаемый ответ:

{"status":"ok"}

Часть 2. Настройка MCPO и 1C MCP Proxy

Шаг 1. Распакуйте архив 1C MCP Proxy

Распакуйте архив 1C MCP Proxy на сервере с Docker.

Шаг 2. Заполните config.json

Заполните config.json параметрами подключения к :

{
  "mcpServers": {
    "1c": {
      "command": "python",
      "args": ["-m", "py_server"],
      "env": {
        "PYTHONPATH": "/app/1c/src",
        "MCP_ONEC_URL": "https://<ваш_адрес>/<ваша_публикация>",
        "MCP_ONEC_USERNAME": "<тех_пользователь_1с>",
        "MCP_ONEC_PASSWORD": "<пароль>"
      }
    }
  }
}

Важно

MCP_ONEC_URL указывается без суффикса /hs/mcp.

Шаг 3. Сгенерируйте Bearer-токен

openssl rand -hex 32

Шаг 4. Соберите и запустите контейнер

docker build -f Dockerfile.mcpo -t 1c-mcpo:latest .
docker run -d \
  --name 1c-mcpo \
  -p 8000:8000 \
  -e MCPO_API_KEY='<ваш_длинный_токен>' \
  --restart unless-stopped \
  1c-mcpo:latest

Шаг 5. Проверьте запуск MCPO с --api-key

Убедитесь, что MCPO стартует, например, так:

mcpo --host 0.0.0.0 --port 8000 --api-key "${MCPO_API_KEY}" --config /app/config.json

Часть 3. Проверка

Проверьте, что MCPO поднялся:

curl https://<ваш_mcpo_host>:8000/health

Проверьте, что без Bearer-токена доступ закрыт:

curl -X POST "https://<ваш_mcpo_host>/1c/list_metadata_objects" \
  -H "Content-Type: application/json" \
  -d '{"metaType":"Catalogs","maxItems":1}'

Ожидаемый результат: 401 или 403.

Проверьте, что с токеном запрос проходит:

curl -X POST "https://<ваш_mcpo_host>/1c/list_metadata_objects" \
  -H "Authorization: Bearer <ваш_длинный_токен>" \
  -H "Content-Type: application/json" \
  -d '{"metaType":"Catalogs","maxItems":1}'

Часть 4. Сетевые ограничения

Разрешите доступ к MCPO только с IP-адреса Омниум, который будет передан отдельно.

Запретите прямой внешний доступ к маршрутам:

.../hs/mcp/...

в .

Используйте HTTPS на внешнем входе в MCPO.

Где настраивать блокировку

Ограничение внешнего доступа к .../hs/mcp/... задаётся на уровне веб-сервера, например Apache или IIS, а не внутри самой .

Часть 5. Что передать для подключения

После настройки передайте:

Внешний HTTPS-адрес MCPO, например:

https://<ваш_mcpo_host>

Bearer-токен MCPO_API_KEY.

Подтверждение, что IP Омниум добавлен в allowlist.

После этого можно выполнить финальную проверку подключения Омниум к вашему MCP.