Playground
Sign in with GitHub, paste a tools/list result, and score it through the hosted API from your browser — the same call, headers and allowance a client sees. Every run is a shareable report with a badge.
Open the playgroundThe description is the only thing an agent reads before it picks a tool. TDQS grades every definition on six weighted dimensions, explains each point, and turns the result into a tier you can gate a release on — the same numbers in your terminal, in CI, and across Glama's registry.
How it works
Code extracts what the schema and annotations already say; a model grades only what the description adds beyond them. Every stage of the pipeline is specified, and the deterministic ones are exact to the digit across implementations.
Stage 1
Deterministic code reads the schema and annotations: parameter coverage, output schema, behavioural hints, invocation cost, and a hash so the same definition always scores the same.
Stage 2
Degenerate definitions — no description, a name restated as a sentence — short-circuit with a flag and a floor score. No model call is spent on them.
Stage 3
A model grades six dimensions from 1 to 5 against published anchors, and writes a justification for every point. The prompts are the specification, byte for byte.
Stage 4
Overrides, flags and smells are applied by code, the weights roll up in integer arithmetic, and the result is a score, a tier, and the reasons.
What the letter means
The same five thresholds apply to a tool, to a server's description quality, to its coherence, and to the overall. Gate a release on the tier, and read the justifications to know what to fix.
Three ways in
The reference implementation is a package, on npm and on PyPI; the playground, the CLI and the hosted API all run it. A definition scores the same wherever you send it.
Sign in with GitHub, paste a tools/list result, and score it through the hosted API from your browser — the same call, headers and allowance a client sees. Every run is a shareable report with a badge.
Open the playgroundLint and score from your terminal or CI, against a local server, a remote one, or a saved definition set. On npm and on PyPI. Gate a release on the passing tier.
npx mcp-tdqs score --url https://mcp.example.com/mcp --fail-under BRead the CLI docsThe same scorer over HTTP. Submit definitions, poll the report, embed the result anywhere. Thirty calls a day per account.
curl https://tdqs.dev/api/v1/reports -H 'Authorization: Bearer tdqs_…' -d @tools.jsonRead the API docsWhy it matters
In a study of 856 tools across 103 servers, 97% of descriptions carried at least one defect and 89% never said when the tool should be used. Rewriting descriptions alone lifted task success by about six points. Across Glama's registry, 56.4% of scored tools still carry a smell.
See the calibration corpusShow your score
Every scored report has a permanent page and an SVG badge that shows the tier and score. Put it beside the build badge, and the description quality of your server becomes a number people can see.