← Index

PostgreSQL

io.github.antonorlov/mcp-postgres-serverv0.3.1Databases

MCP server for PostgreSQL: local, Docker, RDS, Neon, Supabase, or behind an SSH bastion.

The current version, v0.3.1, was published to the official MCP registry on 2026-09-14. It is distributed as mcp-postgres-server on npm, filed under Databases by this index, and declares 22 environment variables. Removals and unreachable sources are measured across every server this index tracks, contract drift across the servers that answer in consecutive snapshots; the index's current counts put this record in context.

In-path gate · all MCP tools

Using PostgreSQL in Claude, Cursor, Gemini CLI, Cline, or Zed?

MCP tool contracts can change remotely with no version bump. The mcpindex gate pins each contract and HOLDs the call when it drifts-before your agent acts. Zero credentials. This is not the package install for this server itself (use Install this server for that).

Install the mcpindex gate (one command)

Rewrites your MCP host config so each server launches behind the gate. Inspect first: curl -fsSL https://mcpindex.ai/install.sh | less

uv tool install mcpindex-gate && mcpindex-config-wire
Trust verdict · v1 advisory · method
NOT YET SCREENEDno verdict on file

Verdict not yet evaluated for this tool. The semantic screen takes adversarial cases first; coverage rolls out as the corpus expands (15/150 labels to graduation). The deterministic conformance probe is built but has not yet run on the public corpus, so a recorded verdict here is REVIEW or UNVERIFIED, never a clearing ALLOW. Until a verdict is recorded, an agent should treat this tool as not-yet-cleared and fall back to its own checks. Method: the eval, four-state verdict, honest limits.

Own this server? Screen its description →

That verdict was true at screening time (snapshot 2026-09-15).

Contracts can change after screening, with no version bump. The gate pins PostgreSQL’s tool contracts on first sight and holds any silent change before your agent acts - the check that keeps being true on Tuesday.

See your first HOLD in 2 minutes →

Related: how to trust an MCP server · screen before install · silent contract drift

Environment variables
DATABASE_URL
secret

Full connection string (preferred). Supports sslmode in the URL.

PG_HOST

Database host (fallback when DATABASE_URL is not set).

PG_PORT

Database port.

PG_USER

Database user.

PG_PASSWORD
secret

Database password.

PG_DATABASE

Database name.

PG_ALLOW_WRITE

When true, execute performs writes and reads are sent directly. Off (default) is read-only: execute refuses writes and each read runs in a READ ONLY transaction.

PG_SSLMODE

TLS mode. require/allow/prefer encrypt without verifying the certificate; verify-ca/verify-full verify it (supply a CA via PG_SSL_CA). Unlike libpq, allow/prefer do not fall back to plaintext, so a server without TLS needs disable.

PG_SSL_CA

Path to a CA certificate file. Setting it by itself implies verify-full.

PG_ENABLE_RUNTIME_CONNECT

Register the connect_db tool (runtime credential switching).

PG_MAX_RESULT_BYTES

Byte budget for a query result sent to the model. Whole rows are kept while they fit; over the budget returnedRows < rowCount and truncated is true.

PG_STATEMENT_TIMEOUT

Statement timeout in milliseconds, applied to every session.

PG_CONNECT_TIMEOUT

Timeout in milliseconds for a single connect attempt (raise it for slow links or SSH tunnels).

PG_SSH_HOST

SSH bastion host. Setting it enables tunneling: the server reaches the database only through an SSH tunnel to this host. Needs the ssh2 optional dependency.

PG_SSH_PORT

SSH bastion port.

PG_SSH_USER

SSH username.

PG_SSH_PRIVATE_KEY

Path to a private key file. If unset, auth falls back like ssh: a running agent (SSH_AUTH_SOCK), then a default key (~/.ssh/id_ed25519, id_rsa, id_ecdsa).

PG_SSH_PASSPHRASE
secret

Passphrase for the private key, if encrypted.

PG_SSH_AGENT

true to use the ambient agent (SSH_AUTH_SOCK), or an explicit socket path / Windows named pipe.

PG_SSH_PASSWORD
secret

SSH login password. Opt-in; a key or agent takes precedence. Prefer keys, a bastion often disables password auth.

PG_SSH_FINGERPRINT

Pinned host-key fingerprint (SHA256:...). Host-key verification is mandatory and set only this way: without it the tunnel refuses to connect. Get it with ssh-keygen -lF host.

PG_SSH_KEEPALIVE_INTERVAL

SSH keepalive interval in ms; the tunnel drops after 3 unanswered keepalives, and the next call reconnects.

MCP quality score · maturity, not trust · methodology
freshness
25
completeness
20
installability
25
documentation
15
stability
5
Alternatives in Databases