PostgreSQL MCP Server について
PostgreSQL MCP Serverは、AIエージェントをPostgreSQLに接続し、データベース用ツール、リソース、プロンプトを提供します。V8分離環境のCode Mode、スキーマとマイグレーションの管理、ツールの絞り込み、接続プーリング、OAuth 2.1対応のHTTP/SSEを備えています。
主な機能
- 01サンドボックス化されたV8 Code Mode
- 02スキーマの調査とマイグレーション追跡
- 03ツールグループ単位のフィルタリング
- 04接続プーリングとHTTP/SSEトランスポート
- 05OAuth 2.1認証とスコープ
- 06リソース、プロンプト、監査ログ
活用シーン
- 01AIエージェント経由でデータベースクエリを実行
- 02スキーマを調べ、マイグレーション変更を評価
- 03データベース作業に合わせて利用可能なツールを制限
- 04データベースの活動やパフォーマンス情報を確認
MCP 対応
MCPツール、リソース、プロンプトを通じてPostgreSQL操作を公開します。stdioとHTTPに対応し、Streamable HTTPと従来のSSEを利用できます。HTTPアクセスではOAuth 2.1認証を使用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
postgres-mcp
PostgreSQL MCP サーバーは、Model Context Protocol と安全な PostgreSQL サンドボックスを連携させます。
Code Modeを搭載しています。安全な真の V8 分離環境(worker_threads)を通じて、画期的な方法で 278 個すべてのツールにアクセスでき、複数ステップのツール呼び出しによる膨大なトークン消費を解消します。スキーマのイントロスペクション、マイグレーションの追跡、スマートなツールフィルタリング、決定論的なエラー処理、コネクションプーリング、HTTP/SSE トランスポート、OAuth 2.1 認証のほか、citext、ltree、pgcrypto、pg_cron、pg_stat_kcache、pgvector、PostGIS、HypoPG の拡張機能にも対応しています。
278 個の特化型ツール · 24 個のリソース · 21 個の AI 搭載プロンプト
Docker Hub • npm パッケージ • MCP レジストリ • Wiki • ツールリファレンス • 変更履歴
🎯 他との違い
| 特長 | 説明 |
|---|---|
| Code Mode (V8 Isolate) | トークンを大幅に節約: セキュアな真の V8 isolate(worker_threads)内で、複雑な複数ステップの操作を実行します。ツール呼び出しを何度も繰り返してトークンを消費することなく、AI のオーバーヘッドを最大 90% 削減できます。 |
| 決定的なエラー処理 | AI の幻覚を引き起こす、不可解なデータベースエラーはもうありません。生の SQL 例外を明確で実行可能なアドバイスに変換するため、エージェントは推測することなく、復旧方法を正確に把握できます。 |
| トークン最適化された 278 個のツール | MCP レジストリで最大規模の PostgreSQL ツールセットです。すべてのクエリでコストゼロのトークン推定とスマートなデータセット切り詰めを使用するため、コンテキストウィンドウを圧迫することなく、エージェントは常に全体像を把握できます。 |
| OAuth 2.1 + きめ細かな制御 | 本格的なエンタープライズセキュリティを実現します。OAuth 2.1 で認証し、特定のツールレイヤーに対応する精密なスコープで、データベースの読み取り、書き込み、管理を許可するユーザーを正確に制御できます。 |
| 監査証跡とセマンティック差分 | 完全な説明責任を実現します。詳細な JSON ログで AI の動作を正確に追跡し、変更前にスキーマを自動スナップショットして、データ復元前にセマンティックな行単位の差分を自信を持って確認できます。 |
| 24 個のリソースと 21 個のプロンプト | データベースのメタ情報を即座に把握できます。エージェントはリアルタイムの健全性、パフォーマンス、レプリケーションのメトリクスを自動的に読み取り、クエリのチューニングやスキーマ設計向けの組み込みプロンプトワークフローを呼び出せます。 |
| イントロスペクションとマイグレーション | コストのかかるミスを防ぎます。AI によるスキーマ変更の連鎖的な影響のシミュレーション、外部キー更新の安全な順序付け、マイグレーション履歴の自動追跡が可能です。 |
| 8 つの拡張エコシステム | 高度なワークロードにすぐ対応できます。pgvector(AI 検索)、PostGIS(地理空間)、pg_cron、pgcrypto などを、一流の API サポート、厳密な型付け、標準搭載の検証機能で利用できます。 |
| スマートなツールフィルタリング | IDE の制限を超えることなく、エージェントに必要なものだけを提供できます。25 種類のツールグループを任意に組み合わせて、サーバーを動的にコンパイルできます。 |
| エンタープライズインフラストラクチャ | 本番環境向けに構築されています。高速(毎秒数百万回の操作)、SQL インジェクション対策、高性能なコネクションプーリングに対応し、Streamable HTTP と Legacy SSE の両プロトコルを同時にサポートします。 |
推奨ルール(AGENTS.md、GEMINI.md などに追加)
MCP トークン管理:
- トークンの可視性:
postgres-mcpとやり取りする際は、ツールの応答に含まれる_meta.tokenEstimate(Code Mode ではmetrics.tokenEstimate)を常に確認してください。 - 監査リソース:
postgres://auditリソースを使って、セッション単位のトークン消費量を確認し、コストの高い操作を特定してください。 - 効率化の先取り:操作で大量のトークンが消費されている場合は、code mode を優先し、
limitパラメーターを積極的に使用してください。
🚀 クイックスタート
前提条件
- PostgreSQL 12~18(PostgreSQL 18.1 でテスト済み)
- Docker(推奨)または Node.js 24+(LTS)
Docker(推奨)
docker pull writenotenow/postgres-mcp:latest
~/.cursor/mcp.json または Claude Desktop の設定に追加します。
{
"mcpServers": {
"postgres-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"POSTGRES_HOST",
"-e",
"POSTGRES_PORT",
"-e",
"POSTGRES_USER",
"-e",
"POSTGRES_PASSWORD",
"-e",
"POSTGRES_DATABASE",
"writenotenow/postgres-mcp:latest",
"--tool-filter",
"codemode",
"--audit-log",
"/tmp/postgres-logs/audit.jsonl"
],
"env": {
"POSTGRES_HOST": "host.docker.internal",
"POSTGRES_PORT": "5432",
"POSTGRES_USER": "your_username",
"POSTGRES_PASSWORD": "your_password",
"POSTGRES_DATABASE": "your_database"
}
}
}
}
Docker に関する注意:ホストマシン上で実行されている PostgreSQL に接続するには、
host.docker.internalを使用してください。
📖 Docker ガイドの全文: DOCKER_README.md · Docker Hub
npm
npm install -g @neverinfamous/postgres-mcp
postgres-mcp --transport stdio --postgres postgres://user:password@localhost:5432/database
ソースから
git clone https://github.com/neverinfamous/postgres-mcp.git
cd postgres-mcp
npm install
npm run build
node dist/cli.js --transport stdio --postgres postgres://user:password@localhost:5432/database
開発
セットアップについては、上記の ソースから を参照してください。クローンした後:
npm run lint && npm run typecheck # Run checks
npm run bench # Run performance benchmarks
node dist/cli.js info # Test CLI
node dist/cli.js list-tools # List available tools
ベンチマーク
npm run bench を実行すると、Vitest Bench を使用したパフォーマンスベンチマークスイート(10 ファイル、93 以上のシナリオ)が実行されます。詳細な表を出力するには、npm run bench:verbose を使用してください。
パフォーマンスの概要(Node.js 24、Windows 11):
| 領域 | ベンチマーク | スループット |
|---|---|---|
| ツールのディスパッチ | Map.get() による単一ツールの検索 | 約6.9M ops/sec |
| WHERE の検証 | シンプルな句(正規表現の統合高速パス) | 約3.7M ops/sec |
| 識別子のサニタイズ | validateIdentifier() | 約4.4M ops/sec |
| 認証 — トークンの抽出 | extractBearerToken() | 約2.7M ops/sec |
| 認証 — スコープの確認 | hasScope() | 約5.3M ops/sec |
| レート制限 | 単一 IP の確認 | 約2.3M ops/sec |
| ロガー | フィルタリングされたデバッグ(何もしないパス) | 約5.4M ops/sec |
| スキーマの解析 | MigrationInitSchema.parse() | 約2.1M ops/sec |
| メタデータキャッシュ | キャッシュヒット+ミスのパターン | 約1.7M ops/sec |
| サンドボックスの作成 | CodeModeSandbox.create() のコールドスタート | 約863 ops/sec |
ベンチマーク結果と方法の全文は、パフォーマンス Wiki ページで確認できます。
🔗 データベース接続のシナリオ
| シナリオ | 使用するホスト | 接続文字列の例 |
|---|---|---|
| ホストマシン上の PostgreSQL | localhost または host.docker.internal | postgres://user:pass@localhost:5432/db |
| Docker 内の PostgreSQL | コンテナー名またはネットワーク | postgres://user:pass@postgres-container:5432/db |
| リモート/クラウド PostgreSQL | ホスト名または IP | postgres://user:[email protected]:5432/db |
| プロバイダー | ホスト名の例 |
|---|---|
| AWS RDS PostgreSQL | your-instance.xxxx.us-east-1.rds.amazonaws.com |
| Google Cloud SQL | project:region:instance(Cloud SQL Proxy 経由) |
| Azure PostgreSQL | your-server.postgres.database.azure.com |
| Supabase | db.xxxx.supabase.co |
| Neon | ep-xxx.us-east-1.aws.neon.tech |
🛠️ ツールのフィルタリング
重要
すべてのツールグループには、デフォルトで Code Mode(
pg_execute_code)が含まれます。これを除外するには、フィルターに-codemodeを追加します:--tool-filter cron,pgcrypto,-codemode
💡 Code Mode(
--tool-filter codemode)は推奨される設定です。安全で真の V8 アイソレートサンドボックスを提供するpg_execute_codeを公開し、最大 90% のトークン節約で 278 個すべてのツールの機能を利用できます。代替案については、ツールのフィルタリングを参照してください。
adminOAuth スコープが必要 — 実行は監査用にログに記録されます
フィルタリングできる対象
--tool-filter 引数では、グループまたはツール名を指定できます。自由に組み合わせてください。
| フィルターパターン | 例 | 説明 |
|---|---|---|
| グループのみ | core,jsonb,transactions | 個別のグループを組み合わせます |
| ツール名 | pg_read_query,pg_explain | ツールを自由に選択します |
| グループ + ツール | core,+pg_stat_statements | グループに追加します |
| グループ - ツール | core,-pg_drop_table | 特定のツールを除外します |
ツールグループ(25 種類)
| グループ | ツール数 | 説明 |
|---|---|---|
codemode | 1 | コードモード(サンドボックス内でのコード実行)🌟 推奨 |
core | 21 | 読み取り/書き込みクエリ、テーブル、インデックス、便利ツール/削除ツール |
transactions | 9 | BEGIN、COMMIT、ROLLBACK、セーブポイント、ステータス |
jsonb | 21 | JSONB の操作、クエリ、整形表示 |
text | 14 | 全文検索、あいまい一致 |
performance | 25 | EXPLAIN、クエリ分析、最適化、診断、異常検出 |
admin | 12 | VACUUM、ANALYZE、REINDEX、インサイト |
monitoring | 12 | データベースのサイズ、接続、ステータス |
backup | 13 | pg_dump、COPY、復元、バックアップの監査 |
schema | 13 | スキーマ、ビュー、シーケンス、関数、トリガー |
introspection | 7 | 依存関係グラフ、カスケードのシミュレーション、スキーマ分析 |
migration | 7 | スキーマ移行の追跡と管理 |
partitioning | 7 | ネイティブなパーティション管理 |
stats | 20 | 統計分析、ウィンドウ関数、外れ値検出 |
vector | 17 | pgvector(AI/ML の類似性検索) |
postgis | 16 | PostGIS(地理空間) |
cron | 9 | pg_cron(ジョブスケジューリング) |
partman | 11 | pg_partman(自動パーティショニング) |
kcache | 8 | pg_stat_kcache(OS レベルの統計) |
citext | 7 | citext(大文字・小文字を区別しないテキスト) |
ltree | 9 | ltree(階層データ) |
pgcrypto | 10 | pgcrypto(暗号化、UUID) |
security | 10 | セキュリティ監査、SSL、ファイアウォール、データマスキング、権限分析 |
roles | 13 | ロール管理、権限、メンバーシップ、RLS |
docstore | 10 | JSONB ドキュメントコレクション(NoSQL 形式の CRUD、インデックス作成) |
構文リファレンス
| プレフィックス | 対象 | 例 | 効果 |
|---|---|---|---|
| (none) | グループ | core | ホワイトリストモード: このグループのみを有効にします |
| (none) | ツール | pg_read_query | ホワイトリストモード: このツールのみを有効にします |
+ | グループ | +vector | このグループのツールを現在のセットに追加します |
- | グループ | -admin | このグループのツールを現在のセットから削除します |
+ | ツール | +pg_explain | 特定のツールを1つ追加します |
- | ツール | -pg_drop_table | 特定のツールを1つ削除します |
🌐 HTTP/SSE トランスポート(リモートアクセス)
リモートアクセス、ウェブベースのクライアント、または HTTP 対応の MCP ホストには、HTTP トランスポートを使用します。
node dist/cli.js \
--transport http \
--port 3000 \
--postgres "postgres://user:pass@localhost:5432/db"
Docker:
docker run --rm -p 3000:3000 \
-e POSTGRES_URL=postgres://user:pass@host:5432/db \
writenotenow/postgres-mcp:latest \
--transport http --port 3000
サーバーは2つの MCP トランスポートプロトコルを同時にサポートしているため、最新のクライアントと従来のクライアントの両方が接続できます。
ストリーム可能な HTTP(推奨)
最新のプロトコル(MCP 2025-03-26)です。単一のエンドポイントを使用し、セッションベースで動作します。
| メソッド | エンドポイント | 用途 |
|---|---|---|
POST | /mcp | JSON-RPC リクエスト(initialize、tools/list など) |
GET | /mcp | サーバー通知用の SSE ストリーム |
DELETE | /mcp | セッションの終了 |
セッションは Mcp-Session-Id ヘッダーを通じて管理されます。
ステートレスモード
セッションが不要なサーバーレス/ステートレスのデプロイでは、次のようにします。
node dist/cli.js --transport http --port 3000 --stateless --postgres "postgres://..."
ステートレスモードでは、GET /mcp は 405 を返し、DELETE /mcp は 204 を返します。/sse と /messages は 404 を返します。POST /mcp ごとに新しいトランスポートが作成されます。
従来の SSE(下位互換性)
従来のプロトコル(MCP 2024-11-05)です。Python の mcp.client.sse などのクライアント向けです。
| メソッド | エンドポイント | 用途 |
|---|---|---|
GET | /sse | SSE ストリームを開き、/messages?sessionId=<id> エンドポイントを返します |
POST | /messages?sessionId=<id> | セッションに JSON-RPC メッセージを送信します |
ユーティリティエンドポイント
| メソッド | エンドポイント | 用途 |
|---|---|---|
GET | /health | ヘルスチェック(レート制限を回避し、監視用に常に利用可能) |
🔐 認証
postgres-mcp は HTTP トランスポート用に、2種類の認証方式をサポートしています。
シンプルな Bearer トークン(--auth-token)
開発環境やシングルテナントのデプロイに適した軽量な認証方式です。
node dist/cli.js --transport http --port 3000 --auth-token my-secret --postgres "postgres://..."
# Or via environment variable
export MCP_AUTH_TOKEN=my-secret
node dist/cli.js --transport http --port 3000 --postgres "postgres://..."
クライアントは、すべてのリクエストに Authorization: Bearer my-secret を含める必要があります。/health と / は対象外です。認証されていないリクエストには、RFC 6750 に準拠した WWW-Authenticate: Bearer ヘッダーとともに 401 が返されます。
OAuth 2.1(エンタープライズ)
本番環境のマルチテナントデプロイ向けに、RFC 9728/8414 に準拠した完全な OAuth 2.1 を提供します。
node dist/cli.js \
--transport http \
--port 3000 \
--postgres "postgres://user:pass@localhost:5432/db" \
--oauth-enabled \
--oauth-issuer http://localhost:8080/realms/postgres-mcp \
--oauth-audience postgres-mcp-client
追加フラグ:
--oauth-jwks-uri <url>(省略時は自動検出)、--oauth-clock-tolerance <seconds>(デフォルト:60)。
OAuth スコープ
アクセス制御は OAuth スコープを通じて管理されます。
| スコープ | アクセスレベル |
|---|---|
read | 読み取り専用クエリ(SELECT、EXPLAIN) |
write | 読み取り+書き込み操作 |
admin | 管理者権限へのフルアクセス |
full | すべてのアクセス権を付与 |
db:{name} | 特定のデータベースへのアクセス |
schema:{name} | 特定のスキーマへのアクセス |
table:{schema}:{table} | 特定のテーブルへのアクセス |
RFC への準拠
この実装は、以下に準拠しています。
- RFC 9728 — OAuth 2.1 保護リソースメタデータ
- RFC 8414 — OAuth 2.1 認可サーバーメタデータ
- RFC 7591 — OAuth 2.1 動的クライアント登録
サーバーは /.well-known/oauth-protected-resource でメタデータを公開します。
Keycloak ユーザー向けの注意: トークンに正しい
audクレームを含めるには、クライアントにオーディエンスマッパー(Client → Client scopes → dedicated scope → Add mapper → Audience)を追加してください。
メモ
ツールごとのスコープ適用: スコープはツールレベルで適用されます。各ツールグループは必須スコープ(
read、write、またはadmin)に対応しています。OAuth が有効な場合、すべてのツール呼び出しで、実行前に呼び出し元のトークンのスコープがチェックされます。OAuth が設定されていない場合、スコープチェックは完全にスキップされます。
警告
認証なしの HTTP: OAuth または
--auth-tokenを有効にせずに--transport httpを使用すると、すべてのクライアントが制限なくフルアクセスできます。本番環境の HTTP デプロイでは、必ず認証を有効にしてください。詳しくは SECURITY.md を参照してください。
優先順位:
--auth-tokenと--oauth-enabledの両方を設定した場合、OAuth 2.1 が優先されます。どちらも設定されていない場合、サーバーは警告を出して認証なしで実行されます。
🔧 設定
環境変数
| 変数 | デフォルト | 説明 | CLI フラグ |
|---|---|---|---|
POSTGRES_HOST | localhost | データベースのホスト | --host |
POSTGRES_PORT | 5432 | データベースのポート | --pg-port |
POSTGRES_USER | postgres | データベースのユーザー名 | --user |
POSTGRES_PASSWORD | (empty) | データベースのパスワード | --password |
POSTGRES_DATABASE | postgres | データベース名 | --database |
POSTGRES_URL | — | 接続文字列(個別の変数より優先) | --postgres |
MCP_HOST | localhost | サーバーのバインドホスト(コンテナーでは 0.0.0.0) | --server-host |
MCP_TRANSPORT | stdio | トランスポートの種類:stdio、http、sse | --transport |
PORT | 3000 | http/sse トランスポート用の HTTP ポート | --port |
MCP_AUTH_TOKEN | — | HTTP 認証用のシンプルなベアラートークン | --auth-token |
LOG_LEVEL | info | ログレベル:debug、info、warning、error | --log-level |
METADATA_CACHE_TTL_MS | 30000 | スキーマキャッシュの TTL(ミリ秒) | — |
POSTGRES_TOOL_FILTER | — | ツールのフィルター文字列(MCP_TOOL_FILTER も使用可能) | --tool-filter |
MCP_RATE_LIMIT_MAX | 100 | 15 分間のウィンドウにおける IP ごとのレート制限 | — |
MCP_REQUEST_TIMEOUT | 300000 | Slowloris 対策用の HTTP リクエストタイムアウト(ミリ秒) | — |
MCP_HEADERS_TIMEOUT | 60000 | HTTP ヘッダーのタイムアウト(ミリ秒) | — |
TRUST_PROXY | false | クライアント IP の取得に X-Forwarded-For を信頼する | --trust-proxy |
OAUTH_ENABLED | false | OAuth 2.1 認証を有効にする | --oauth-enabled |
OAUTH_ISSUER | — | 認可サーバーの URL | --oauth-issuer |
OAUTH_AUDIENCE | — | 想定されるトークンのオーディエンス | --oauth-audience |
OAUTH_JWKS_URI | (auto) | JWKS URI(発行者から自動検出) | --oauth-jwks-uri |
OAUTH_CLOCK_TOLERANCE | 60 | クロックの許容誤差(秒) | --oauth-clock-tolerance |
AUDIT_LOG_PATH | — | 監査ログファイルのパス(コンテナーログには stderr) | --audit-log |
AUDIT_REDACT | false | 監査ログエントリーからツールの引数を除外する | --audit-redact |
AUDIT_BACKUP | false | 変更前の DDL スナップショットを有効にする | --audit-backup |
AUDIT_BACKUP_DATA | false | スナップショットにサンプルデータの行を含める | --audit-backup-data |
AUDIT_BACKUP_MAX_AGE | 30 | スナップショットの最大保存期間(日) | --audit-backup-max-age |
AUDIT_BACKUP_MAX_COUNT | 1000 | 保持するスナップショットの最大数 | --audit-backup-max-count |
AUDIT_BACKUP_MAX_DATA_SIZE | 52428800 | データ取得の対象となるテーブルの最大サイズ(バイト) | --audit-backup-max-data-size |
AUDIT_READS | false | 読み取り対象のツール呼び出しを記録する(簡潔なエントリー) | --audit-reads |
AUDIT_LOG_MAX_SIZE | 10485760 | ローテーション前のログファイルの最大サイズ(バイト)。最大 5 ファイルを保持します。 | --audit-log-max-size |
エイリアス:
PGHOST、PGPORT、PGUSER、PGPASSWORD、PGDATABASEもサポートされています(標準のPostgreSQLクライアント環境変数です)。
IAM認証向けのプール調整: IAM認証を使用するクラウド管理データベース(AWS RDS、Google Cloud SQLなど)では、
--pool-maxを使用してプールサイズを制御します。
CLIリファレンス
| フラグ | 説明 |
|---|---|
--postgres <url> | 接続文字列 |
--host <host> | PostgreSQL のホスト |
--pg-port <port> | PostgreSQL のポート |
--user <user> | ユーザー名 |
--password <pw> | パスワード(PGPASSWORD の使用を推奨) |
--database <db> | データベース名 |
--ssl | SSL を有効化 |
--pool-max <n> | プールの最大接続数(デフォルト:10) |
--transport <type> | stdio | http | sse |
--port <n> | HTTP ポート |
--server-host <host> | サーバーのバインドホスト |
--auth-token <token> | HTTP 認証用のシンプルなベアラートークン |
--stateless | ステートレス HTTP モード(セッションなし、SSE なし) |
--tool-filter <filter> | ツールフィルター文字列 |
--log-level <level> | ログの詳細度 |
--oauth-enabled | OAuth 2.1 を有効化 |
--trust-proxy | リバースプロキシヘッダーを信頼 |
--audit-log <path> | JSONL 監査ログを有効化(コンテナログには stderr を指定) |
--audit-redact | 監査ログエントリーからツール引数を省略 |
--audit-backup | 変更前の DDL スナップショットを有効化 |
--audit-backup-data | スナップショットにサンプルデータ行を含める |
--audit-backup-max-age <days> | スナップショットの最大保存期間(日数、デフォルト:30) |
--audit-backup-max-count <count> | 保持するスナップショットの最大数(デフォルト:1000) |
--audit-backup-max-data-size <bytes> | データ取得の対象となるテーブルの最大サイズ(デフォルト:52428800) |
--audit-reads | 読み取り対象のツール呼び出しをログに記録(簡潔なエントリー) |
--audit-log-max-size <bytes> | ローテーション前のログファイルの最大サイズ(デフォルト:10MB)。システムは、最も古いアーカイブを削除する前に、ローテーション済みの過去のアーカイブを最大5つ(.1 から .5)保持します。 |
🤖 AI 搭載プロンプト
プロンプトは、複雑なデータベースタスクを実行するための手順を段階的に案内します。使用するツールやその順序を調べる代わりに、プロンプトを呼び出してワークフローに従うだけです。PostgreSQL のベストプラクティスを学んだり、繰り返し行う DBA タスクを自動化したりするのに最適です。
このサーバーには、ワークフローをガイドする21 個のインテリジェントなプロンプトが含まれています。
| プロンプト | 説明 | 必要なグループ |
|---|---|---|
pg_query_builder | CTE とウィンドウ関数を使用したクエリの作成 | core |
pg_schema_design | 制約とインデックスを使用したスキーマの設計 | core |
pg_performance_analysis | EXPLAIN と最適化を使用したクエリの分析 | core, performance |
pg_migration | ロールバックに対応したマイグレーションスクリプトの生成 | core |
pg_tool_index | 遅延ハイドレーション — すべてのツールの簡潔なインデックス | — |
pg_quick_query | 一般的な操作に関する SQL クエリの簡単なガイド | core |
pg_quick_schema | データベーススキーマを調べるためのクイックリファレンス | core |
pg_database_health_check | 包括的なデータベースの健全性評価 | core, performance, monitoring |
pg_backup_strategy | RTO/RPO を考慮したエンタープライズ向けバックアップ計画 | core, monitoring, backup |
pg_index_tuning | インデックスの分析と最適化のワークフロー | core, performance |
pg_extension_setup | 拡張機能のインストールと設定ガイド | core |
pg_setup_pgvector | セマンティック検索のための pgvector の完全なセットアップ | core, vector |
pg_setup_postgis | 地理空間操作のための PostGIS の完全なセットアップ | core, postgis |
pg_setup_pgcron | ジョブスケジューリングのための pg_cron の完全なセットアップ | core |
pg_setup_partman | パーティション管理のための pg_partman の完全なセットアップ | core, partman |
pg_setup_kcache | OS モニタリングのための pg_stat_kcache の完全なセットアップ | core, kcache |
pg_setup_citext | 大文字と小文字を区別しないテキストのための citext の完全なセットアップ | core, citext |
pg_setup_ltree | 階層データのための ltree の完全なセットアップ | core, ltree |
pg_setup_pgcrypto | 暗号化関数のための pgcrypto の完全なセットアップ | core, pgcrypto |
pg_safe_restore_workflow | restoreAs を使用した 6 段階の安全なリストア手順書 | backup |
pg_setup_docstore | ドキュメントコレクションのための docstore の完全なセットアップ | core, docstore |
📦 リソース
リソースを使うと、クエリを記述せずにデータベースの状態をすぐに確認できます。スキーマ、健全性、パフォーマンス指標をすばやく確認するのに最適です。AI はこれらを読み取り、変更を提案する前にデータベースのコンテキストを把握できます。
このサーバーでは、構造化データにアクセスするための 24 個のリソースを提供しています。
| リソース | URI | 説明 |
|---|---|---|
| スキーマ | postgres://schema | データベーススキーマ全体 |
| テーブル | postgres://tables | サイズ付きのテーブル一覧 |
| 設定 | postgres://settings | PostgreSQL の設定 |
| 統計情報 | postgres://stats | 古い統計情報の検出機能を備えたデータベース統計 |
| アクティビティ | postgres://activity | 現在の接続 |
| プール | postgres://pool | 接続プールの状態 |
| 機能 | postgres://capabilities | サーバーバージョン、拡張機能、ツールのカテゴリ |
| パフォーマンス | postgres://performance | pg_stat_statements のクエリ指標 |
| ヘルス | postgres://health | データベースの包括的な健全性ステータス |
| 拡張機能 | postgres://extensions | 推奨事項付きの拡張機能一覧 |
| インデックス | postgres://indexes | 未使用インデックスの検出機能を備えたインデックスの使用状況 |
| レプリケーション | postgres://replication | レプリケーションの状態と遅延の監視 |
| バキューム | postgres://vacuum | バキューム統計情報とラップアラウンドの警告 |
| ロック | postgres://locks | ロック競合の検出 |
| Cron | postgres://cron | pg_cron ジョブの状態と実行履歴 |
| Partman | postgres://partman | pg_partman のパーティション設定と健全性 |
| Kcache | postgres://kcache | pg_stat_kcache の CPU/I/O 指標の概要 |
| ベクター | postgres://vector | pgvector の列、インデックス、推奨事項 |
| PostGIS | postgres://postgis | PostGIS の空間列とインデックスの状態 |
| 暗号 | postgres://crypto | pgcrypto の利用可否とセキュリティに関する推奨事項 |
| インサイト | postgres://insights | AI が追加したビジネス上のインサイトと所見 |
| 監査 | postgres://audit | トークンの概要と上位のツールを含む監査証跡 |
| ヘルプ | postgres://help/{group} | グループ固有のヘルプとワークフローのドキュメント |
| ドキュメントストア | postgres://docstore | JSONB ドキュメントコレクションの概要 |
🔧 拡張機能のサポート
| 拡張機能 | 用途 | ツール |
|---|---|---|
pg_stat_statements | クエリパフォーマンスの追跡 | pg_stat_statements |
pg_trgm | テキストの類似度 | pg_trigram_similarity |
fuzzystrmatch | あいまい一致 | pg_fuzzy_match |
hypopg | 仮想インデックス | pg_index_recommendations |
pgvector | ベクトル類似検索 | 16 個のベクトルツール |
PostGIS | 地理空間操作 | 15 個の postgis ツール |
pg_cron | ジョブのスケジュール設定 | 8 個の cron ツール |
pg_partman | パーティション管理の自動化 | 10 個の partman ツール |
pg_stat_kcache | OS レベルの CPU/メモリ/I/O 統計 | 7 個の kcache ツール |
citext | 大文字と小文字を区別しないテキスト | 6 個の citext ツール |
ltree | 階層ツリーラベル | 8 個の ltree ツール |
pgcrypto | ハッシュ化、暗号化、UUID | 9 個の pgcrypto ツール |
拡張機能がインストールされていない場合でも、拡張機能ツールは適切に処理します。拡張機能ツールの数には
create_extensionヘルパーが含まれますが、Code Mode は含まれません。上記のツールグループの表では、Code Mode 分として各グループに +1 が加算されています。
貢献
貢献を歓迎します!プルリクエストを送信する前に、貢献ガイドラインをお読みください。
セキュリティ
セキュリティに関する懸念については、セキュリティポリシーをご覧ください。
⚠️ 認証情報をコミットしないでください - シークレットは環境変数に保存してください
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。
行動規範
このプロジェクトに参加する前に、行動規範をお読みください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。