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.
How we started it
npx -y @modelcontextprotocol/server-postgres postgresql://127.0.0.1:59999/probeUse 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
Skip it if
The bill for your context window
| Tool | Est. tokens | Described? | Required params |
|---|---|---|---|
| query | ~32 | yes (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
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.