Безпечні за замовчуванням MCP-сервери для Kubernetes, Kafka і хмарних операцій
Вісім MCP-серверів дають агентам працювати з Kubernetes, Kafka, ClickHouse і Azure через режим лише для читання за замовчуванням, списки дозволів, прапорці видалення, журнали аудиту й анотації.
Пустити ШІ-агента в продакшен-інфраструктуру — простий спосіб рухатися швидко. І такий самий простий спосіб утратити базу даних через трохи розмитий промпт. Model Context Protocol (MCP) дає змогу без зусиль видати агентові інструменти на кшталт «показати поди», «перезапустити деплоймент» і «виконати цей запит». Але в інфраструктурі той самий механізм так само легко віддає delete_topic, DROP TABLE або delete_resource_group. Звична порада — просто не вмикати небезпечні інструменти, але тоді сервер стає марним саме тоді, коли ці операції потрібні.
Одна з відповідей — родина з восьми MCP-серверів, побудованих на одному принципі. Кожен безпечний за замовчуванням, а його можливості ви розширюєте свідомо. Нижче — як влаштований цей підхід і що охоплює набір.
Рушій політик
Усі вісім серверів використовують спільний рушій політик, що тримається на чотирьох ідеях.
Багаторівневі режими доступу. Сервер стартує в режимі лише для читання. Щоб перейти до читання й запису, а потім до режиму адміністратора, треба свідомо змінити змінну середовища. Ключова деталь у тому, що інструменти вище за поточний режим узагалі не реєструються. У режимі лише для читання агент не бачить інструмента видалення, від виклику якого він чемно відмовляється. Цього інструмента просто немає в його списку, а те, чого немає, неможливо використати на шкоду.
Списки дозволів і захищені ресурси. Сервер можна обмежити конкретними просторами імен, топіками, базами даних, проєктами або підписками. Деякі ресурси можна позначити як захищені, наприклад простір імен kube-system, внутрішній топік Kafka або master realm у Keycloak. Захищені ресурси лишаються доступними для читання, але змінити їх не можна ніколи, навіть у режимі адміністратора.
Руйнівні дії за другим перемикачем. Видалення та інші незворотні операції потребують режиму адміністратора й окремої явної згоди, наприклад KAFKA_ALLOW_DELETE=true. Свіжа інсталяція нічого не може знищити навіть на найвищому рівні, доки ви двічі не підтвердите намір.
Видимий журнал аудиту. Кожна дія пише в stderr структурований рядок JSON із прихованими секретами, тож згодом легко побачити, що зробив агент.
У підсумку маєте регулятор, а не вимикач. Довіра передається кроками, якими керуєте ви, замість вибору між марним сервером і лячним.
Модель безпеки, зрозуміла машині
До версії 0.1.1 модель безпеки жила тільки в README. Люди могли її прочитати, а застосунок, у якому працює агент (Claude Desktop, Cursor, Copilot), — ні.
У MCP для цього вже є механізм: анотації інструментів. Інструмент може повідомляти структуровані підказки, а саме readOnlyHint, destructiveHint, idempotentHint і openWorldHint, за якими хост вирішує, що схвалювати автоматично, а де зупинитися й запитати.
Тепер ці підказки виставлено для кожного інструмента в усіх восьми серверах, і вони автоматично виводяться з рівня доступу інструмента. Інструмент читання оголошує себе таким, що лише читає і нічого не руйнує. Інструмент видалення оголошує себе руйнівним. Так хост може оцінити радіус ураження інструмента до запуску за структурованими метаданими, а не розбирати опис англійською в надії на краще. Тест перевіряє, що кожна підказка відповідає інструментові, який вона описує. Це різниця між «повірте, це безпечно» і твердженням, яке може перевірити машина.
Вісім серверів
Кожен сервер поширюється за ліцензією MIT, написаний на TypeScript і встановлюється однією командою npx.
- mcp-kubernetes охоплює поди, логи, деплойменти, масштабування й перезапуски, apply та exec.
- mcp-kafka працює з топіками, групами споживачів і відставанням, а також з операціями створення, зміни та скидання.
- mcp-clickhouse відкриває схеми й запити та класифікує SQL як читання, запис або руйнівну операцію, щоб пропускати кожен вираз через перевірку.
- mcp-debezium керує конекторами захоплення змін даних, зокрема статусом, конфігурацією та життєвим циклом.
- mcp-oci знаходить ресурси Oracle Cloud і генерує Terraform.
- mcp-azure працює з Azure Resource Manager: інвентаризація, теги, стан живлення ВМ і життєвий цикл.
- mcp-azure-devops дає доступ до дошок, репозиторіїв, пайплайнів і проєктів.
- mcp-keycloak охоплює realms, користувачів, клієнтів, ролі та групи.
Як спробувати
Щоб додати сервер у Claude Code, вистачить одного рядка, і стартує він у режимі лише для читання:
claude mcp add kubernetes -e K8S_MODE=read-only -- npx -y @dockndevai/mcp-kubernetes
У кожному репозиторії описано налаштування для Claude, Cursor, Codex, VS Code і Windsurf. Вихідний код лежить на GitHub, пакети опубліковано в npm.
Відкрите питання
Одне проєктне рішення викликає суперечки: вимагати і режиму адміністратора, і окремого прапорця згоди для кожної операції, перш ніж виконається руйнівна дія. Чи не надто це суворо для реальної роботи, чи це саме правильна поведінка за замовчуванням, коли інфраструктуру передають агентові? Команди доходять різних висновків: від вічного режиму лише для читання до поступової довіри, що зростає разом із впевненістю. Хоч яка позиція вам підійде, основна ідея лишається чинною: робіть найбезпечнішу поведінку поведінкою за замовчуванням і вимагайте чітких, свідомих кроків, щоб її послабити.