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 с настройками образа и пространства имен перед использованием целей развертывания.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
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
Your AI Agent's Infrastructure Layer. Connect Claude, Copilot, Codex, or ChatGPT to 200+ managed open source services. Start databases, pipelines, and applications through natural language.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables secure, AI-driven PostgreSQL database administration, observability, and querying with support for extensions like PostGIS and pgvector, connection pooling, and advanced tool filtering.35 npm12MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to interact deeply with PostgreSQL databases—query data, manage schema, analyze performance, and administer the database.152 npm4MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with PostgreSQL databases through natural language queries, schema inspection, and safe SQL execution.7 npm1-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to manage, monitor, and query CockroachDB using natural language, supporting cluster monitoring, database operations, table management, and query execution.MIT