diff --git a/README.md b/README.md index 6390605..55e7a6a 100644 --- a/README.md +++ b/README.md @@ -410,11 +410,23 @@ | `service_incidents` | журнал моментов недоступности сервиса (периоды down+degraded) | | `events_recent` | хвост единого журнала событий с фильтром по severity | -Все тулы read-only — агент наблюдатель: отвечает «как мои серверы?», -«что тормозит на web-01?», «растёт ли диск на db-01 за сутки?», «сервис -упал ночью?» без доступа к веб-интерфейсу. Инструкции агенту панели -отдаются при подключении (`instructions`) и как MCP-prompt `agent_guide` — -агент сам выбирает подходящий инструмент по вопросу. +Тулы управления (запись): + +| Tool | Что делает | +| --- | --- | +| `server_create` | регистрирует сервер и возвращает ключ агента `ghm_…` — **показан один раз**, агент обязан сохранить сразу | +| `server_delete` | удаляет сервер необратимо: метрики и журнал стираются каскадом | +| `service_create` | добавляет health-чек; первая проба выполняется сразу | +| `service_delete` | удаляет сервис; история проб стирается | + +Читающие тулы — «наблюдательская выборка» («как мои серверы?», «что +тормозит на web-01?», «сервис упал ночью?»). Запись доступна всем валидным +ключам (модель доступа панели: любая сессия = админ), но инструкции агенту +разрешают запись только по явной просьбе человека; запись лимитирована +(≤20 вызовов за 10 минут, сверх — `{"error": 429}`), ошибки приходят как +данные (`{"error": 404/422/429, "detail": …}` — конвенция handbook'а). +Инструкции агенту панели отдаются при подключении (`instructions`) и как +MCP-prompt `agent_guide` — агент сам выбирает подходящий инструмент по вопросу. Подключение (Claude Code): @@ -436,7 +448,10 @@ - вместо архива — **ревок**: ключ перестаёт работать сразу; списки сохраняют отозванные с хвост-хинтом, plaintext никогда не возвращается; - у ключа снейпшот роли владельца на момент выпуска; набор MCP-инструментов - у всех ключей одинаков — данные панели общие, тулы read-only; + у всех ключей одинаков — данные панели общие: читающие тулы открыты всем, + записывающие (создание/удаление серверов и сервисов) работают с любого + валидного ключа: модель доступа панели «любая сессия = админ»; + запись ограничена rate-limit'ом, удаление каскадно; - блокировка пользователя в gnexus-auth (вебхук `user.blocked/deleted/archived`) отзывает все его ключи; простой SSO-логаут ключи **не** трогает — это самостоятельные креды;