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

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

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

Omnium -> MCPO (HTTPS + Bearer) -> 1c_mcp (stdio, локально) -> 1С (HTTP-сервис /hs/mcp/)

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

  • Omnium продолжает администрироваться со стороны Omnium.
  • Вы администрируете и свой контур 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-адреса Omnium, который будет передан отдельно.

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

.../hs/mcp/...

в .

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

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

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

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

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

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

https://<ваш_mcpo_host>

Bearer-токен MCPO_API_KEY.

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

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