プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。Google でログインするとレビューを書けます。プロトタイプ · 30分ごとに更新
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

pgmcp

作者:pascalallenバージョン 1.1.0i★ 0iパソコンで動く
レジストリ名io.github.pascalallen/pgmcp

インストール方法

What it does

Read-only Postgres ops/DBA diagnostics: slow queries, EXPLAIN, locks, index and table health.

  • Connects パソコンで動く
  • Account or key Needs PGMCP_DATABASE_URL
  • Category クリニック・健康

インストール

使っているAIアプリを選んで、設定をコピーしてください。

チェック 3/3 合格 · あなたのパソコンで動きます · ✓ コマンド確認済み 2026年11月13日

まず:どの AI を使っていますか?

使っているアプリを選ぶと、下に手順が表示されます。

Claude につなげますが、先に準備が必要です

キー不要、インストール不要 · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません

  1. 提供元のインストールファイルをダウンロード

    作者の .mcpb ファイルをダウンロード

    .mcpb ファイルは提供元から直接のもので、当サイトは変更していません

  2. ファイルをダブルクリックし、パソコン版 Claude アプリで Install を押す

  3. 試してみる

    pgmcp を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude が pgmcp を使っていると言うか、回答に pgmcp のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

ChatGPT はまだ pgmcp につなげません

pgmcp はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません

代わりにできること

A · pgmcp につなげるアプリを使う

  • キー不要、インストール不要 · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
  • pgmcp のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Docker を入れてください(1 回だけ)
  • pgmcp のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Docker を入れてください(1 回だけ)
  • pgmcp のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Docker を入れてください(1 回だけ)

B · クリニック・健康 の中で ChatGPT につなげる別のサーバー

同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました

Claude Code につなげますが、先に準備が必要です

pgmcp のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Docker を入れてください(1 回だけ)

  1. Docker を入れる

    1 回だけ。Docker が必要なすべてのサーバーで使えます

    Docker のダウンロードページを開く ↗

  2. pgmcp に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。

    pgmcp のサイトを開く ↗

  3. ターミナルを開く

    Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く

  4. このコマンドを貼り付けて Enter

    claude mcp add --scope user pgmcp --env PGMCP_DATABASE_URL=your-value -- docker run -i --rm -e PGMCP_DATABASE_URL ghcr.io/pascalallen/pgmcp:1.1.0

    Enter の前に「your-value」を自分のキーに書き換えてください

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. Claude Code で /mcp と入力

    pgmcp が一覧にあり、接続済みと表示されれば OK です

  6. 試してみる

    pgmcp を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude Code が pgmcp を使っていると言うか、回答に pgmcp のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Cursor につなげますが、先に準備が必要です

pgmcp のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Docker を入れてください(1 回だけ)

  1. Docker を入れる

    1 回だけ。Docker が必要なすべてのサーバーで使えます

    Docker のダウンロードページを開く ↗

  2. pgmcp に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。

    pgmcp のサイトを開く ↗

  3. このボタンで Cursor を開く

    Cursor で開く

    Cursor がインストールの確認をするので Install を押します

  4. キーを入力

    pgmcp の設定で PGMCP_DATABASE_URL が空です。自分のキーを入れて保存します

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. Cursor の AI チャットを Agent モードで開く

  6. 試してみる

    pgmcp を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Cursor が pgmcp を使っていると言うか、回答に pgmcp のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

VS Code につなげますが、先に準備が必要です

pgmcp のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Docker を入れてください(1 回だけ)

  1. Docker を入れる

    1 回だけ。Docker が必要なすべてのサーバーで使えます

    Docker のダウンロードページを開く ↗

  2. pgmcp に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。

    pgmcp のサイトを開く ↗

  3. このボタンで VS Code を開く

    VS Code で開く

    VS Code がインストールの確認をするので Install を押します

  4. キーを入力

    pgmcp の設定で PGMCP_DATABASE_URL が空です。自分のキーを入れて保存します

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. VS Code の AI チャットを Agent モードで開く

  6. 試してみる

    pgmcp を使って、私に何ができるか教えて、1 つやってみせて

    ✓ VS Code が pgmcp を使っていると言うか、回答に pgmcp のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください

MCP を使えるアプリをすべて見る →

JSON 設定は下の「開発者向け」にあります

