CloudNativePG MCP Server
MCP-сервер CloudNativePG
MCP-сервер для управления кластерами PostgreSQL через оператор CloudNativePG.
Эта версия использует каркас MCP Base для структуры сервера, аутентификации, сборки контейнера, чарта Helm, реестра промптов и тестовой обвязки. Предыдущая ручная реализация сохранена в deprecated-v1/ для справки.
Набор инструментов
Сервер предоставляет инструменты CloudNativePG из реализации v1:
list_postgres_clustersget_cluster_statuscreate_postgres_clusterscale_postgres_clusterdelete_postgres_clusterlist_postgres_rolescreate_postgres_roleupdate_postgres_roledelete_postgres_rolelist_postgres_databasescreate_postgres_databasedelete_postgres_database
Он также включает административные инструменты каркаса MCP Base для управления промптами:
admin_reload_promptsadmin_get_prompt_manifest
Related MCP server: PostgreSQL MCP Server
Структура
src/cnpg_mcp_server.py: рабочая точка входа FastMCP HTTPsrc/cnpg_mcp_test_server.py: точка входа для тестирования без аутентификации/с OIDCsrc/cnpg_mcp_tools.py: реализация и регистрация инструментов CloudNativePGsrc/mcp_context.py: обертка контекста MCP с извлечением идентификатора пользователяsrc/auth_*.py: поддержка аутентификации каркаса MCP Basechart/: ресурсы для развертывания Helmtest/: тестовая обвязка плагина MCPSCAFFOLD_INVENTORY.md: хеши артефактов каркаса MCP Base
Разработка
Создайте окружение и установите зависимости:
python -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt -r test/requirements.txtЗапустите дымовой тест регистрации каркаса:
python bin/smoke_test.pyЗапустите локальный набор тестов MCP без аутентификации:
python test/run-local-tests.pyЗапустите интеграционные тесты CloudNativePG Kubernetes, адаптированные из deprecated-v1/test/plugins:
python test/run-local-tests.py --include-integration
# or
make test-integrationЭти тесты создают, масштабируют, обновляют и удаляют реальные ресурсы CloudNativePG. Полезные дополнительные настройки:
CNPG_MCP_TEST_NAMESPACE: пространство имен для тестовых ресурсовCNPG_MCP_TEST_CLUSTER_PREFIX: префикс имени создаваемого кластераCNPG_MCP_TEST_STORAGE_SIZE: размер хранилища на экземпляр, по умолчанию1GiCNPG_MCP_TEST_CREATE_WAIT_SECONDS: таймаут готовности кластера, по умолчанию300CNPG_MCP_TEST_SCALE_WAIT_SECONDS: таймаут готовности масштабирования, по умолчанию300
Локальный запуск
Точка входа каркаса использует HTTP-транспорт:
python src/cnpg_mcp_server.py --host 0.0.0.0 --port 4200Тестовый сервер можно запустить без аутентификации:
python src/cnpg_mcp_test_server.py --host 127.0.0.1 --port 4201 --no-authДоступ к Kubernetes
Инструменты используют Python-клиент Kubernetes. Они загружают конфигурацию в следующем порядке:
Конфигурация сервисной учетной записи внутри кластера
Локальный kubeconfig из
~/.kube/configилиKUBECONFIG
Большинство инструментов принимают необязательный аргумент namespace. Если он опущен, используется текущее пространство имен контекста Kubernetes, с переходом на default.
Для развертываний Helm внутри кластера сервер использует сервисную учетную запись развертывания. По умолчанию чарт предоставляет этой учетной записи права доступа к CNPG и секретам только в пространстве имен релиза Helm. Чтобы управлять ресурсами CNPG в другом пространстве имен, передайте аргумент namespace инструмента и предоставьте доступ сервисной учетной записи там:
rbac:
targetNamespaces:
- application-databasesДля общего развертывания MCP, которое должно работать в произвольных пространствах имен, включите RBAC для всего кластера:
rbac:
clusterWide: trueРежим для всего кластера предоставляет доступ к секретам во всех пространствах имен, поэтому отдавайте предпочтение явному указанию targetNamespaces, если целевой набор известен.
Развертывание
Каркас MCP Base включает ресурсы Docker и Helm:
make build
make push
make helm-installИспользуйте python bin/configure-make.py для генерации make.env с настройками образа и пространства имен перед использованием целей развертывания.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Hosted PostgreSQL MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Your Supabase account in natural language: run SQL, apply migrations, manage tables, storage, edge f
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to interact deeply with PostgreSQL databases—query data, manage schema, analyze performance, and administer the database.153 npm6MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with PostgreSQL databases through natural language queries, schema inspection, and safe SQL execution.5 npm1ISC
- FlicenseNot gradedqualityDmaintenanceExposes Kubernetes cluster management tools to LLMs, enabling querying pods, deployments, logs, metrics, and managing port forwards via natural language.1-
- AlicenseAqualityDmaintenanceEnables AI agents to analyze, optimize, and safely interact with PostgreSQL databases, including health checks, index recommendations, query planning, and SQL execution with read-only and production protection modes.15MIT