Postgresql MCP について
Postgresql MCPは、データベースのクエリ、書き込み、トランザクション、スキーマ確認を必要とするAIクライアント向けのPostgreSQL MCPサーバーです。標準的なPostgreSQL接続文字列に対応し、読み取り専用モードも選べます。
主な機能
- 01SQLの読み書きツール
- 02複数文のアトミックなトランザクション
- 03テーブルとスキーマの確認
- 04任意の読み取り専用モード
- 05標準PostgreSQL接続文字列
活用シーン
- 01AIクライアントからPostgreSQLを検索
- 02SQLによるデータベースの変更
- 03失敗時にロールバックする一括更新
- 04作業前のテーブル構造の確認
MCP 対応
MCPクライアントにquery、execute、transaction、schema、list_tablesツールを公開します。読み取り専用モードではexecuteとtransactionが無効になり、クエリと確認用ツールは利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| sql | string | はい | 実行する SQL SELECT クエリ |
詳細
postgresql-mcp
PostgreSQL 向けの Model Context Protocol(MCP) サーバーです。読み書きを完全にサポートし、アトミックトランザクションとスキーマ検査機能を備えています。Claude Desktop、Cursor、Windsurf、および MCP 互換のあらゆる AI クライアントで動作します。
ローカル、Supabase、AWS RDS、セルフホスト可能な環境など、あらゆる PostgreSQL データベースを数秒で AI アシスタントに接続できます。
特徴
- SQL の読み書きを完全にサポート(
SELECT、INSERT、UPDATE、DELETE、CREATE、DROP) - 失敗時に自動でロールバックする、複数ステートメントのアトミックトランザクション
- スキーマ検査:カラム、型、NULL 許容性、デフォルト値、主キー
?mode=readonlyによるオプションの読み取り専用モード- クラウドへのロックインなし — 標準的な PostgreSQL 接続文字列であればどれでも動作
- 単一ファイルで、依存関係は最小限
このサーバーを開発した理由
知っておく価値のある PostgreSQL MCP サーバーはほかに 2 つありますが、どちらも汎用的な用途を十分にカバーしていません。
Anthropic 公式の @modelcontextprotocol/server-postgres は厳密に読み取り専用です。READ ONLY トランザクション内で実行される単一の query ツールのみを提供します。書き込み、DDL、トランザクションには対応していません。また、2025 年 7 月に非推奨となり、アーカイブされました。
Microsoft の azure-postgresql-mcp は書き込みと DDL に対応していますが、Azure Database for PostgreSQL Flexible Server 専用に構築されています。技術的には標準的な PG* 環境変数を受け付けるため、ローカル接続が動作する可能性はありますが、ローカルでの使用はテストされておらず、サポート対象外です。複数のツールは Microsoft Entra 認証や Azure 固有の API を必要とするため、Azure 以外では動作しません。また、Azure を使用しない環境では不要な Azure SDK の依存関係も含まれます。現在は Preview 版です。
このサーバーは、それ以外の用途に向けた選択肢です。ローカルの PostgreSQL、セルフホスト環境、Supabase、RDS、または標準的な PostgreSQL インスタンスに対応します。依存関係を最小限に抑えた単一ファイルで、クラウドへのロックインがなく、読み書きを完全にサポートし、複数ステートメントのアトミックトランザクションを実行できます。アクセスを制限したい場合は、オプションの ?mode=readonly フラグを使用できます。
必要条件
- Node.js 18+
- 実行中の PostgreSQL データベース
インストール
npm install -g @sarmadparvez/postgresql-mcp
インストールせずに直接実行することもできます(npm 7+ / Node.js 18+ が必要です)。
npx @sarmadparvez/postgresql-mcp <postgresql-connection-string>
使い方
postgresql-mcp <postgresql-connection-string>
使用例:
# Read-write access
postgresql-mcp postgresql://user:pass@localhost:5432/mydb
# Read-only mode (disables execute and transaction tools)
postgresql-mcp postgresql://user:pass@localhost:5432/mydb?mode=readonly
npx を使うこともできます(npm 7+ / Node.js 18+ が必要です)。
npx @sarmadparvez/postgresql-mcp postgresql://user:pass@localhost:5432/mydb
npx @sarmadparvez/postgresql-mcp postgresql://user:pass@localhost:5432/mydb?mode=readonly
ツール
| ツール | 利用可能なモード | 説明 |
|---|---|---|
query | 常時 | 読み取り専用の SELECT クエリを実行します。READ ONLY トランザクション内で実行されます。行を JSON として返します。 |
execute | 読み書きモード | 書き込み SQL ステートメント(INSERT、UPDATE、DELETE、CREATE、DROP など)を実行します。影響を受けた行数を返します。 |
schema | 常時 | 指定したスキーマ内のテーブルについて、カラム、型、NULL 許容性、デフォルト値、主キーを一覧表示します。特定のテーブルに絞り込むこともできます。 |
list_tables | 常時 | スキーマ内のすべての基本テーブルを、ディスクサイズとともに一覧表示します。 |
transaction | 読み書きモード | 複数の SQL ステートメントをアトミックに実行します。1 つでも失敗した場合、すべてのステートメントをロールバックします。 |
読み取り専用モード
接続文字列に ?mode=readonly を追加すると、サーバーを読み取り専用モードで起動できます。このモードでは execute と transaction の各ツールが無効になり、query、schema、list_tables のみ使用できます。
Claude Desktop の設定
まず、パッケージをグローバルにインストールします。
npm install -g @sarmadparvez/postgresql-mcp
次に、node とインストール済みスクリプトのパスを確認します。
which node
# e.g. /usr/local/bin/node
# nvm users: /Users/yourname/.nvm/versions/node/v22.12.0/bin/node
npm root -g
# e.g. /usr/local/lib/node_modules
# nvm users: /Users/yourname/.nvm/versions/node/v22.12.0/lib/node_modules
claude_desktop_config.json に以下を追加します。
commandをwhich nodeの出力に置き換えます- スクリプトのパスの先頭部分を
npm root -gの出力に置き換えます。末尾の/@sarmadparvez/postgresql-mcp/index.jsはそのままにします
{
"mcpServers": {
"postgres": {
"command": "/usr/local/bin/node",
"args": [
"/usr/local/lib/node_modules/@sarmadparvez/postgresql-mcp/index.js",
"postgresql://user:pass@localhost:5432/mydb"
]
}
}
}
読み取り専用でアクセスするには、接続文字列に ?mode=readonly を追加します。
{
"mcpServers": {
"postgres-readonly": {
"command": "/usr/local/bin/node",
"args": [
"/usr/local/lib/node_modules/@sarmadparvez/postgresql-mcp/index.js",
"postgresql://user:pass@localhost:5432/mydb?mode=readonly"
]
}
}
}
互換性のある AI クライアント
この MCP サーバーは、Model Context Protocol をサポートするあらゆるクライアントで動作します。
- Claude Desktop(Anthropic)
- Cursor
- Windsurf
- その他の MCP 対応クライアント
依存関係
@modelcontextprotocol/sdk— MCP サーバーのフレームワークpg— PostgreSQL クライアントzod— ツール入力のスキーマ検証
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。