omnichannel-configserver-mcp
MCP-сервер для управления платформой Omnichannel через API
config_server: развёртывание релизов и эксплуатация — из любого
AI-ассистента, без веб-интерфейса.
Сервер реализует Model Context Protocol и
работает как обычный stdio-процесс: Claude Desktop, Cursor или любой другой
MCP-клиент запускает его локально, а он транслирует запросы ассистента в HTTP API
config_server. Состояния не хранит.
Возможности
- Развёртывание — схема и манифест стенда, выгрузка релиза (пакеты и образы), запуск сервисов на одном или нескольких серверах, обновление фронта.
- Эксплуатация — сводка по стенду, статусы сервисов и хостов, аудит задач агентов, журналы миграций, диагностика сопоставления IP.
- Конфигурация — чтение и изменение compose/env, версии и безопасный откат, повторная выдача конфига агенту.
- Безопасность — режим «только чтение», отдельные read-only креды, подтверждение разрушительных операций, секреты только из окружения.
Требования
- Запущенный
config_server1.1.0+, доступный по сети (http://host:5005). - Учётная запись
config_server. - Go 1.27+ для сборки.
- MCP-клиент, поддерживающий stdio-серверы.
Быстрый старт
export GOPRIVATE=git.totmin.ru
go build -o omnichannel-configserver-mcp .
./omnichannel-configserver-mcp --health # -> ok
cp examples/config.single-server.json config.json # укажите base_url
export OMNI_USER=admin OMNI_PASSWORD='...'
./omnichannel-configserver-mcp --check-config -config config.json
Подключение к клиенту (общий вид):
{
"mcpServers": {
"omnichannel-configserver-mcp": {
"command": "/opt/omnichannel-configserver-mcp/omnichannel-configserver-mcp",
"args": ["-config", "/opt/omnichannel-configserver-mcp/config.json"],
"env": { "OMNI_USER": "admin", "OMNI_PASSWORD": "СЕКРЕТ" }
}
}
}
Проверка: попросите ассистента «покажи, что сейчас на стенде» — он вызовет
server_info и overview.
Пример: деплой за несколько шагов
Один сервис (уже зарегистрирован в config_server):
«Обнови compose сервиса
demo_webна образnginx:1.27, подними и дождись результата.»
Ассистент: set_compose → deploy → get_task → overview.
Релиз на несколько серверов:
«Сохрани schema.json и manifest.json, разложи хосты, скачай релиз с образами, дождись завершения и запусти сервисы.»
Ассистент: save_deployment_files → ip_match → seed_hosts →
download_release → release_job → start_services → deployment_tasks →
overview.
Подробные playbooks (1 сервер, N серверов, фронт, откат) с форматами
schema.json/manifest.json — docs/deployment.md.
Готовые формулировки промптов — examples/prompts.md.
Демо без прода
docker compose -f examples/demo/docker-compose.yml up -d # локальный config_server v1.1.0
go build -o omnichannel-configserver-mcp .
python3 examples/demo/demo.py # сквозной сценарий через MCP
python3 examples/demo/e2e.py # + реальный config-agent: deploy/restart/down
docker compose -f examples/demo/docker-compose.yml down -v
Подробнее — examples/demo/README.md.
Документация
- docs/getting-started.md — установка и первое подключение
- docs/configuration.md — полный справочник конфигурации
- docs/tools.md — все 36 инструментов
- docs/deployment.md — развёртывание: 1 сервер, N серверов, фронт, откат
- docs/operations.md — эксплуатация и диагностика
- docs/security.md — модель безопасности
- docs/architecture.md — как устроено внутри
- docs/api-compatibility.md — версии API
- docs/mcp-clients.md — подключение к клиентам
Безопасность (кратко)
read_only: trueпо умолчанию; мутации требуют явногоread_only=false.- Разрушительные операции требуют
confirm="true". - Read-инструменты могут ходить под отдельными read-only кредами.
- Секреты — только из переменных окружения или
config.local.json(не в git). - Подробно — docs/security.md.
Разработка
export GOPRIVATE=git.totmin.ru
make build # собрать бинарник
make ci # build + test(race) + lint + tidy-check
make demo # поднять локальный стенд и прогнать сквозной сценарий
Подробнее — CONTRIBUTING.md.
Лицензия
Apache-2.0 — см. LICENSE. Внутренний проект компании.