mcp-percona-pg について
mcp-percona-pgは、Kubernetes上のPercona PostgreSQLクラスターとPgBouncerを運用するMCPサーバーです。既定は読み取り専用で、対象範囲の制限や重要操作の保護機能を備えています。
主な機能
- 01クラスター構成と状態の確認
- 02PgBouncerのプーリング設定管理
- 03PostgreSQLパラメーターの読み取りと更新
- 04クラスターの拡縮、停止、再開
- 05バックアップ作成と復旧管理
- 06アップグレードや削除の保護
活用シーン
- 01クラスターの準備状態と接続先の確認
- 02プーリングやPostgreSQL設定の調整
- 03バックアップ作成や指定時点への復元
- 04Agentの操作対象を許可済みクラスターに限定
MCP 対応
MCPクライアントに、Kubernetesクラスターの検出、設定、ライフサイクル、バックアップ、復旧、アップグレード用ツールを提供します。アクセスモード、許可リスト、確認要件で利用可能な操作を制御します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @dockndevai/mcp-percona-pgKUBECONFIG_PATHPath to a kube-config file that can reach the Percona Operator namespaces (empty = default resolution).PERCONA_MODEAccess mode: read-only | read-write | admin.PERCONA_NAMESPACEDefault namespace for PerconaPGCluster resources when a tool omits one.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
9掲載時のツール一覧 · 2 日前に更新
このツールにパラメーターはありません。
詳細
mcp-percona-pg
Percona Operator for PostgreSQL 向けの Model Context Protocol サーバーです。MCP 対応クライアント(Claude Desktop、Claude Code、Cursor、…)から、Kubernetes 上の PostgreSQL + PgBouncer クラスターを操作できます。トポロジー、コネクションプーリング、チューニング、バックアップ/PITR、DR、拡張機能、ライフサイクルをすべてフラグで制御できます。
kube-config を介してオペレーターのカスタムリソース(PerconaPGCluster、PerconaPGBackup、PerconaPGRestore、PerconaPGUpgrade)を操作するため、モデルは普段の操作方法に合わせて動作します。「dev-pg を 3 レプリカにスケールする」、「プーリングをトランザクションモードに切り替える」、*「prod-pg を 12:00 UTC 時点に復元する」*といった指示が可能です。
デフォルトで安全です。起動時は読み取り専用で、許可リストで名前空間とクラスターを限定でき、重要なクラスターへの変更を防ぎ、復元/アップグレード/削除はそれぞれ別途オプトインが必要です。また、影響の大きい操作には、指定された確認入力を求めます。データベースの認証情報を読み取ったり返したりすることはありません。
機能
- 検出とステータス — クラスター一覧、クラスターごとの概要と未加工の
.status(Patroni メンバー、PostgreSQL/PgBouncer の準備状況)、接続エンドポイント、バックアップと復元を確認できます。 - コネクションプーリング — PgBouncer の
pool_modeと、グローバルなプール調整値(default_pool_size、max_client_conn、…)を読み取り、更新できます。 - PostgreSQL のチューニング —
spec.patroni.dynamicConfigurationを介してパラメーターを読み取り/マージします(Patroni で安全に設定できる唯一の方法です)。 - ライフサイクル — PostgreSQL/PgBouncer のスケール、停止/再開、組み込み拡張機能の切り替え、オンデマンドバックアップに対応します。
- DR と復旧 — 復元/ポイントインタイムリカバリ、スタンバイの昇格、メジャーバージョンアップグレードに対応します。各機能は個別に有効化が必要です。
セキュリティモデル
| レイヤー | フラグ | 効果 |
|---|---|---|
| アクセスモード | PERCONA_MODE | read-only → read-write → admin。権限が不足するツールは登録されません |
| 名前空間/クラスターの許可リスト | PERCONA_NAMESPACE_ALLOWLIST、PERCONA_CLUSTER_ALLOWLIST | エージェントが操作できる対象を限定します |
| 保護対象クラスター | PERCONA_PROTECTED_CLUSTERS | 読み取りは可能ですが、変更/復元/削除はできません |
| 復元/アップグレード/削除 | PERCONA_ALLOW_RESTORE、PERCONA_ALLOW_UPGRADE、PERCONA_ALLOW_DELETE | admin モードに加えて、個別にオプトインが必要です |
| 確認 | PERCONA_REQUIRE_CONFIRMATION | 影響の大きい操作では、クラスター名の再入力が必要です |
| ドライラン/監査 | PERCONA_DRY_RUN、PERCONA_AUDIT_LOG | 検証のみを実行します。保護対象の操作ごとに JSON 形式の監査ログを記録します |
| 対話型の確認 | (自動) | 破壊的な操作や影響の大きい操作では、実行前に MCP elicitation を通じて人間の承認を求めます。クライアントが elicitation に対応していない場合は、PERCONA_ALLOW_* ゲートにフォールバックします |
ツール
読み取り(read-only+):list_contexts、list_clusters、get_cluster、get_cluster_status、get_connection_info、get_pgbouncer_config、get_pg_parameters、list_backups、list_restores
書き込み(read-write+):scale_cluster、set_pgbouncer_config、set_pg_parameters、pause_cluster、toggle_builtin_extension、create_backup
管理者(admin):restore_cluster(PERCONA_ALLOW_RESTORE が必要)、upgrade_cluster(PERCONA_ALLOW_UPGRADE が必要)、promote_standby、delete_backup/delete_cluster(PERCONA_ALLOW_DELETE が必要)
クイックスタート — エージェントに追加する
npm で @dockndevai/mcp-percona-pg として公開されています。クローンやビルドは不要です。MCP クライアントが必要に応じて npx で実行します。まずは read-only モードで開始してください。すべての変数については .env.example を、クライアントごとの詳しいガイドについては docs/CLIENTS.md をご覧ください。
Claude Code(CLI)
claude mcp add percona-pg -e PERCONA_MODE="read-only" -e PERCONA_NAMESPACE="postgres-operator" -- npx -y @dockndevai/mcp-percona-pg
Claude Desktop · Cursor · Windsurf — claude_desktop_config.json、.cursor/mcp.json、または ~/.codeium/windsurf/mcp_config.json に同じブロックを指定します。
{
"mcpServers": {
"percona-pg": {
"command": "npx",
"args": ["-y", "@dockndevai/mcp-percona-pg"],
"env": {
"PERCONA_MODE": "read-only",
"PERCONA_NAMESPACE": "postgres-operator"
}
}
}
}
OpenAI Codex CLI — ~/.codex/config.toml に指定します。
[mcp_servers.percona-pg]
command = "npx"
args = ["-y", "@dockndevai/mcp-percona-pg"]
env = { PERCONA_MODE = "read-only", PERCONA_NAMESPACE = "postgres-operator" }
プロンプトの例
- 「PostgreSQL クラスターを一覧表示して、
dev-pgのステータスを教えてください。」 - 「
dev-pgはどの pool_mode を使っていますか? デフォルトのプールサイズはいくつですか?」 →get_pgbouncer_config - 「
dev-pgの PgBouncer を、default_pool_size 25 のトランザクションプーリングに設定してください。」(read-writeが必要です) - 「
dev-pgのshared_buffersを 512MB に増やしてください。」(read-writeが必要です) - 「
dev-pgの完全バックアップを repo1 に作成してください。」(read-writeが必要です) - 「
dev-pgを 2026-08-30 12:00:00+00 の状態に復元してください。」(admin、PERCONA_ALLOW_RESTORE、および確認が必要です)
前提条件
- Percona Operator for PostgreSQL v2(
pgv2.percona.com/v2)が稼働している Kubernetes クラスター。 - サーバーが読み取れる kube-config。安全のため、オペレーターの名前空間と、エージェントに表示させる
pgv2.percona.comリソースにスコープを限定した ServiceAccount/RBAC を使用してください。
ソースから実行する(開発)
上記の公開パッケージを推奨します。クローンから実行するには、次の手順に従ってください。
npm install
npm run build
node dist/index.js # with the environment variables set
開発
npm run dev
npm test # security policy + annotations
npm run typecheck
公開
このサーバーには、公式 MCP レジストリ用の server.json と、npm の所有権検証用の mcpName が含まれています。PUBLISHING.md をご覧ください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。