PostgreSQL MCP server tool surface audit

A99/100composite score
Token footprint
~32
Tools
1
Findings
2
Scanned

Engine mcp-surface-lint@0.3.3 · reported as example-servers/postgres v0.1.0

PostgreSQL's MCP server publishes 1 tools. Loaded into a conversation, those definitions occupy roughly 32 tokens of context before anyone types a word. Against the 19 static rules in the catalogue it scores 99 out of 100 — grade A — raising 2 scored findings in 2 of the six categories.

Its strongest category is surface at 100/100; the weakest is design at 97/100. It is catalogued here under Data and Databases, alongside other servers agents reach for in the same kind of work.

Token footprint

32 tokens is roughly 0% of a 200,000-token window, paid again on every request rather than once per session. That averages 32 tokens per tool definition, counted with the o200k_base encoding.

Against a category median of 3,328 tokens, this surface runs about 99% below the middle of the pack.

surface100
naming100
descriptions100
schemas98
annotations100
design97

Findings

Findings are listed by severity; the rule pages explain the reasoning in full.

`design/list-no-limit` contributes one finding. A list/search tool with no limit or pagination parameter can dump an unbounded payload into the context window. The caller must be able to ask for less. On this surface it fires on `query`.

One finding comes from `schemas/param-desc-missing`. Undescribed parameters get filled by guesswork. Every property the model must populate deserves a sentence saying what it means and what shape it takes. On this surface it fires on `query`.

warn 2 findings

Findings that measurably degrade tool selection.

"query" implies list/search output but has no limit or pagination parameter — result size is unbounded.

A list/search tool with no limit or pagination parameter can dump an unbounded payload into the context window. The caller must be able to ask for less.

Parameter "sql" has no description.

Undescribed parameters get filled by guesswork. Every property the model must populate deserves a sentence saying what it means and what shape it takes.

What this surface does well

4 of the six categories come through clean: surface, naming, descriptions and annotations. In practice that means the surface stays inside a sensible tool and token budget, the tool names follow one convention end to end, every tool carries a description long enough to disambiguate it and read and write operations are machine-distinguishable before a client runs them.

Tool inventory

The surface is a single tool, `query`, at 30 tokens. Every tool carries a description, ranging from 25 to 25 characters.

None declare annotations, so a client cannot tell a read from a write without reading the prose. Input schemas average 1 top-level parameters and nest 1 level deep at their worst.

All 1 tools as published, heaviest first. Token counts use the o200k_base encoding and are approximate.

Every tool on this surface with its token cost and schema shape.
ToolTokensDescriptionParamsRequiredDepthAnnotations
query3025 chars101no

How this compares

PostgreSQL ranks 1 of 3 scanned Data and Databases servers, 3 points above the category median of 96.

The closest comparisons in this directory are Supabase, MongoDB and Cloudflare Docs, which sit nearest on score and face the same kind of surface-design pressure.

Category
Data and Databases
Rank in category
1
Category median score
96
Category median tokens
3,328
Want this surface fixed, not just measured?

A fix plan turns these findings into an ordered set of changes with the token saving of each one.

Get a fix plan

This page is a static analysis of PostgreSQL's published tools/list surface on the date shown. It is not a security review, a performance benchmark, or a judgement of the product behind the surface. Read how the score is computed, or browse every audited server.