つまずいたら?pgmcp を使っている人に聞いてみましょう💬 ディスカッション →
開発者向け:ターミナルのコマンドと JSON 設定

パソコンにインストール

Claude Code

claude mcp add --scope user pgmcp --env PGMCP_DATABASE_URL=your-value -- docker run -i --rm -e PGMCP_DATABASE_URL ghcr.io/pascalallen/pgmcp:1.1.0

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "pgmcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "PGMCP_DATABASE_URL",
        "ghcr.io/pascalallen/pgmcp:1.1.0"
      ],
      "env": {
        "PGMCP_DATABASE_URL": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "pgmcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "PGMCP_DATABASE_URL",
        "ghcr.io/pascalallen/pgmcp:1.1.0"
      ],
      "env": {
        "PGMCP_DATABASE_URL": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "pgmcp": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "PGMCP_DATABASE_URL",
        "ghcr.io/pascalallen/pgmcp:1.1.0"
      ],
      "env": {
        "PGMCP_DATABASE_URL": "your-value"
      }
    }
  }
}

自分で入力する値

  • PGMCP_DATABASE_URL 秘密 必須 env
    Postgres connection string (read-only role recommended)

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

ひと目でわかる

週あたりのダウンロードi
npm/PyPIにない
接続方法
パソコンで動く
最新バージョンi
1.1.0
レジストリ公開日i
2026年8月21日
コードの最終更新i
2026年11月5日
作者
pascalallen
パッケージ
oci: ghcr.io/pascalallen/pgmcp:1.1.0
mcpb: …/pgmcp_1.1.0.mcpb
ウェブサイト
github.com
レジストリでの状態
有効

使えるアプリ

このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。

パソコン上で動かせるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

すべてのアプリと長所・短所 →

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月13日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント pascalallen で確認済みです

  • ✓ 合格

    今もメンテナンスされている

    コードの最終更新:8 日前

  • ✓ 合格

    ライセンスがある

    MITを使用

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

話し合い

質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。

まだ投稿はありません。最初の質問や共有をどうぞ。

ここの投稿は利用者によるもので、PopNx チームのものではありません。

Google でログインして投稿

ユーザーレビュー

まだレビューはありません

Google でログインしてレビューを書く

クリニック・健康のほかのサーバーとの比較i

  • このカテゴリのほかの1099件のうち0%よりスターが多い
  • このカテゴリのほかの1099件のうち28%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1099件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

pgmcpは安全ですか?

当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:PGMCP_DATABASE_URL

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は8 日前、最新バージョン(1.1.0)がレジストリに届いたのは3 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにDocker, MCPBも必要です。

代わりに使えるものは?

同じカテゴリには:Medplum MCP, Mirobody, Apple Health

同じカテゴリのほかの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Medplum MCP

Securely access and manage FHIR healthcare data stored in Medplum.

作者:medplum広く使われている★ 27914 か月前更新

クラウドで動く✓ 提供元 · medplum.com

Mirobody

Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.

作者:thetahealth成長中↓ 290/週★ 14863 日前更新

パソコンで動く✓ thetahealth.ai

Apple Health

Local-first Apple Health MCP server for questions about your sleep, workouts and heart data.

作者:neiltron成長中↓ 106/週★ 5752 か月前更新

パソコンで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

pgmcp

pgmcp is a read-only PostgreSQL ops/DBA server for the Model Context Protocol, built on the official modelcontextprotocol/go-sdk. It answers the questions a DBA asks during an incident — which statements are slow, why this plan is slow, which indexes are dead weight, which tables autovacuum has fallen behind on, who is blocking whom, how far the standby is lagging — and it is read-only by construction rather than by convention: a dedicated database role that holds no write privilege, a BEGIN READ ONLY transaction with a statement timeout around every single statement, and a SQL parser guard that rejects anything that is not one SELECT/EXPLAIN/SHOW and every function that could mutate state from inside a read-only transaction. Tested against PostgreSQL 16; requires 13 or later.

Installation

Claude Desktop, one click: download pgmcp_ .mcpb from Releases and open it. Claude Desktop asks for a Postgres connection string, keeps it in the OS keychain, and launches the bundled binary itself — nothing on PATH, no config file to edit. One bundle covers macOS (universal) and Windows (x64).

Otherwise download a binary for your platform from Releases — darwin, linux and windows, amd64 and arm64, with checksums.

Or build from source with the Go CLI tool go:

