mrkeyoor.com_
Tue 01 Sept 16:15 UTC
DatabasesMCP servermeasured 19 Aug 2026

PostgreSQL (archived)

The archived PostgreSQL MCP server from Anthropic's example-servers set. It takes a Postgres connection string on the command line and exposes exactly one tool, query, for read-only SQL against that database. npm marks the package as no longer supported, and the published version still reports itself as example-servers/postgres version 0.1.0.

BootBOOTS ✓We started it and initialize came back in 6.2s.
Tools1tools/list payload 131 bytes
Context tax~33estimated tokens for the whole tools/list, chars/4 estimate
Resources / prompts / counts returned by resources/list and prompts/list
Measured19 Aug 2026one run of the harness, clean environment, no credentials · how we test

How we started it

npx -y @modelcontextprotocol/server-postgres postgresql://127.0.0.1:59999/probe
Verdict

Use it only if you want the smallest possible read-only SQL bridge and you are comfortable running an abandoned package. We started it against a dead local port and it came up anyway, in 6,150 ms, announcing one tool whose entire schema weighs 131 bytes. The reason against is not subtle: npm prints a deprecation warning on every install, nobody is shipping fixes, and a single query tool with no required parameters listed gives you no guardrails beyond whatever role you hand it.

Use it if

You want an agent to read one Postgres database and nothing else, and a single query tool is the whole feature list you want.
Your context budget is the constraint and you would rather spend a few dozen tokens on SQL access than a few thousand.
You can point it at a role that is genuinely read-only, so an abandoned package cannot do much damage.
You are pinning versions anyway and an unmaintained dependency is a known, accepted risk in your stack.

Skip it if

You need writes, migrations, schema introspection tools, or anything beyond issuing SQL text.
Your security review rejects dependencies whose own registry page says the package is no longer supported.
You want the newer MCP protocol features; this one negotiated 2024-11-05 when we booted it.
You expect resource or prompt listings to work; our probe recorded no counts for either.
You would rather have a maintained community Postgres server, even at several times the token cost.

The bill for your context window

ToolEst. tokensDescribed?Required params
query~32yes (25 chars)0

This is the cheapest thing we measured in the batch. One tool, 131 bytes of tools/list, about 33 tokens estimated at 4 chars per token when we measured it on 2026-08-19. The single query tool accounts for 32 of those, and its description runs 25 characters, which is about as terse as a tool description gets. Compare that with the heaviest server in the same batch, Notion, whose two dozen tools list into hundreds of times more tokens. The tax here is proportionate because there is almost nothing to describe; you are paying for a SQL pipe, and the model has to know your schema from somewhere else.

Setup reality

There is no configuration ceremony. You pass the connection string as an argv, not an env var, and the probe recorded no environment hints at all because nothing was missing. That also means the credential sits in your MCP client config in plain text, which is a different problem from the one env vars solve. Boot is npx-slow: 6,150 ms on our box, most of it fetching a deprecated tarball whose warning scrolls past in stderr before the server says a word. It answered initialize without ever reaching the database, so a successful start tells you nothing about whether the DSN is right.

Questions people ask

Is the PostgreSQL MCP server still maintained?

No. It is part of Anthropic's archived example servers, and npm emits a deprecation notice saying the package is no longer supported. It still installs and still runs, but treat it as frozen code you are adopting rather than a dependency someone else is watching.

Can it write to my database?

It exposes one tool, query, described as read-only SQL. That is an intent, not a sandbox, so enforce it with database permissions: connect as a role that only has SELECT. Do not rely on an abandoned package to police what your agent sends.

Why did it start when the database was unreachable?

We pointed it at a dead local port and initialize still succeeded in 6,150 ms. The server completes the MCP handshake before touching Postgres, so a clean boot proves the process runs, not that your connection string works. You find that out on the first query.

Other databases servers we started

ServerVendorBootsContext tax
ChromaChroma~0 tokens
ElasticsearchElastic~0 tokens
MongoDBMongoDB~9,462 tokens
MySQLcommunity (benborla29)~100 tokens
PineconePinecone~6,165 tokens
QdrantQdrant~0 tokens
SupabaseSupabase~0 tokens

How this page is made: the server is spawned as an unprivileged user with a clean environment and no credentials, then asked for its tools, resources and prompts over stdio. Token figures are estimates at four characters per token, not a tokenizer count. One run, one machine. Corrections: contact the desk.

← All measured MCP servers