mcp-postgres CLAUDE.md

A PostgreSQL server for the Model Context Protocol, which is a standard way for AI assistants to use external tools. It lets agents query databases and inspect tables, schemas, relationships, and foreign keys.

In plain words
What is it for?
Use it to let an agent inspect or query a PostgreSQL database locally over standard input/output or through an HTTP server.
Why use it?
It removes the need to build separate database access tools for an AI agent and can optionally apply user permissions through token-based authentication.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/gldc/mcp-postgres/claude-md
Clone the repo
git clone --depth 1 https://github.com/gldc/mcp-postgres
Per session 843 This file is loaded in full into every session.
When invoked 843 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00843 $0.00843
Opus 5 $0.00421 $0.00421
Sonnet 5 $0.00169 $0.00169
Haiku 4.5 $0.00084 $0.00084

Measured 2d ago against content hash f361a29fc94b, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

mcp-postgres CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 75 lines

How it starts

The opening of the file, as written. The whole thing — 75 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

What This Is

A PostgreSQL MCP (Model Context Protocol) server that lets AI agents interact with Postgres databases. It exposes database tools (query, list tables/schemas, describe tables, foreign keys, relationships) via the FastMCP framework with async connection pooling. Optional JWT/JWKS auth with YAML-based permissions for multi-user environments.

Commands

# Setup
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
pip install -r dev-requirements.txt

# Run MCP server (stdio, local dev)
python postgres_server.py --conn "postgresql://user:pass@host:5432/db"

# Run MCP server (HTTP transport)
python postgres_server.py --transport streamable-http --host 127.0.0.1 --port 8000

# Tests
pytest -q
pytest tests/test_tools.py                          # unit tests
pytest tests/test_tools.py::test_query_no_dsn_async  # single test

# Linting
ruff check .

Architecture

Single-file async MCP server:

  • postgres_server.py — Uses FastMCP from mcp[cli] to register tools. Connects to Postgres via psycopg with AsyncConnectionPool from psycopg_pool. Supports three transports: stdio (local), sse, streamable-http (remote/Railway). Lifespan context manager owns the pool, config, and permissions.

Key components:

  • ServerConfig — Dataclass parsed from CLI args + env vars
  • AppContext — Lifespan-scoped context holding pool, config, permissions
  • Permissions / RolePermissions — YAML-based role/schema/table/operation enforcement
  • JWKSTokenVerifier — Optional JWT verification against external IdP JWKS endpoint

Tools: query, list_schemas, list_tables, describe_table, get_foreign_keys, find_relationships, server_info, db_identity

Two modes:

  • No-auth (default): Shared connection pool, no permission checks
  • Auth-enabled: JWT tokens verified via JWKS, permissions enforced per-user from permissions.yaml

Read the full file on GitHub · 75 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 75 lines · 843 tokens per session scan A f361a29fc94b

Subscribe to this mod's changes

mcp-postgres CLAUDE.md is an instructions file published in the GitHub repository gldc/mcp-postgres (15 stars, last pushed 6mo ago), licensed MIT. It adds 843 tokens to every session, about $0.0042 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.