Управление инфраструктурой с ИИ-агентами через MCP
Как ИИ-агенты работают с Opfield через MCP-сервер: OAuth с ограниченными правами, журнал аудита, защита от случайностей, инструменты Docker и пример обычного исправления.
Автор: команда Opfield3 мин чтения
У Opfield есть MCP-сервер рядом с REST API. Любой MCP-клиент — агент для программирования в редакторе или чат-приложение — может к нему подключиться и работать с теми же ресурсами, которые человек видит в интерфейсе: маршрутами, контейнерами, управляемыми базами данных, Pages, алертами и узлами. Ниже о том, как этот доступ остаётся безопасным и как выглядит типичная сессия.
Те же правила, что и для человека
Отдельной модели прав для агентов нет. MCP-клиент подключается к https://<your-opfield>/api/mcp и входит через OAuth от имени пользователя. На экране согласия пользователь выбирает, какие права получит клиент, и эти права никогда не превышают его собственные. Доступ, ограниченный папками, узлами или отдельными ресурсами, работает так же: агент с доступом к папке одного приложения видит только её. Агент может вызвать get_my_access и узнать, что ему выдано и где он может создавать ресурсы.
Агенты могут делать с ресурсами почти всё, что может человек. Несколько вещей намеренно остаются только в браузере: имперсонация, согласие OAuth, создание API-токенов и авторизаций, собственный вход и сессии пользователя. Выдать себе больше прав агент не может.
MCP-эндпоинт принимает только OAuth-токены, выпущенные для него; токены REST API там не работают. Кроме того, у пользователя должно быть право на MCP, так что администратор решает, кому вообще можно подключать агентов.
Всё попадает в журнал аудита
Каждое действие агента проходит те же проверки, что и клик в интерфейсе, и записывается в тот же журнал аудита — с пользователем и токеном, от которых оно пришло. Чтобы узнать, что агент изменил за ночь, достаточно открыть журнал аудита.
Защита от случайностей
Права определяют, что агенту можно. Но некоторые ошибки случаются и в рамках прав, поэтому в Opfield есть дополнительные предохранители:
- Защита консоли. Агенты могут выполнять команды в консоли узла от root и чинить узел. Docker, containerd и Podman там скрыты, а команда с Docker отклоняется с указанием инструмента Opfield, который нужно использовать. Это защита от случайностей, а не граница безопасности: она не даёт агенту изменить управляемый контейнер в обход Opfield.
- Без SSH на узлы. Агенты не могут выполнять команды по SSH на хостах, которые являются узлами Opfield. Для этого есть консоль узла с защитой.
- Изменения в обход Opfield видны. Если управляемый контейнер всё же остановят, изменят или удалят вручную, сработает встроенный алерт «Container changed outside Opfield».
- Безопасные повторы. Операции создания принимают ключ идемпотентности, поэтому агент, повторивший запрос после таймаута, не создаст дубликат.
Инструменты Docker вместо shell
Большая часть работы агента с нагрузками идёт через отдельные инструменты, а не команды shell: список контейнеров на всех Docker-узлах, логи и метрики, перезапуск, обновление образа, настройка, деплойменты со слотами и откатом, Compose-проекты, тома, сети и Git-источники со сборками. Поскольку это операции Opfield, маршруты, Secure Links и доступность после изменения остаются согласованными, а каждый шаг попадает в аудит.
Перед изменениями агенты могут прочитать документацию и навыки Opfield прямо через MCP.
Пример: сервис падает
Пользователь пишет агенту: «Billing API с утра отвечает 502. Разберись и почини». Типичная сессия:
find_resourceнаходит маршрут и контейнер за ним;get_routeпоказывает upstream.get_docker_containerпоказывает, что контейнер постоянно перезапускается, а его Git-источник в 07:40 развернул новую сборку.get_docker_container_logsпоказывает, что процесс завершается при старте: не хватает новой обязательной переменной окружения.- Агент сообщает об этом и предлагает два варианта: откатиться на предыдущую сборку или добавить переменную.
- Пользователь выбирает откат. Агент вызывает
manage_docker_sourceсrollback, затем снова проверяет логи и маршрут: контейнер работает, маршрут отвечает 200. Откат виден в журнале аудита под именем пользователя.
Никому не понадобился shell-доступ к серверу, и агент не вышел за пределы прав самого пользователя.
Как начать
Добавьте MCP-сервер в свой клиент, указав адрес вашего Opfield, войдите и выберите права. Начните с прав только на чтение, посмотрите в журнале аудита, что делает агент, и расширяйте доступ по мере появления уверенности. Если не хочется настраивать клиент, встроенный в Opfield ассистент использует те же инструменты и те же правила.