postgres について
データベース利用者向けの PostgreSQL MCP サーバーです。読み取り専用クエリやスキーマ確認、テーブル統計、AWR 形式の性能レポートに対応します。
主な機能
- 01読み取り専用 SQL クエリ
- 02SQL 実行計画
- 03テーブル統計
- 04PostgreSQL AWR 形式のレポート
- 05テーブルごとのスキーマリソース
活用シーン
- 01PostgreSQL スキーマの確認
- 02読み取り専用 SQL クエリの分析
- 03クエリ実行計画の確認
- 04データベース性能問題の特定
MCP 対応
読み取り専用の PostgreSQL クエリ、実行計画、テーブル統計、AWR 形式のレポート、スキーマリソースを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| sql | string | はい | 実行する SQL クエリ |
| model | string | はい | MCP クライアントがリクエストの処理に使用する言語モデルの名前とバージョン(例:gpt-4.1、claude-sonnet-4、llama4……) |
| mcp_client | string | はい | 使用している MCP クライアント実装の名前とバージョンを指定します(例:Copilot、Claude、Cline……) |
詳細
PostgreSQL
PostgreSQL データベースへの読み取り専用アクセスを提供する Model Context Protocol サーバーです。このサーバーを使うと、LLM がデータベースのスキーマを調査し、読み取り専用クエリを実行できます。
コンポーネント
ツール
-
pg-query
- 接続先データベースに対して読み取り専用 SQL クエリを実行します
- 入力:
sql(文字列):実行する SQL クエリ - すべてのクエリは READ ONLY トランザクション内で実行されます
-
pg-stats
- 指定したテーブルの統計情報を取得します
- 入力:
name(文字列):統計情報を取得するテーブルの名前
-
pg-explain
- 指定した SQL クエリの実行計画を説明します
- 入力:
sql(文字列):説明する SQL クエリ
-
pg-connect
- PostgreSQL データベースに接続します
- 入力:
connectionString(文字列):認証情報を含まない PostgreSQL 接続文字列(例:postgresql://host:port/dbname または host:port/dbname)user(文字列):PostgreSQL のユーザー名password(文字列):PostgreSQL のパスワード
例: pg-connect host.docker.internal:5432/postgres postgres pg_2025
- pg-awr
- Oracle AWR に似た PostgreSQL パフォーマンスレポートを生成します。データベース統計情報、上位クエリ(pg_stat_statements 拡張機能が必要)、テーブル/インデックス統計情報、接続情報、最適化の推奨事項が含まれます。
リソース
サーバーはデータベース内の各テーブルのスキーマ情報を提供します。
- テーブルスキーマ(
postgres://<dbname>/<table>/schema)- 各テーブルの JSON スキーマ情報
- 列名とデータ型を含みます
- データベースのメタデータから自動的に検出されます
変更履歴
変更履歴については、変更履歴を参照してください。
設定
PostgreSQL サーバーでは、環境変数またはpg-connectツールを使って認証情報を安全に管理します。
PG_USER:PostgreSQL のユーザー名(pg-connectを使用する場合は省略可能)PG_PASSWORD:PostgreSQL のパスワード(pg-connectを使用する場合は省略可能)
接続文字列
接続文字列には、ホスト、ポート、データベース情報のみを含めてください(認証情報は埋め込まないでください)。コマンドライン引数として指定することは任意です。起動時に省略した場合は、ほかの機能を使用する前にpg-connectツールで接続を確立する必要があります。
対応する接続文字列の形式:
postgresql://host:port/dbnamehost:port/dbname
暗号化(SSL)を有効にするには、接続文字列に?sslmode=requireを追加するか、PG_SSL環境変数をtrueに設定します。
Claude Desktop での使用
このサーバーを Claude Desktop アプリで使用するには、claude_desktop_config.jsonの「mcpServers」セクションに次の設定を追加します。
Docker
- macOS で Docker を実行する場合、PostgreSQL サーバーがホストネットワーク上で実行されている(例:localhost)なら、
host.docker.internalを使用します - 認証情報は環境変数
PG_USERおよびPG_PASSWORD経由で渡します
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "PG_USER=myuser",
"-e", "PG_PASSWORD=mypassword",
"mochoa/mcp-postgres"
]
}
}
}
注:起動時に自動接続する場合は、接続文字列を最後の引数として引き続き指定できます:"args": [..., "mochoa/mcp-postgres", "postgresql://host.docker.internal:5432/mydb"]。
NPX
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@marcelo-ochoa/server-postgres",
"postgresql://localhost:5432/mydb"
],
"env": {
"PG_USER": "myuser",
"PG_PASSWORD": "mypassword"
}
}
}
}
/mydbをデータベース名に置き換えてください。
注:以下のプレースホルダーを実際の値に置き換えてください。
myuserとmypasswordを PostgreSQL の認証情報に置き換えますlocalhost:5432を PostgreSQL サーバーのホストとポートに置き換えますmydbをデータベース名に置き換えます
VS Code での使用方法
すばやくインストールするには、以下のワンクリックインストールボタンのいずれかを使用してください……
手動でインストールするには、以下の JSON ブロックを VS Code のユーザー設定(JSON)ファイルに追加してください。Ctrl + Shift + P を押して Preferences: Open User Settings (JSON) と入力すると設定できます。
必要に応じて、ワークスペース内の .vscode/mcp.json というファイルに追加することもできます。これにより、設定をほかのユーザーと共有できます。
.vscode/mcp.jsonファイルでは、mcpキーは不要です。
Docker
注:Docker を使用してホストマシン上の PostgreSQL サーバーに接続する場合は、接続 URL の localhost の代わりに host.docker.internal を使用してください。
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "pg_user",
"description": "PostgreSQL username"
},
{
"type": "promptString",
"id": "pg_password",
"description": "PostgreSQL password",
"password": true
}
],
"servers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "PG_USER=${input:pg_user}",
"-e", "PG_PASSWORD=${input:pg_password}",
"mochoa/mcp-postgres",
"postgresql://localhost:5432/mydb"
]
}
}
}
}
注:起動時に接続する場合は、pg_url の入力を追加して args に追記できます。
NPX
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "pg_user",
"description": "PostgreSQL username"
},
{
"type": "promptString",
"id": "pg_password",
"description": "PostgreSQL password",
"password": true
}
],
"servers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@marcelo-ochoa/server-postgres",
"postgresql://localhost:5432/mydb"
],
"env": {
"PG_USER": "${input:pg_user}",
"PG_PASSWORD": "${input:pg_password}"
}
}
}
}
}
PostgreSQL AWR の実例
本番環境の Moodle データベース向けに pg-awr ツールが生成したパフォーマンスレポートの例については、PostgreSQL AWR の実例をご覧ください。重大なパフォーマンス上の問題と最適化の機会が示されています。
デモ
Claude Desktop、Docker AI、Gemini CLI、Antigravity Code Editor での使用例については、デモをご覧ください。
ビルド
Docker:
docker build -t mochoa/mcp-postgres -f src/postgres/Dockerfile .
ソース
通常どおり、この拡張機能のコードはGitHubにあります。変更の提案や貢献をぜひお寄せください。私は React と TypeScript の開発を始めたばかりなので、この UI を改善するための貢献も歓迎します。
📜 ライセンス
このプロジェクトでは、新たな貢献には Apache License, Version 2.0 が適用され、既存のコードには MIT ライセンスが適用されます。詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。