mcpField
P
Postgresql MCP

Postgresql MCP

ローカル
github.com/sarmadparvezデータベース333 週間前に更新

Postgresql MCP について

Postgresql MCPは、データベースのクエリ、書き込み、トランザクション、スキーマ確認を必要とするAIクライアント向けのPostgreSQL MCPサーバーです。標準的なPostgreSQL接続文字列に対応し、読み取り専用モードも選べます。

主な機能

  1. 01SQLの読み書きツール
  2. 02複数文のアトミックなトランザクション
  3. 03テーブルとスキーマの確認
  4. 04任意の読み取り専用モード
  5. 05標準PostgreSQL接続文字列

活用シーン

  1. 01AIクライアントからPostgreSQLを検索
  2. 02SQLによるデータベースの変更
  3. 03失敗時にロールバックする一括更新
  4. 04作業前のテーブル構造の確認

MCP 対応

MCPクライアントにquery、execute、transaction、schema、list_tablesツールを公開します。読み取り専用モードではexecuteとtransactionが無効になり、クエリと確認用ツールは利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"postgresql-mcp-sarmadparvez": {
"command": "npx",
"args": [
"-y",
"@sarmadparvez/postgresql-mcp"
]
}
}
}
起動コマンドnpx -y @sarmadparvez/postgresql-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@sarmadparvez/postgresql-mcp

ツール

5

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
sqlstringはい実行する SQL SELECT クエリ

詳細

postgresql-mcp

npm version npm downloads License: ISC

README の画像

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 をサポートするあらゆるクライアントで動作します。

依存関係

  • @modelcontextprotocol/sdk — MCP サーバーのフレームワーク
  • pg — PostgreSQL クライアント
  • zod — ツール入力のスキーマ検証

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。