CloudNativePG MCP Server
Enables management of PostgreSQL clusters through the CloudNativePG operator, providing tools for cluster creation, scaling, status monitoring, and health checking within Kubernetes environments
Manages PostgreSQL database clusters using CloudNativePG operator, offering high-level workflow tools for cluster lifecycle management, scaling operations, and monitoring cluster health and status
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CloudNativePG MCP Serverlist all PostgreSQL clusters in production namespace"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CloudNativePG MCP Server
An MCP server for managing PostgreSQL clusters through the CloudNativePG operator.
This version uses the MCP Base scaffold for its server layout, authentication,
container build, Helm chart, prompt registry, and test harness. The previous
manual implementation is retained under deprecated-v1/ for reference.
Tool Surface
The server exposes the CloudNativePG tools from the v1 implementation:
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
It also includes MCP Base scaffold admin tools for prompt management:
admin_reload_promptsadmin_get_prompt_manifest
Layout
src/cnpg_mcp_server.py: production FastMCP HTTP entrypointsrc/cnpg_mcp_test_server.py: no-auth/OIDC test entrypointsrc/cnpg_mcp_tools.py: CloudNativePG tool implementations and registrationsrc/mcp_context.py: MCP context wrapper with user identity extractionsrc/auth_*.py: MCP Base scaffold authentication supportchart/: Helm deployment assetstest/: MCP plugin test harnessSCAFFOLD_INVENTORY.md: MCP Base scaffold artifact hashes
Development
Create an environment and install dependencies:
python -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt -r test/requirements.txtRun the scaffold registration smoke test:
python bin/smoke_test.pyRun the local no-auth MCP test suite:
python test/run-local-tests.pyRun the CloudNativePG Kubernetes integration tests adapted from
deprecated-v1/test/plugins:
python test/run-local-tests.py --include-integration
# or
make test-integrationThese tests create, scale, update, and delete real CloudNativePG resources. Useful optional settings:
CNPG_MCP_TEST_NAMESPACE: namespace for test resourcesCNPG_MCP_TEST_CLUSTER_PREFIX: generated cluster name prefixCNPG_MCP_TEST_STORAGE_SIZE: per-instance storage size, default1GiCNPG_MCP_TEST_CREATE_WAIT_SECONDS: cluster readiness timeout, default300CNPG_MCP_TEST_SCALE_WAIT_SECONDS: scale readiness timeout, default300
Running Locally
The scaffold entrypoint uses HTTP transport:
python src/cnpg_mcp_server.py --host 0.0.0.0 --port 4200The test server can be run without authentication:
python src/cnpg_mcp_test_server.py --host 127.0.0.1 --port 4201 --no-authKubernetes Access
The tools use the Kubernetes Python client. They load configuration in this order:
In-cluster service account configuration
Local kubeconfig from
~/.kube/configorKUBECONFIG
Most tools accept an optional namespace. When omitted, the current Kubernetes
context namespace is used, falling back to default.
For in-cluster Helm deployments, the server uses the deployment service account.
By default the chart grants that service account CNPG and secret permissions
only in the Helm release namespace. To manage CNPG resources in another
namespace, pass the tool's namespace argument and grant the service account
access there:
rbac:
targetNamespaces:
- application-databasesFor a shared MCP deployment that must operate in arbitrary namespaces, opt in to cluster-wide RBAC:
rbac:
clusterWide: trueCluster-wide mode grants secret access across namespaces, so prefer explicit
targetNamespaces when the target set is known.
Deployment
The MCP Base scaffold includes Docker and Helm assets:
make build
make push
make helm-installUse python bin/configure-make.py to generate make.env for image and
namespace settings before using the deployment targets.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/waTeim/cnpg-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server