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.
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