MCPg - Production-grade PostgreSQL MCP Server
MCPg
本番環境向けの Model Context Protocol サーバー for PostgreSQL。 AIエージェントがPostgresデータベースの安全な検査、クエリ、操作、チューニングを可能にします。カタログのイントロスペクション、クエリインテリジェンス、自然言語SQL、構造差分、ハイブリッド検索、グラフクエリ、データ移動、ライブ運用などを網羅する254のツールを備えています。
ライブで試す: MCPクライアント — または MCP Inspector — をホスト型の読み取り専用デモエンドポイント
https://devopam-mcpg-demo.hf.space/mcpに向けてください。使い捨てのデモデータに対して読み取りツールを提供します。実際の使用では、MCPgを自分のデータベースの隣で実行してください(クイックスタートを参照)。
📍 掲載先
側面 | MCPg |
安全性 | デフォルトで読み取り専用 + AST検証 |
トランスポート | stdio + HTTP/SSE |
インストール |
|
Postgresバージョン | 14–19 |
主な差別化要因 | 本番環境の可観測性 + マルチテナンシー |
MCPgを選ぶ理由
デフォルトで安全。 読み取り専用アクセスモード。ユーザーが提供するすべてのSQL ステートメントは、実行前に検証済みのAST許可リストを通過します。 識別子の補間は厳格な
[A-Za-z_][A-Za-z0-9_]*正規表現を通じて行われます — これは ユーザー入力が文字列連結を通じてデータベースに到達しないことを意味する設計上の制約です。 DDL、シェル、LISTEN/NOTIFYなどの機能は、オプトインするまでオフになっています。 すべてのツールは、同じゲートから導出されたMCPToolAnnotations(readOnlyHint、openWorldHint)を公開するため、クライアントは推測することなく 読み取りを自動承認し、書き込みをゲートできます。1つのサーバーで広範なカバレッジ。 アプリケーションデータアクセス(クエリ、検索、 カーソル、NL→SQL)および DBAレベルの操作(ヘルスチェック、インデックスのチューニング、 EXPLAIN分析、ロック、vacuum、ダンプ、レプリカ、マイグレーション)を 単一のMCPサーバーで提供。エージェントはタスクを切り替えるためにツールを切り替える必要がありません。
PostgreSQLネイティブなすべて。 ORMなし、抽象化のオーバーヘッドなし —
psycopg3を直接使用し、すべてのpg_*システムビューに対応し、 TimescaleDB、pgvector、PostGIS、Apache AGE、pg_stat_statementsと 利用可能な場合は統合し、利用できない場合は優雅に機能を縮小します。デモではなく本番向けの設計。 コネクションプーリング、リクエストごとの
SET ROLEマルチテナンシー、劣化ホスト検出を備えた読み取りレプリカルーティング、 専用コネクションを備えたサーバーサイドカーソル、 レート制限、正規表現による機密情報のマスキングを備えた監査トレイル、 起動時のPG TLS強制、OIDC JWTベアラー認証、セッションごとのステートメント / ロック タイムアウト。組み込みの可観測性。 HTTPトランスポート上のPrometheus
/metricsエンドポイントがmcpg_tool_calls_total{tool,status}+mcpg_tool_duration_secondsを公開します。すべてのツール呼び出しは、 認証情報をマスキングした引数付きの構造化監査イベントを記録します。テスト駆動、マルチバージョン。 2,500以上のユニットテストに加え、CIで実際のPostgreSQLコンテナに対して実行される統合スイート — マトリックスは プッシュのたびにPG 14, 15, 16, 17, 18 をカバーし、さらにPG 19(ベータ) を 実験的(非ブロッキング)エントリとしてissue #120で追跡しています。
Related MCP server: PostgreSQL MCP Server
インストール
PyPIから(推奨)
pip install mcpg
# or, in an isolated venv exposed globally:
uv tool install mcpg確認:
mcpg --versionDocker
GitHub Container Registryからビルド済みイメージをプルします(タグ付きリリースのたびに公開 — :latest は最新を追跡、または :0.6.5 のようなバージョンを固定):
docker pull ghcr.io/devopam/mcpg:latest
docker run --rm --name mcpg -p 8000:8000 \
-e MCPG_DATABASE_URL=postgresql://user:pass@host:5432/db \
-e MCPG_ACCESS_MODE=read-only \
ghcr.io/devopam/mcpg:latestWindows PowerShell では末尾の \ をバッククォート ` に置き換えてください
(またはコマンドを1行にまとめてください)。インストール
ガイド にはコピーして使える
Linux/macOS、PowerShell、Command Prompt用のブロックがあります。
またはソースから自分でビルド:
docker build -t mcpg https://github.com/devopam/MCPg.gitマルチステージイメージ: ランタイムステージはビルドツールチェーンを削除し、
uid=10001 / gid=10001 の nologin シェルで実行され、
アプリケーションファイルはルート所有でランタイムユーザーには読み取り専用です。
ソースから(開発者向け)
git clone https://github.com/devopam/MCPg && cd MCPg
uv syncuv sync はすべてのランタイム + 開発依存関係を含むvenvを作成し、
mcpg コンソールスクリプトを公開します。
詳細はインストールガイドを参照してください。
クイックスタート
ワンクリックインストール:
— Windsurf、JetBrains、Zed、Cline、Antigravity、Qwen Code、Perplexity、
ChatGPT、Copilot Studio、Continue、HTTP
クライアントのセットアップは統合ガイドにあります。
Claude Desktopでのワンクリックインストール(.mcpb)
最新リリースから mcpg-<version>.mcpb をダウンロードし、
ダブルクリックします(またはClaude Desktopの設定 →
拡張機能にドラッグ&ドロップ)。PostgreSQL接続URLの入力を求められます —
OSのキーチェーンに保存されます — そしてアクセスモード(デフォルトは
読み取り専用)。これでインストール完了です: バンドルは約2 kBで、
ホストがお使いのプラットフォーム向けに固定された mcpg リリースをPyPIから解決します。
または手動で設定(stdioトランスポート)
これを claude_desktop_config.json に追加してください(macOS:
~/Library/Application Support/Claude/claude_desktop_config.json;
Windows: %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"mcpg": {
"command": "uvx",
"args": ["mcpg"],
"env": {
"MCPG_DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb"
}
}
}
}Claude Desktopを再起動します。MCPgツールセットがモデルで利用可能になります。 Claudeに次のようなことを尋ねられます:
"このデータベースにはどのようなスキーマがありますか?それぞれについて、 最大の3つのテーブルを要約してください。"
"このクエリが遅いのはなぜですか?
SELECT * FROM orders WHERE customer_id = 42 ORDER BY created_at DESC"
まだ興味深いデータがない?デモデータセットをシード
MCPG_DATABASE_URL=postgresql://... mcpg --demo1つのコマンドで、厳選された小さなeコマースデータセット(3,000件の注文、
900件の商品レビュー、意図的に仕込まれた欠陥)を mcpg_demo
スキーマにシードします — インデックスアドバイザー、クエリプラン分析、
全文検索、PII監査、グラフ投影がすべて初回で実際に見つけられるように設計されています。
ガイド付きツアー でキャプチャされたウォークスルーを参照し、
mcpg --demo-drop でいつでも削除できます。
HTTPサーバーとして実行(IDE統合、Webアプリなど)
MCPG_DATABASE_URL=postgresql://user:pass@localhost:5432/mydb \
MCPG_TRANSPORT=streamable-http \
MCPG_HTTP_PORT=8000 \
mcpg次に、MCP対応クライアントを http://localhost:8000/mcp(または
SSEトランスポートの場合は /sse)に向けます。
MCPG_HTTP_AUTH_TOKEN=... で静的ベアラーを設定するか、
MCPG_AUTH_MODE=oidc でOIDC発行者に対する完全なJWT検証を設定します。
設定
MCPgは環境変数のみで設定されます — 設定ファイルも
フラグもありません(CLIの --version / --demo / --demo-drop
はワンショットコマンドであり、設定ではありません)。必須なのは
MCPG_DATABASE_URL のみで、それ以外はすべて安全なデフォルトがあります。
一般的なシナリオ
シナリオ | 設定 |
ローカル探索、読み取り専用 |
|
読み書きアプリデータアクセス |
|
DBAツールキット(DDL、vacuumなど) |
|
ベアラー認証付きHTTPトランスポート |
|
マルチテナントSaaS |
|
読み取りレプリカのファンアウト |
|
NL→SQL — 単一プロバイダー | 任意の1つのベンダーキーを設定( |
NL→SQL — 複数プロバイダー、呼び出し側が選択 | 有効にしたいすべてのベンダーキーを設定。 |
完全なリファレンス
コア
変数 | デフォルト | 説明 |
| 必須 | プライマリPostgreSQL DSN。URI形式( |
|
|
|
|
|
|
|
|
|
|
| HTTPトランスポートのバインドアドレス。コンテナ内では |
|
| HTTPトランスポートのリッスンポート(1〜65535)。 |
機能ゲート(影響範囲の大きいツールのオプトイン)
変数 | デフォルト | 説明 |
|
| DDLツール( |
|
| サブプロセスベースのツール( |
|
|
|
認証(HTTPトランスポートのみ)
変数 | デフォルト | 説明 |
|
|
|
| — |
|
| — | OIDC発行者URL( |
| — | 期待される |
| 自動検出 | JWKSエンドポイントを上書き(それ以外の場合は発行者の |
| — | 値がリクエストごとのPGロール( |
HTTP強化(HTTPトランスポートのみ)
変数 | デフォルト | 説明 |
|
| (1 MiB)これを超えるリクエストボディは |
| — | カンマ区切りのCORS許可リスト。未設定 = CORSミドルウェアなし(クロスオリジンヘッダーは送出されない)。 |
|
|
|
|
| リクエストごとの実時間上限(期限切れで |
マルチテナンシー(SET ROLE)
変数 | デフォルト | 説明 |
| — | すべてのクエリに適用される静的PGロール。識別子として検証される。 |
| — | カンマ区切りの許可リスト。設定時、 |
読み取りレプリカ
変数 | デフォルト | 説明 |
| — | カンマ区切りのレプリカDSN。 |
複数データベース(読み取り専用セカンダリ)
変数 | デフォルト | 説明 |
| — | この1つのサーバーが提供できる追加の読み取り専用データベースを指定する、カンマ区切りまたは改行区切りの |
プール / タイムアウト / TLS
変数 | デフォルト | 説明 |
|
| プールの最小接続数。 |
|
| プールの最大接続数。 |
|
| 接続チェックアウト時に設定されるセッションごとの |
|
| セッションごとの |
|
|
|
|
|
|
|
|
|
|
| 分離された分析プールのサイズ — 同時実行可能な |
|
|
|
|
| SIGTERM時、プールとカーソルを閉じる前に、実行中のツール呼び出しが完了するまで最大この時間待機。 |
サブプロセスのツール(MCPG_ALLOW_SHELL=trueの場合のみ)
Variable | Default | Description |
|
|
|
|
| サブプロセス呼び出しごとのキャプチャされた標準出力の上限(64 MiB)。 |
| — | 解決された |
| — | 子プロセスごとの |
| — | 子プロセスごとの |
LISTEN/NOTIFY(MCPG_ALLOW_LISTEN=true の場合のみ)
Variable | Default | Description |
|
| チャネルごとのバッファ。オーバーフロー時は最も古い通知が破棄されます。 |
監査
Variable | Default | Description |
|
| true の場合、 |
| — | シークレット名パターンに追加されるカンマ区切りの正規表現断片(デフォルトでは |
|
| true の場合、永続化された各イベントは前のイベントにチェーンされた HMAC で署名されます。 |
| — | 監査 HMAC チェーンのシークレットキー。 |
シークレットバックエンド
デフォルトでは、すべてのシークレットは環境から直接読み取られます。代わりに
MCPG_SECRETS_BACKEND=file を設定すると、マウントされたファイルから API キー / ベアラートークン /
HMAC キーを読み込みます。ファイル内の名前が優先され、存在しないものは環境変数にフォールバックするため、部分的なファイルでも機能します。
Variable | Default | Description |
|
|
|
| — |
|
レート制限
Variable | Default | Description |
|
| ツールごとのトークンバケット方式のレート制限を有効にします。 |
|
| 全ツールにわたるウィンドウごとのグローバル上限。 |
|
| グローバルクォータのウィンドウ長。 |
|
| ヘビーツール( |
|
| ヘビーツールクォータのウィンドウ長。 |
キャッシュと機能フラグ
Variable | Default | Description |
|
| アダプティブキャッシュレイヤーを有効または無効にします。 |
|
| キャッシュのデフォルトの有効期限(秒)。 |
|
| メモリキャッシュの LRU 容量の最大上限。 |
| — | 外部のマルチノードキャッシュ用のオプションの Redis バックエンド接続文字列。 |
|
| 計算負荷の高い診断、ダイアグラム、アドバイザーツールを切り替えます。 |
|
| true の場合、すべての write/DDL/shell/listen/migrate 層のツール呼び出し( |
自然言語 SQL
MCPg は起動時に環境から設定済みのすべてのプロバイダーを自動検出します。ベンダーキーを設定するだけで、それぞれが呼び出し可能になります。
組み込みのプロバイダーは 19 個です。 3 つはファーストパーティ(Anthropic、
OpenAI、Gemini)で、残りの 16 個は OpenAI 互換 API をベンダー設定済みエンドポイントで話します: DeepSeek、Qwen、OpenRouter、Perplexity、xAI
(Grok)、Groq、Mistral、Together、Fireworks、DeepInfra、Cerebras、Nebius、
Hugging Face、GitHub Models、SambaNova、Moonshot(Kimi)。組み込みのものはすべてプラグアンドプレイです。ベンダーの標準的な API キー環境変数を設定すると自動検出されます。また、その他の OpenAI 互換ベンダーやローカルモデルサーバー(Ollama、vLLM、LM Studio)も、MCPG_NL2SQL_CUSTOM_PROVIDERS による設定だけでプラグイン可能です。
組み込みリスト全体は nl2sql.py の単一の宣言型レジストリであり、ベンダーの追加や廃止されたデフォルトモデルの更新は 1 行のデータ変更で行えます。
MCPG_NL2SQL_PROVIDER が未設定の場合、MCPg はレジストリ順でデフォルトを自動選択します。anthropic → openai → gemini が最初に来るため、既存のデプロイメントには影響しません。translate_nl_to_sql はオプションの provider="…" 引数を受け取り、呼び出しごとにルーティングできます。get_server_info はどれが設定されているかを報告します。
User: There is "this month" but no "previous three months". Let's have:
あなた: 今月に注文したが、過去3か月間は一度も注文していない顧客を探し、そのメールアドレスと現在の総購入金額(lifetime spend)を表示してください。
The quotation for "never in the previous three months" - "過去3ヶ月間には一度も".
Now, "current lifetime spend" - "現在までの総購入金額(life-time spend)" is fine.
Now, agent label: "エージェント(translate_nl_to_sql を使用)". Then blank line, then GXP9. The exact source has GXP9 not GXP0. So use GXP9.
Now, after that, "### Picture the schema" etc.
Now, let's address "score" in audit. It says "Memory & I/O score 92 (GOOD)". Japanese "スコア 92(良好)" okay.
Now, note "Slow queries 70" - maybe "スロークエリ 70" should be "遅いクエリ 70". Fine.
Now, "MCPg auto-picks in registry order" - "MCPg がレジスト順に自動選択します". Good.
Now, "Unset + any vendor key present → MCPg auto-picks in registry order" -> "Unset (unset) + 任意のベンダーキー存在 + ...". We'll write "未設定かつベンダーキーが存在する場合、MCPg はレジストリ順に自動選択します。"
Now, let's produce.
However, we need to ensure the *** horizontal rules are preserved exactly (three asterisks). We'll include blank lines around.
Now, let's construct the final answer.
But I'd like to think about "Bundle" etc. Maybe "What's in the box" is better as "収録ツール" but we'll use "同梱内容".
Now, let's double-check "Event streams" bullet: "bridging PostgreSQL LISTEN/NOTIFY into the MCP poll model." Translating "bridging" to "橋渡しする" or "ブリッジする". "POST notify" is not code? It's a fixed. Keep.
Now, "Observability" bullet: "Prometheus /metrics endpoint + get_metrics_exposition tool for stdio." We must not translate "Prometheus".
Now, "Server-side cursors" bullet: "for pageable reads over millions of rows" -> "何百万行でもページング読み取りが可能". Good.
Now, let's write.
One more nuance: In the "Diagnose a slow query" block, the agent's response has the code line "CREATE INDEX CONCURRENTLY orders_created_at_idx ON orders (created_at DESC);" We should keep exactly. Also "Run validate_migration on it before applying" - "適用前に validate_migration をそれに対して実行して" maybe.
The "to confirm there's no locking surprise" - "ロックの予期せぬ問題がないことを確認するため" (no locking surprise). We'll translate.
Now, "Catalog introspection" bullet: "schemas, tables..." Actually "and" after functions? Let's copy list.
Let's now finalize.
Potential issue: "generated columns" - "生成列" is common. "複合型" for composite types.
Now, let's write.
We need to avoid wrapping in a code fence. We'll provide only the translated text.
Let's now output.| 変数 | デフォルト | 説明 |
| --- | --- | --- |
| <VENDOR>_API_KEY | — | ベンダーの慣用的なキーを設定すると、そのプロバイダーが有効になります。標準スラッグ: ANTHROPIC_API_KEY、OPENAI_API_KEY、DEEPSEEK_API_KEY、OPENROUTER_API_KEY、PERPLEXITY_API_KEY、XAI_API_KEY、GROQ_API_KEY、MISTRAL_API_KEY、TOGETHER_API_KEY、FIREWORKS_API_KEY、CEREBRAS_API_KEY、NEBIUS_API_KEY、SAMBANOVA_API_KEY、MOONSHOT_API_KEY。 |
| *(規則から外れるキー)* | — | <VENDOR>_API_KEY に従わないベンダーがいくつかあります: Gemini → GEMINI_API_KEY または GOOGLE_API_KEY; Qwen → DASHSCOPE_API_KEY または QWEN_API_KEY; Hugging Face → HF_TOKEN; GitHub Models → GITHUB_TOKEN; DeepInfra → DEEPINFRA_TOKEN。 |
| MCPG_NL2SQL_PROVIDER | 自動選択 | 組み込みのスラッグ(上記の一覧)またはカスタム名を指定します。ツールが provider= なしで呼び出されたときに使用されるデフォルトプロバイダーを固定します。未設定で、かついずれかのベンダーキーが存在する場合、MCPg はレジストリ順に自動選択します。 |
| MCPG_NL2SQL_API_KEY | — | 設定済み MCPG_NL2SQL_PROVIDER に対する明示的なキー。そのプロバイダーに限り、ベンダー標準の環境変数を上書きします。MCPG_NL2SQL_PROVIDER が設定されている必要があります。 |
| MCPG_NL2SQL_MODEL | プロバイダーのデフォルト | デフォルトのモデルを上書きします(例: claude-sonnet-4-6、gpt-4o-mini、grok-3-mini)。デフォルトプロバイダーにのみ適用されます。 |
| MCPG_NL2SQL_BASE_URL | — | デフォルトプロバイダーのエンドポイントを上書きします(プライベートゲートウェイ / リージョナルエンドポイント)。 |
| MCPG_NL2SQL_CUSTOM_PROVIDERS | — | 自前のプロバイダーを持ち込む — コード変更は不要です。 コンマ区切りまたは改行区切りの name=base_url\|model エントリで、組み込みのものに加えて 追加の OpenAI 互換プロバイダーを宣言します(ローカルの Ollama / vLLM / LM Studio、または任意のニッチなベンダー)。キーは慣例として <NAME>_API_KEY から取得します。それに従わないものには \|KEY_ENV_VAR を追加します。ループバックエンドではキーなしも許可されます。すべての名前は provider= で呼び出し可能になります。 |
| MCPG_NL2SQL_MAX_TOKENS | 2048 | 生成トークンの上限(ハードリミット: 16384)。 |
利用例
MCP ツールは、自然言語の指示に応じてエージェント(Claude、Cursor、Continue など)が呼び出します。以下は、実際の往復例をいくつか示したものです。
スキーマの調査
あなた:
publicスキーマにはどのテーブルがあり、行数で最大のものはどれですか?エージェント(
list_tables+summarize_table× N の使用): 6つのテーブル:customers(1.2M 行)、orders(4.7M)、line_items(18.3M)、products(340)、addresses(1.4M)、audit_log(45.8M — 最大。保持期間なしで蓄積され続けます)。
遅いクエリの診断
あなた: なぜこのクエリは
SELECT * FROM orders o JOIN line_items l ON o.id = l.order_id WHERE o.created_at > now() - interval '7 days'8秒かかるのですか?エージェント(
why_is_this_slow+recommend_indexesの使用):EXPLAIN ANALYZEは、created_atでフィルタリングされるorders(4.7M 行)に対するシーケンシャルスキャンを示しています。orders.created_atにはインデックスがありません。推奨:CREATE INDEX CONCURRENTLY orders_created_at_idx ON orders (created_at DESC);期待される改善: ~95% の削減(インデックススキャンはフルテーブルの代わりに約 ~33K 行を参照します)。適用前にvalidate_migrationを実行して、ロックに関する予期しない問題がないことを確認してください。
自然言語からSQLへの変換
あなた: 今月に注文したが、過去3ヶ月間には一度も注文していないお客様を探し、そのメールアドレスと現在の累計購入額を表示してください。
エージェント(
translate_nl_to_sqlの使用):SELECT c.email, SUM(l.price * l.quantity) AS lifetime_spend FROM customers c JOIN orders o ON o.customer_id = c.id JOIN line_items l ON l.order_id = o.id WHERE EXISTS ( SELECT 1 FROM orders o2 WHERE o2.customer_id = c.id AND o2.created_at >= date_trunc('month', now())) AND NOT EXISTS ( SELECT 1 FROM orders o3 WHERE o3.customer_id = c.id AND o3.created_at >= date_trunc('month', now()) - interval '3 months' AND o3.created_at < date_trunc('month', now())) GROUP BY c.email;
スキーマの図解
あなた:
publicスキーマの ER 図を描いてください。エージェント(
generate_schema_diagramの使用): GitHub / Notion / Obsidian にそのまま貼り付けられる Mermaid ダイアグラムを返します。
データベースの監査
あなた: このデータベースは今どのくらい健全ですか?
エージェント(
audit_databaseの使用): 等級付きレポートを返します: メモリ & I/O スコア 92(良好)、トランザクション & 接続 78(警告: ロールバック率 0.4% 、アプリのログを確認)、並行処理 & ロック 60 (クリティカル: 14 バックエンド待機中)、クリーンさ & ブロート 88(良好)、 スロークエリ 70(警告: トップクエリテンプレートが 5000回実行、平均 90 ms —optimize_queryを参照)。
ガード付き書き込みの実行
あなた: 5年以上前の注文をすべて論理削除してください。
エージェント(
run_writeをMCPG_AUDIT_PERSIST=trueで使用): safe-SQL カーネルを使用してステートメントを検証し、トランザクション内で実行し、影響を受けた行数を返し、呼び出し(sql + arguments にシークレットを正規表現でマスク、+ ステータス)をmcpg_audit.eventsに永続化して、事後レビューできるようにします。
さらに多くのレシピ(マルチテナントルーティング、RLS テスト、自然言語→SQL、ベクトル+フルテキストのハイブリッド検索、Apache AGE Cypher、TimescaleDB、ORM スキーマ、サーバーサイドカーソル)については、docs/cookbook.md を参照してください。
同梱内容
カテゴリ別の簡潔なリストです。完全で最新のツールリファレンスについては docs/tools.md を、ガイド付きウォークスルーについては docs/tour.md を参照してください。
カタログイントロスペクション — スキーマ、テーブル、カラム、インデックス、制約、ビュー、関数、トリガー、シーケンス、パーティション、ポリシー、ロール、権限、列挙型、ドメイン、複合型、FDW、パブリケーション、サブスクリプション、拡張機能、生成カラム。
クエリインテリジェンス —
run_select、run_select_parallel、explain_query、analyze_query_plan、why_is_this_slow、recommend_indexes、analyze_workload、check_database_health、detect_n_plus_one、audit_database。検索 —
fuzzy_search(trigram)、full_text_search、vector_search、hybrid_search(pgvector + FTS via RRF)、geo_search(PostGIS k-NN)。自然言語 → SQL —
translate_nl_to_sql(アンサンプル、OpenAI、Gemini、xAI、Groq、Mistral、Hugging Face、… を含む22の組み込みプロバイダーに加え、任意のカスタム OpenAI 互換エンドポイントに対応。出力は手書きクエリと同じ safe-SQL カーネルを通過します)。可視化 —
generate_schema_diagram(ER)、generate_fk_cascade_graph(ON DELETE CASCADEの影響範囲)、generate_graph_diagram(Apache AGE プロパティグラフ)。構造差分とマイグレーション —
compare_schemas、validate_migration、段階的なprepare_migration/complete_migration/cancel_migrationワークフロー。Apache AGE グラフ + Cypher —
list_graphs、describe_graph、run_cypher、create_graph、drop_graph、generate_graph_diagram。複合+アドバイザーツール —
summarize_table、find_unused_objects、find_sensitive_columns(PII ヒューリスティック)、lint_naming_conventions、test_rls_for_role、list_locks、find_blocking_chains、read_pg_stat_io(PG16+)、generate_test_data。ライブ運用とメンテナンス —
list_active_queries、verify_connection_encryption(ライブリンクの TLS ステータス)、run_maintenance(VACUUM/ANALYZE)、prune_audit_events(監査ログ保持)、cancel_query、terminate_backend、run_write、run_ddl、enable_extension。データ移行 —
export_query/export_table(CSV/JSON)、dump_database/restore_database、import_csv/import_json(COPY FROM STDIN)、copy_table_between_databases。サーバーサイドカーソル —
open_cursor、fetch_cursor、close_cursor、list_cursors。数百万行にわたるページング可能な読み取りに対応します。TimescaleDB —
list_hypertables、list_chunks、create_hypertable、add_compression_policy、add_retention_policy。ORM スキーマエクスポーター — Prisma、Drizzle、SQLAlchemy、sqlc、Diesel、jOOQ、Ent、Ecto。
イベントストリーム —
subscribe_channel、poll_notifications、unsubscribe_channel、list_notification_subscriptions。PostgreSQL のLISTEN/NOTIFYを MCP ポールモデルにブリッジします。可観測性 — Prometheus
/metricsエンドポイント+ stdio 用get_metrics_expositionツール。正規表現ベースの資格情報マスキング付き構造化監査トレイル。
ドキュメント
docs/installation.md— インストール+設定docs/tour.md— ガイド付きツールツアーdocs/cookbook.md— 実用的なエージェントレシピdocs/tools.md— 完全なツールリファレンスdocs/architecture.md— 全体の構成と連携の説明docs/scaling.md— プールサイズ、レプリカ、パフォーマンスdocs/security-hardening.md— セキュリティ機能のロードマップdocs/release-process.md— リリースがどのように PyPI にデプロイされるかdocs/adr/— アーキテクチャ上の意思決定記録
セキュリティ
脆弱性の報告:
SECURITY.mdを参照してください。90日間の 協調的開示期間を設けています。報告先はdevopam@gmail.comです。多層防御: 機能ゲート、SafeSQL カーネル、識別子 許可リスト、監査ログの編集、起動時の PG TLS 強制、 レート制限、OIDC JWT 検証、セッションごとのタイムアウト。
出荷済み(✅)および保留中(⬜)の堅牢化項目の最新ロードマップは
docs/security-hardening.mdを参照してください。
プライバシーポリシー
MCPg はセルフホスト型です。データベースの内容がインフラストラクチャの外に出ることは一切なく、テレメトリやホームコールも一切ありません。唯一の明示された例外は、オプトインの translate_nl_to_sql ツールです。このツールは、あなたの質問とスキーマコンテキスト(行データではなく名前)を、あなたが設定した LLM プロバイダーに送信します。データ収集、利用、保存、第三者との共有、保持期間、連絡先を含む完全なポリシーは、PRIVACY.md に記載されています。
リリースノートと変更履歴
完全なバージョン履歴は CHANGELOG.md、リリースの切り出し方法は docs/release-process.md、ダウンロード可能な成果物は GitHub Releases ページを参照してください。
コントリビューション
プルリクエスト歓迎です。開発ループのセットアップ、テスト規約、PR ごとのレビューチェックリストについては、CONTRIBUTING.md を参照してください。
ライセンス
MIT — LICENSE を参照してください。SQL 安全性カーネル(src/mcpg/sql/)はファーストパーティ製で、MIT ライセンスの crystaldba/postgres-mcp から再作成されたものです。系譜については NOTICE を参照してください。
ラップされた拡張機能 — 知っておくべきライセンス
MCPg のソースコードは MIT ですが、ラップしている PostgreSQL 拡張機能はそれぞれ独自のライセンスを保持しています。ラッパー自体はアームズレングス(SQL レベルの呼び出しであり、MCPg の Python プロセスへの静的・動的リンクはありません)であるため、MCPg プロジェクト自体はそれらの派生物ではありません。MCPg + 特定の拡張機能をベースに構築されたサービスをデプロイする運用者は、その拡張機能のライセンスが課す義務を負うことになります — 拡張機能を直接インストールするのと同じです。以下の表は、ラップされた拡張機能ごとのライセンスを示しており、情報に基づいた選択ができるようにしています。
拡張機能 | ライセンス | 運用者向けの注意事項 |
pgvector | PostgreSQL License(BSD スタイル) | 寛容型。特別な義務はありません。 |
pg_partman | PostgreSQL License | 寛容型。 |
pg_cron | PostgreSQL License | 寛容型。 |
pg_turboquant | MIT | 寛容型。 |
pg_buffercache / pg_walinspect / pgstattuple | PostgreSQL contrib | 寛容型。 |
TimescaleDB | Apache 2.0(コミュニティ)+ Timescale License(TSL、ソース利用可能)一部機能向け | 混合 — TSL の対象となる機能については Timescale のドキュメントを参照してください。 |
Apache AGE | Apache 2.0 | 寛容型。 |
pg_search (ParadeDB) | AGPL-3.0 | ユーザーが |
この表は出発点にすぎません。特定のデプロイメントに関する拘束力のある回答については、拡張機能のアップストリームの LICENSE ファイルと(法的に重要となる場合は)自身の顧問弁護士に相談してください。
免責事項。 MCPg を本番グレードにするために最善の努力が払われていますが、これは活発に開発が進められているプロジェクトであり、問題が含まれている可能性があります。補償の詳細についてはライセンス条項を参照してください。
Maintenance
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceUniversal database MCP server connecting to MySQL, PostgreSQL, SQLite, DuckDB and etc.143,388MIT
- AlicenseBqualityBmaintenanceA Model Context Protocol server that enables powerful PostgreSQL database management capabilities including analysis, schema management, data migration, and monitoring through natural language interactions.182,467198AGPL 3.0

Prisma MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceManage Prisma Postgres databases with ease4147,559Apache 2.0- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides AI assistants with secure, read-only access to PostgreSQL databases while offering comprehensive tools for schema exploration, query validation, and performance optimization.MIT
Related MCP Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Comprehensive PostgreSQL documentation and best practices, including ecosystem tools
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/devopam/MCPg'
If you have feedback or need assistance with the MCP directory API, please join our Discord server