go install github.com/pascalallen/pgmcp/cmd/pgmcp@latest

Or run the released image, which is distroless, non-root and multi-arch:

docker run --rm -i -e PGMCP_DATABASE_URL='postgres://…' ghcr.io/pascalallen/pgmcp

pgmcp is listed in the MCP Registry as io.github.pascalallen/pgmcp.

Before you point it at anything, create the read-only role — see Database role. It is the layer that still holds if the other two have a bug.

Usage

One MCP surface, two transports. Which one you run is configuration, not a different build.

Claude Code, stdio — the client launches the binary and talks over stdin/stdout:

claude mcp add pgmcp --transport stdio \

--env PGMCP_DATABASE_URL='postgres://pgmcp:…@db.internal:5432/app?sslmode=require' \ -- pgmcp

Claude Desktop, stdio — install the .mcpb bundle from Releases (see Installation), or write the same thing into claude_desktop_config.json by hand:

{

"mcpServers": { "pgmcp": { "command": "pgmcp", "env": { "PGMCP_DATABASE_URL": "postgres://pgmcp:…@db.internal:5432/app?sslmode=require" } } } }

HTTP — Streamable HTTP behind a static bearer key, for a shared deployment. pgmcp speaks plain HTTP and never terminates TLS itself; run it on loopback behind a reverse proxy.

PGMCP_DATABASE_URL='postgres://pgmcp:…@db.internal:5432/app?sslmode=require' \

PGMCP_AUTH_MODE=static \ PGMCP_API_KEYS="$(openssl rand -hex 32)" \ pgmcp --transport http --listen 127.0.0.1:8080

claude mcp add pgmcp --transport http https://pgmcp.example.com/mcp \

--header "Authorization: Bearer "

TLS termination, the proxy settings the streaming transport needs, JWT auth against an identity provider, and wiring pgmcp up as a claude.ai custom connector are all in docs/DEPLOYING.md.

Tools

ToolThe question it answers
top_queriesWhich statements are slow or expensive server-wide? Ranks pg_stat_statements by total time, mean time, calls, rows or blocks read.
explainWhy is *this* statement slow? Plan tree, the nodes burning the most self time, plan warnings, and a stable plan_hash to diff against a later run.
index_healthWhich indexes can I drop, and which are missing their job? Never-scanned, duplicate, invalid and bloated indexes.
table_healthWhere is autovacuum falling behind? Dead-tuple ratio, last vacuum/analyze, sequential versus index scans and estimated bloat, per table.
lock_waitsWhy is this query hanging? The current lock wait graph — who is blocked, who blocks them, and any cycle that amounts to a deadlock.
connectionsWhat is the server doing right now, and how close is it to max_connections? Backends grouped by state, wait event, application, user or database, including idle-in-transaction sessions.
replicationHow far behind is the standby, and which slot is retaining WAL? Primary/standby role, per-standby lag in bytes and milliseconds, slots and the current WAL rate.
config_checkIs this server tuned sanely? pg_settings against memory, autovacuum, WAL and connection heuristics, with an ok/review/warn verdict and a note per setting.
queryEverything the other eight do not cover. One read-only SELECT/EXPLAIN/SHOW in a READ ONLY transaction, bounded by a row cap and a statement timeout, with $1..$n bind parameters.

Every tool is annotated readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false, and returns a typed output schema.

query is the only tool that carries free-form SQL, and it is optional. --disable-query drops it from the catalogue entirely — a deployment that only needs the eight diagnostics tools can run without any ad hoc SQL surface at all. --query-schemas=public,app restricts it to named schemas instead — and bounds explain with it, since analyze=true executes the statement; read what that does and does not stop in docs/SECURITY.md.

Resources & prompt

ResourceContents
pgmcp://overviewThe server snapshot to start from: version, uptime, recovery state, installed extensions, per-database sizes, cache hit ratio, and connections against max_connections. Cacheable for 30s.
pgmcp://settingsThe raw pg_settings rows. Cacheable for 5m.
PromptArgumentsPurpose
diagnose_slow_querysql (required)A four-step investigation: explain the statement, check index_health/table_health on every schema in the plan's hot nodes, look for it in top_queries, then summarize root cause, evidence and a recommended index or rewrite — written out as text only, never run.

Configuration

Every setting has a --flag and a PGMCP_ environment variable. Flags win over the environment, which wins over the default. Configuration errors exit 2 with every offending key named in one message; runtime failures exit 1.

