mcpgauge
Grade an MCP server's tool definitions in seconds — deterministic, offline, no account.
An agent only uses an MCP server well if its
tool definitions are clear — good names, real descriptions, documented
parameters. mcpgauge launches a server, reads its tools, and scores their
definition quality against a published, deterministic rubric.
No LLM, no network beyond the server you point it at, no sign-up.
Quickstart
pipx install mcpgauge # or: uvx mcpgauge ...
mcpgauge "uvx ollama-handoff"
Grade A (4.18/5) — 8 tools
mean 4.31 · min 3.72 · methodology v0
[B] summarize_local 3.72/5
purpose █████ params █████ behavior █████ schema █████ naming █████ concise ████·
[A] query 4.80/5
...
--json— machine-readable output for tooling.--min B— exit non-zero if the server grades belowB(drop it in CI).--quiet— print only the final grade line.
Why it exists
Most MCP servers are thin wrappers with vague tool descriptions, and agents pick
the wrong tool as a result. The only comparable quality score is closed and
requires registering your server on a third-party site. mcpgauge is the
opposite: open methodology, offline, reproducible, and CI-runnable. You can
read exactly how every point is awarded in docs/METHODOLOGY.md
and argue with it.
How scoring works (short version)
Each tool is scored 0–5 on six dimensions — Purpose Clarity, Parameter Semantics,
Behavioral Transparency, Schema Validity, Naming, Conciseness. The server score is
0.6 · mean + 0.4 · min across tools, so one badly-described tool drags the whole
server down (which is exactly how agents fail). Full rubric:
docs/METHODOLOGY.md.
Status
Early and honest: v0 of the rubric, stdio servers, deterministic checks only. An optional LLM "would an agent pick the right tool?" pass and remote-HTTP support are on the roadmap. Issues and rubric critiques welcome.
Development
uv pip install -e ".[dev]"
pytest
ruff check src tests
License
MIT — see LICENSE.
Release files for mcpgauge 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcpgauge-0.1.0.tar.gz | 71.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcpgauge-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:80.7 kB
Release files / mcpgauge-0.1.0.tar.gz
| Download URL | mcpgauge-0.1.0.tar.gz |
|---|---|
| Size | 71.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e018e4788645f35169acee1fb19b8eac16bb8613d35f7f5d6b6ef54c0e567fed
|
|
BLAKE2b-256 checksum How to use checksums |
52741b5f23e62f8c952b6b09067c55b328b34c3e25c7bf9548bd01c67dcfd6b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / mcpgauge-0.1.0-py3-none-any.whl
| Download URL | mcpgauge-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c47c9434f94cfdf5c8f43c0a0a5827dbe3aa642d9f17719bd931095c87ca0e6e
|
|
BLAKE2b-256 checksum How to use checksums |
a2868013ccbb10d2398508674d01c10ca3dd8c9d43b158ac060c96dc8cf4fda6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|