mcpField
P
Postgres Mcp

Postgres Mcp

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

Postgres Mcp について

Postgres MCPは、SQLや自然言語でPostgreSQLデータベースを照会するMCPサーバーです。スキーマ調査やデータベース切り替えに加え、クエリ種別に応じた権限制御を備えています。

主な機能

  1. 01ドライラン対応のSQL実行
  2. 02クエリ種別ごとの権限制御
  3. 03テーブル、列、索引、制約の調査
  4. 04接続先データベースの切り替え
  5. 05エラー処理とロールバック

活用シーン

  1. 01テーブルスキーマと関連の確認
  2. 02実行前のクエリ検証
  3. 03権限を制御したデータベース操作

MCP 対応

MCPクライアントに、クエリ実行、テーブル一覧、スキーマの説明、データベース切り替えのツールを提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"postgres-mcp-freakynit": {
"command": "npx",
"args": [
"-y",
"@freakynit/postgres-mcp"
],
"env": {
"POSTGRES_HOST": "<POSTGRES_HOST>",
"POSTGRES_USER": "<POSTGRES_USER>",
"POSTGRES_PASSWORD": "<POSTGRES_PASSWORD>",
"POSTGRES_DATABASE": "<POSTGRES_DATABASE>"
}
}
}
}
起動コマンドnpx -y @freakynit/postgres-mcp
設定が必要な環境変数
POSTGRES_HOST
POSTGRES_USER
POSTGRES_PASSWORDシークレット
POSTGRES_DATABASE

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

パッケージ
npm@freakynit/postgres-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アクティブなデータベース接続を切り替えます
必須の環境変数
  1. POSTGRES_HOST
  2. POSTGRES_USER
  3. POSTGRES_PASSWORD
  4. POSTGRES_DATABASE
その他の環境変数
  1. POSTGRES_PORT
  2. POSTGRES_SSL(ブール値)
  3. POSTGRES_VERIFY(ブール値)
  4. POSTGRES_SEND_RECEIVE_TIMEOUT(秒単位)
  5. 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 を参照してください。

Postgres-MCP サーバーのアバター画像

コメント

MCP は初めてですか?

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

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