FlagEnvDefaultMeaning
--database-urlPGMCP_DATABASE_URL— (required)Postgres connection string
--transportPGMCP_TRANSPORTstdiostdio or http
--listenPGMCP_LISTEN127.0.0.1:8080HTTP listen address
--resource-urlPGMCP_RESOURCE_URL—Public origin this server is reachable at, for OAuth resource metadata
--auth-modePGMCP_AUTH_MODEnonenone, static or jwt (HTTP only)
--api-keysPGMCP_API_KEYS—Comma-separated static API keys, required for static
--jwks-urlPGMCP_JWKS_URL—JWK set URL, required for jwt
--jwt-issuerPGMCP_JWT_ISSUER—Required iss claim, required for jwt
--jwt-audiencePGMCP_JWT_AUDIENCE—Required aud claim, required for jwt
--auth-serversPGMCP_AUTH_SERVERS—Comma-separated OAuth authorization servers to advertise via RFC 9728
--disable-queryPGMCP_DISABLE_QUERYfalseDrop the ad hoc query tool entirely
--query-schemasPGMCP_QUERY_SCHEMAS—Comma-separated schemas the query and explain tools may read; unset disables the allowlist
--max-connsPGMCP_MAX_CONNS4Maximum Postgres connections
--call-timeoutPGMCP_CALL_TIMEOUT60sPer-tool-call timeout
--rate-limitPGMCP_RATE_LIMIT60Tool calls per principal per minute (HTTP only)
--max-output-bytesPGMCP_MAX_OUTPUT_BYTES1048576Cap on a tool call's structured content
--log-levelPGMCP_LOG_LEVELinfodebug, info, warn or error
--log-formatPGMCP_LOG_FORMATtexttext or json
--insecure-no-authPGMCP_INSECURE_NO_AUTHfalseAllow auth-mode=none on a non-loopback listen address
--version——Print the version and exit

The auth block applies to the HTTP transport only. Over stdio the operating system decides who the caller is: the parent process that launched the binary, and nobody else.

Security model

  • Read-only three independent ways. A dedicated role with no write privilege (pg_monitor plus SELECT, and deliberately *not* pg_signal_backend); BEGIN READ ONLY with SET LOCAL statement_timeout and lock_timeout = '2s' around every statement the adapter runs, always rolled back; and a parser-level guard, because a read-only transaction alone does not stop pg_terminate_backend, pg_read_file, pg_sleep or setval.
  • The SQL guard is allow-list first. One top-level statement, and it must be a SELECT, EXPLAIN or SHOW; no nested write statement anywhere in the tree; no FOR UPDATE/FOR SHARE locking clause; no SELECT INTO; and no call to a denied function — file access, backup and WAL control, replication slots, advisory locks, dblink, sequence mutation, stats resets.
  • The schema allowlist is a guardrail, not a boundary. --query-schemas matches the schemas qualifying *table references* in the parsed statement, case-insensitively, and it bounds both tools that carry caller-supplied SQL — query and explain, so explain with analyze=true cannot execute against a schema you excluded. A view, a set-returning function, or a SECURITY DEFINER function inside an allowed schema can still read outside it. Database privileges are the boundary; the allowlist just narrows the obvious path.
  • Authenticated, fail-closed, over HTTP. Static keys are compared in constant time against every stored hash without an early exit; JWTs are validated against a JWK set with asymmetric algorithms only (no alg=none, no HMAC confusion) and a required iss, aud and exp, and the verifier holds no keys until the JWKS arrives, so it starts closed rather than open. RFC 9728 protected resource metadata advertises where to get a token. The server refuses to start on a non-loopback address with auth off.
  • Bounded. Per-principal rate limiting, a per-call timeout, a statement timeout and lock timeout inside the transaction, a row cap on the query tool, a cap on a result's structured content, and a 1 MiB request body limit.
  • Nothing sensitive is logged. A tool call logs its name, duration, outcome and the caller's user id — never arguments, SQL text, result rows or error text. Parse failures come back as a fixed phrase rather than echoing the statement, and the DSN is redacted from connection errors.

The threat model, the full enumeration of the layers, and the limitations each one does *not* cover are in docs/SECURITY.md.

Testing

Run the test suite with the race detector and coverage:

go test -race -cover ./...

Integration tests need a Postgr

冒頭だけを表示しています。続きはリポジトリで読めます