Glama scores every MCP server it indexes and publishes both the rubric and the arithmetic. The formula on a listed server's score page:
definition quality = 0.6 * mean(tool scores) + 0.4 * min(tool scores)
overall = 0.7 * definition quality + 0.3 * mean(4 coherence dimensions)
tiers = A >= 3.5, B >= 3.0, C >= 2.0, D >= 1.0, F below 1.0
Read the first line again. A server with nine excellent tools and one careless one is scored as if the careless one were four of them. Adding a good tool barely moves the number. Fixing the worst one moves it a lot.
Each tool is scored 1 to 5 on six axes, quoted from glama.ai/mcp/methodology section 1.6, read 2026-09-09:
| Dimension | The question it asks |
|---|---|
| Purpose Clarity | Does the description clearly state what the tool does? |
| Usage Guidelines | Are the conditions under which the tool should and should not be called made explicit? |
| Behavioral Transparency | Does the description accurately describe side effects, idempotency and destructiveness? |
| Parameter Semantics | Are parameter names, types and constraints specified unambiguously? |
| Conciseness | Is the description precise without being bloated? |
| Contextual Completeness | Does the description give a model everything needed to invoke the tool correctly, without an external lookup? |
Above the per-tool score sit two more: tool-set coherence, meaning whether the tools compose into a non-overlapping surface, and server cohesiveness, meaning whether the stated purpose matches the capabilities actually exposed.
This project publishes a catalogue of MCP servers. A licence package is vendored into every one of them, so every server ships the same two tools written by the same person in the same style, three lines apart in one file. Across 20 connectors scored on 2026-09-08:
| Tool | n | min | max | mean |
|---|---|---|---|---|
license_activate | 20 | 1.4 | 3.1 | 2.26 |
license_status | 20 | 3.8 | 4.4 | 4.12 |
license_activate was the lowest-scoring tool on 20 of 20 servers. Its
sibling, in the same file, scored nearly twice as high. So this is the text and not the surface, and
because the package is shared, one string was capping a whole fleet. Modelling the effect of lifting
only that tool to 3.5 and changing nothing else moves the fleet mean from 3.562 to 3.874 and takes A
tier from 12 of 20 to 20 of 20. That second figure is a model rather than a measurement, and it
assumes coherence stays put.
A description that scores well by claiming behaviour the code does not have is worse than a low
score. One of ours ended up saying a tool "takes no arguments and activates nothing" while its own
schema declared a required key parameter described as "License key from checkout". That
contradiction is precisely what Parameter Semantics penalises, and rewording it would have been
dishonest. The fix was to make the code do what the name says.
Glama's methodology, section 1.3, read the same day: if an inferred Dockerfile fails to produce a
working build, the profile page is preserved but distribution is withheld, and the server does not
appear in search results, category listings or recommendations. A build that works in your monorepo
and not in the repository you published is enough to trigger this. Ours did exactly that, copying
packages and servers directories that do not exist in a split-out
repository.
Sources: glama.ai/mcp/methodology sections 1.3 and 1.6, read 2026-09-09, for the dimensions and the
build rule; the formula and tier thresholds from a listed server's own score page, recorded in
data/glama_r2.json in this repository alongside the per-connector scores; the tool scores
above measured on 20 connectors of this project on 2026-09-08. The description contradiction is from
this project's own loop notes.
The arithmetic is one directory's. The input is not: a tool description is what a model reads when it decides whether to call you, so the same text is your first impression in every client. Improving it needs no account and no submission anywhere.
Only if it should not exist. Deleting a published tool breaks callers, and the coherence score separately penalises gaps. Rewriting the description is the cheaper move and the honest one.
Say when to call the tool and when not to, in one sentence each. The second half is the one that gets omitted: which neighbouring tool is the right one instead, and what state the tool assumes. A model choosing between two similar tools has nothing else to go on.
Whether the tools match the stated purpose. The methodology's own example is a server claiming to be a Postgres client while exposing arbitrary shell execution. It is scored separately from the per-tool axes and it is a design question, not a wording one.
The methodology says every new commit and every rebuild triggers a full re-run, and that connector scores update on every introspection sweep. In practice a stamp on a score page can sit unchanged for a day or more after a deploy, so treat a stale date as a queue rather than a rejection.
All MCP servers and prices · All guides · Buy the bundle $39