CloudNativePG MCP Server
CloudNativePG MCP-Server
Ein MCP-Server zur Verwaltung von PostgreSQL-Clustern über den CloudNativePG-Operator.
Diese Version verwendet das MCP-Base-Grundgerüst für das Server-Layout, die Authentifizierung, den Container-Build, das Helm-Chart, die Prompt-Registrierung und die Testumgebung. Die vorherige manuelle Implementierung wurde zu Referenzzwecken unter deprecated-v1/ beibehalten.
Tool-Oberfläche
Der Server stellt die CloudNativePG-Tools aus der v1-Implementierung bereit:
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
Zusätzlich sind MCP-Base-Admin-Tools für die Prompt-Verwaltung enthalten:
admin_reload_promptsadmin_get_prompt_manifest
Related MCP server: PostgreSQL MCP Server
Layout
src/cnpg_mcp_server.py: Produktiver FastMCP-HTTP-Einstiegspunktsrc/cnpg_mcp_test_server.py: Test-Einstiegspunkt ohne Authentifizierung/OIDCsrc/cnpg_mcp_tools.py: CloudNativePG-Tool-Implementierungen und Registrierungsrc/mcp_context.py: MCP-Kontext-Wrapper mit Extraktion der Benutzeridentitätsrc/auth_*.py: Unterstützung für die MCP-Base-Authentifizierungchart/: Helm-Deployment-Assetstest/: MCP-Plugin-TestumgebungSCAFFOLD_INVENTORY.md: Artefakt-Hashes des MCP-Base-Grundgerüsts
Entwicklung
Erstellen Sie eine Umgebung und installieren Sie die Abhängigkeiten:
python -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt -r test/requirements.txtFühren Sie den Smoke-Test für die Registrierung des Grundgerüsts aus:
python bin/smoke_test.pyFühren Sie die lokale MCP-Testsuite ohne Authentifizierung aus:
python test/run-local-tests.pyFühren Sie die CloudNativePG-Kubernetes-Integrationstests aus, die von deprecated-v1/test/plugins adaptiert wurden:
python test/run-local-tests.py --include-integration
# or
make test-integrationDiese Tests erstellen, skalieren, aktualisieren und löschen echte CloudNativePG-Ressourcen. Nützliche optionale Einstellungen:
CNPG_MCP_TEST_NAMESPACE: Namespace für TestressourcenCNPG_MCP_TEST_CLUSTER_PREFIX: Präfix für generierte ClusternamenCNPG_MCP_TEST_STORAGE_SIZE: Speichergröße pro Instanz, Standard1GiCNPG_MCP_TEST_CREATE_WAIT_SECONDS: Timeout für die Cluster-Bereitschaft, Standard300CNPG_MCP_TEST_SCALE_WAIT_SECONDS: Timeout für die Skalierungs-Bereitschaft, Standard300
Lokale Ausführung
Der Einstiegspunkt des Grundgerüsts verwendet HTTP-Transport:
python src/cnpg_mcp_server.py --host 0.0.0.0 --port 4200Der Testserver kann ohne Authentifizierung ausgeführt werden:
python src/cnpg_mcp_test_server.py --host 127.0.0.1 --port 4201 --no-authKubernetes-Zugriff
Die Tools verwenden den Kubernetes-Python-Client. Sie laden die Konfiguration in dieser Reihenfolge:
In-Cluster-Service-Account-Konfiguration
Lokale kubeconfig aus
~/.kube/configoderKUBECONFIG
Die meisten Tools akzeptieren einen optionalen namespace. Wenn dieser weggelassen wird, wird der aktuelle Kubernetes-Kontext-Namespace verwendet, mit einem Fallback auf default.
Für In-Cluster-Helm-Deployments verwendet der Server den Service-Account des Deployments. Standardmäßig gewährt das Chart diesem Service-Account nur CNPG- und Secret-Berechtigungen im Namespace des Helm-Releases. Um CNPG-Ressourcen in einem anderen Namespace zu verwalten, übergeben Sie das namespace-Argument des Tools und gewähren Sie dem Service-Account dort Zugriff:
rbac:
targetNamespaces:
- application-databasesFür ein geteiltes MCP-Deployment, das in beliebigen Namespaces operieren muss, aktivieren Sie clusterweites RBAC:
rbac:
clusterWide: trueDer clusterweite Modus gewährt Secret-Zugriff über Namespaces hinweg; bevorzugen Sie daher explizite targetNamespaces, wenn die Zielmenge bekannt ist.
Deployment
Das MCP-Base-Grundgerüst enthält Docker- und Helm-Assets:
make build
make push
make helm-installVerwenden Sie python bin/configure-make.py, um make.env für Image- und Namespace-Einstellungen zu generieren, bevor Sie die Deployment-Ziele verwenden.
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