mcpField
P
postgres

postgres

ローカル
github.com/marcelo-ochoaデータベース210 週間前に更新

postgres について

データベース利用者向けの PostgreSQL MCP サーバーです。読み取り専用クエリやスキーマ確認、テーブル統計、AWR 形式の性能レポートに対応します。

主な機能

  1. 01読み取り専用 SQL クエリ
  2. 02SQL 実行計画
  3. 03テーブル統計
  4. 04PostgreSQL AWR 形式のレポート
  5. 05テーブルごとのスキーマリソース

活用シーン

  1. 01PostgreSQL スキーマの確認
  2. 02読み取り専用 SQL クエリの分析
  3. 03クエリ実行計画の確認
  4. 04データベース性能問題の特定

MCP 対応

読み取り専用の PostgreSQL クエリ、実行計画、テーブル統計、AWR 形式のレポート、スキーマリソースを MCP クライアントに公開します。

設定

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

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

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

パッケージ
npm@marcelo-ochoa/server-postgres1.0.8

ツール

5

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

パラメーター型必須説明
sqlstringはい実行する SQL クエリ
modelstringはいMCP クライアントがリクエストの処理に使用する言語モデルの名前とバージョン(例:gpt-4.1、claude-sonnet-4、llama4……)
mcp_clientstringはい使用している 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/dbname
  • host: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 での使用方法

すばやくインストールするには、以下のワンクリックインストールボタンのいずれかを使用してください……

Install with NPX in VS Code Install with NPX in VS Code Insiders

Install with Docker in VS Code Install with Docker in VS Code Insiders

手動でインストールするには、以下の 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 ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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