Postgres Mcp について
Postgres MCPは、SQLや自然言語でPostgreSQLデータベースを照会するMCPサーバーです。スキーマ調査やデータベース切り替えに加え、クエリ種別に応じた権限制御を備えています。
主な機能
- 01ドライラン対応のSQL実行
- 02クエリ種別ごとの権限制御
- 03テーブル、列、索引、制約の調査
- 04接続先データベースの切り替え
- 05エラー処理とロールバック
活用シーン
- 01テーブルスキーマと関連の確認
- 02実行前のクエリ検証
- 03権限を制御したデータベース操作
MCP 対応
MCPクライアントに、クエリ実行、テーブル一覧、スキーマの説明、データベース切り替えのツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
Postgres MCP
SQL または平易な英語のコマンドを使って Postgres データベースにクエリを実行するために構築された、軽量な MCP(Model Context Protocol)サーバーです。データベース操作、テーブルのイントロスペクション、クエリ実行のための包括的なツールと、スマートな権限処理を提供します。
特長
スマートなクエリ権限処理
- 読み取り専用クエリ:自動的に承認されます(SELECT、EXPLAIN、SHOW、VALUES)
- 読み書きクエリ:ユーザーの確認が必要です(INSERT、UPDATE、DELETE、MERGE)
- 管理者/DDL クエリ:より高い権限が必要です(CREATE、ALTER、DROP など)
- ドライランモード:クエリを実行せずに検証できます
包括的なテーブルのイントロスペクション
- 型と制約を含む列定義
- 主キーと外部キーの関連
- インデックス定義
- トリガーとチェック制約
データベース管理
- 複数のデータベースを切り替え可能
- 堅牢なエラー処理とロールバック
利用可能なツール
| ツール | 説明 |
|---|---|
execute_raw_query | 権限検証とドライランのサポートを備えた SQL クエリの実行 |
list_tables | システムテーブル以外のすべてのテーブルを一覧表示します |
describe_tables | 列、インデックス、トリガー、制約を含む、テーブルの包括的な情報を取得します |
switch_database | アクティブなデータベース接続を切り替えます |
必須の環境変数
POSTGRES_HOSTPOSTGRES_USERPOSTGRES_PASSWORDPOSTGRES_DATABASE
その他の環境変数
POSTGRES_PORTPOSTGRES_SSL(ブール値)POSTGRES_VERIFY(ブール値)POSTGRES_SEND_RECEIVE_TIMEOUT(秒単位)POSTGRES_CONNECT_TIMEOUT(秒単位)
mcpServers の json を使った設定
Mac と Linux の場合
{
"mcpServers": {
"postgres-mcp": {
"command": "npx",
"args": ["-y", "@freakynit/postgres-mcp@latest"],
"env": {
"POSTGRES_HOST": "<POSTGRES HOST>",
"POSTGRES_USER": "<POSTGRES USER>",
"POSTGRES_PASSWORD": "<POSTGRES PASSWORD>",
"POSTGRES_DATABASE": "<POSTGRES DATABASE>"
}
}
}
}
Windows の場合
{
"mcpServers": {
"postgres-mcp": {
"command": "cmd",
"args": ["/k", "npx", "-y", "@freakynit/postgres-mcp@latest"],
"env": {
"POSTGRES_HOST": "<POSTGRES HOST>",
"POSTGRES_USER": "<POSTGRES USER>",
"POSTGRES_PASSWORD": "<POSTGRES PASSWORD>",
"POSTGRES_DATABASE": "<POSTGRES DATABASE>"
}
}
}
}
開発ドキュメント
前提条件
- Node.js
- PostgreSQL サーバー
インストール
npm i -g @freakynit/postgres-mcp
または
git clone https://github.com/freakynit/postgres-mcp.git
cd postgres-mcp
npm install
設定
プロジェクトのルートに .env ファイルを作成し、次の変数を設定します。
# PostgreSQL
POSTGRES_HOST=your-db-host
POSTGRES_PORT=5432 # Optional, default 5432
POSTGRES_USER=your-username
POSTGRES_PASSWORD=your-password
POSTGRES_DATABASE=your-database
# SSL settings (optional)
POSTGRES_SSL=false # Or true
POSTGRES_VERIFY=false # Verify server cert if SSL true
# Timeouts (optional, seconds)
POSTGRES_SEND_RECEIVE_TIMEOUT=60 # Query timeout
POSTGRES_CONNECT_TIMEOUT=60 # Connection timeout
使用方法
ローカル開発
サーバーを起動します(stdio モードで起動します)。
node src/index.js
MCP Inspector を使う場合
デバッグと開発用:
npx @modelcontextprotocol/inspector node src/index.js
MCP Inspector を使ったデバッグ
npx @modelcontextprotocol/inspector node src/index.js
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE を参照してください。
![]()
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。