Manage Percona PostgreSQL + PgBouncer on Kubernetes — safe-by-default access modes and guards.
MCPpedia last refreshed this data
io.github.dockndevai/mcp-percona-pg is an MCP server that manage Percona PostgreSQL + PgBouncer on Kubernetes — safe-by-default access modes and guards. Its tool list has not been published yet over stdio and http, requires no API key, and scores 59/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"percona-pg": {
"env": {
"PERCONA_MODE": "read-only",
"PERCONA_NAMESPACE": "postgres-operator"
},
"args": [
"-y",
"@dockndevai/mcp-percona-pg"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Manage Percona PostgreSQL + PgBouncer on Kubernetes — safe-by-default access modes and guards.
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
npx -y '@dockndevai/mcp-percona-pg' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @dockndevai/mcp-percona-pg against OSV.dev.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in data / cloud
Manage Supabase projects — databases, auth, storage, and edge functions
Token-efficient database MCP server for PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite
Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
A cross-platform desktop application for managing AI Agents and MCP Servers. 一款用于管理AI智能体与MCP服务器的跨平台桌面应用程序。
MCP Security Weekly
Get CVE alerts and security updates for io.github.dockndevai/mcp-percona-pg and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A Model Context Protocol server for the Percona Operator for PostgreSQL. It lets an MCP-capable client (Claude Desktop, Claude Code, Cursor, …) operate PostgreSQL + PgBouncer clusters on Kubernetes — topology, connection pooling, tuning, backups/PITR, DR, extensions, and lifecycle — with behaviour controlled entirely by flags.
It drives the operator's custom resources (PerconaPGCluster, PerconaPGBackup, PerconaPGRestore, PerconaPGUpgrade) through your kube-config, so the model works the way you already do: "scale dev-pg to 3 replicas", "switch pooling to transaction mode", "restore prod-pg to 12:00 UTC".
Safe by default: it starts read-only, can be scoped to an allowlist of namespaces and clusters, protects critical clusters from mutation, gates restore / upgrade / delete behind separate opt-ins, and requires typed confirmation for high-impact actions. It never reads or returns database credentials.
.status (Patroni members, PostgreSQL/PgBouncer readiness), connection endpoints, backups and restores.pool_mode and the global pool tunables (default_pool_size, max_client_conn, …).spec.patroni.dynamicConfiguration (the only Patroni-safe path).| Layer | Flag | Effect |
|---|---|---|
| Access mode | PERCONA_MODE | read-only → read-write → admin; over-privileged tools are never registered |
| Namespace/cluster allowlists | PERCONA_NAMESPACE_ALLOWLIST, PERCONA_CLUSTER_ALLOWLIST | scope what the agent can touch |
| Protected clusters | PERCONA_PROTECTED_CLUSTERS | readable, never mutated/restored/deleted |
| Restore / upgrade / delete | PERCONA_ALLOW_RESTORE, PERCONA_ALLOW_UPGRADE, PERCONA_ALLOW_DELETE | separate opt-ins on top of admin mode |
| Confirmation | PERCONA_REQUIRE_CONFIRMATION | high-impact ops require echoing the cluster name |
| Dry-run / audit | PERCONA_DRY_RUN, PERCONA_AUDIT_LOG | validate-only; JSON audit line per guarded op |
| Interactive confirmation | (automatic) | destructive & high-impact ops prompt the human to approve via MCP elicitation before running. The prompt shows the tool, the exact arguments and a fingerprint; the target's version (uid + spec hash) is pinned across the prompt and the action is refused if it changed; a prompt nobody answers is a refusal. delete_cluster also asks the human to type the cluster name. |
| Require a human | PERCONA_REQUIRE_HUMAN_APPROVAL | false. When true, destructive ops are refused if the client cannot elicit (instead of falling back to the PERCONA_ALLOW_* gates alone) |
Read (read-only+): list_contexts, list_clusters, get_cluster, get_cluster_status, get_connection_info, get_pgbouncer_config, get_pg_parameters, list_backups, list_restores
Write (read-write+): scale_cluster, set_pgbouncer_config, set_pg_parameters, pause_cluster, toggle_builtin_extension, create_backup
Admin (admin): restore_cluster (needs PERCONA_ALLOW_RESTORE), upgrade_cluster (needs PERCONA_ALLOW_UPGRADE), promote_standby, delete_backup /