QAmcp GitHub

How QAmcp tests an MCP server

Everything it does, in order, and exactly how the score is calculated. Every result is a fact you can check yourself: pass or fail, a time in milliseconds, or an exact match. No AI judges anything.

Sheet 2 of 5 · The test, step by step

What happens when you run it

A test takes about a minute. QAmcp talks only to the server you give it (and its login page, if it has one). Nothing goes anywhere else.

  1. Connect, the way an AI app doesUsing the current MCP connection type, or the older one if that's all the server speaks. For a program on your computer (--stdio) it starts the program and talks to it directly.
  2. Read the MCP version and the login setupIs the server on the newest MCP rules? If it needs a login, can an AI app find the login page and sign in properly?
  3. List every toolNames, descriptions, inputs and safety labels, page by page, exactly as an AI app sees them.
  4. Read every descriptionMissing or confusing descriptions, tools that read the same, hidden instructions aimed at the AI.
  5. Decide which tools are safe to runOnly tools labeled read-only whose name and description agree. Anything that could change, send or delete something is skipped, and the report lists each one and why.
  6. Run the safe tools, with good and bad inputsOnce with sensible sample inputs, then with a missing input and a wrong type. A good tool answers the first and refuses the others clearly.
  7. Try tools togetherWhen one tool's answer holds something another tool asks for, like an ID, QAmcp passes it along and checks the second tool can use it. That's how AI apps chain tools in real jobs.
  8. Time everything, and read every errorConnecting, listing and each answer are timed. Every error message is scanned for passwords, keys, tokens and internal file paths.
  9. Open resources and promptsOnly if the server offers them: each one should open and match what it says it is.
  10. Write the reportA score, every failure and advisory, everything it could not test and why. Add --html report.html for a page you can share.
Sheet 3 of 5 · The checks

Each check, what it looks at, and its points

CheckWhat it looks atPoints
ConnectsCurrent and older MCP connection types, or a program on your computer15
Every tool is describedMissing or vague descriptions, inputs with no description, tools that read the same15
Ready for the newest MCP versionOn the July 2026 version? Still on the old SSE connection?10
Lists its toolsDuplicate or invalid names, a broken tool that stops AI apps loading the server10
Tools are labeled safe or dangerousSafety labels exist, and the tool's own name doesn't contradict them10
No hidden instructionsKnown tricks in descriptions: <IMPORTANT> blocks, "don't tell the user", invisible characters10
Tools work with good inputsSafe tools answer in time; no hangs, crashes or "success" with no data10
Bad inputs give a clean errorA missing or wrong-type input gets a clear refusal10
Login setup follows the specOnly when the server needs a login: the details AI apps need to sign in10
Resources and prompts workOnly when the server has them: each opens, and its content matches its type10
Tools work togetherOnly when tools chain: an ID one tool returns is accepted by the next10
Fast enoughConnecting, listing and answering, timed5
No secrets leakedKeys, passwords, server folders and stack traces in error messages5

These add up to 130, but the score is a percentage, not a sum: most servers have no login, no resources and no chained tools, so 100 points are in play. Each of those three checks that applies adds 10 points in play, and the total is scaled to 100 the same way.

Sheet 4 of 5 · How the score works

Plain arithmetic, so you can check it yourself

score = points earned ÷ points tested × 100

Example: a server with a login and resources has 120 points in play. It earns 108 of them, so 108 ÷ 120 = 90%, and its score is 90/100.

Serious problems put a ceiling on the score

However good the rest is. The lowest ceiling wins, and the report says so: "Would be 85, but capped at 50 because…"

ProblemHighest possible score
Hidden instructions in a tool, resource or prompt description40
A secret (key, password, token) leaked in an error message50
A broken tool definition that can stop AI apps loading the server50
A tool that crashes or hangs, or claims success but returns nothing70
90+ solid70–89 works, with things to fixbelow 70 AI apps will likely struggle, or there's a safety problem
Sheet 5 of 5 · What runs, and when

You choose how much QAmcp may touch

A tool's safety label is the server's own word, so QAmcp double-checks it against the tool's name and description. Tools that sound destructive, like delete_account, never run in any mode.

Try it on your server