Automated tests for MCP servers: schema checks, YAML tests, fuzzing, benchmarks, tool-selection evals and a pytest plugin.
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"mcp-toolproof","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# toolproof [](https://pypi.org/project/mcp-toolproof/) [](https://pypi.org/project/mcp-toolproof/) [](https://github.com/NilkanthSuthar/toolproof/actions/workflows/ci.yml) [](https://nilkanthsuthar.github.io/toolproof/) [](https://github.com/NilkanthSuthar/toolproof/blob/main/LICENSE) **Automated tests for [Model Context Protocol](https://modelcontextprotocol.io) servers.** Check tool definitions, write YAML or pytest tests, fuzz every tool from its schema, benchmark latency, check that models pick the right tools, and fail the build when something breaks. ```bash pip install mcp-toolproof toolproof fuzz -- python my_server.py ``` **[Documentation](https://nilkanthsuthar.github.io/toolproof/)** · [Getting started](https://nilkanthsuthar.github.io/toolproof/getting-started/) · [Configuration](https://nilkanthsuthar.github.io/toolproof/guide/configuration/) · [CLI](https://nilkanthsuthar.github.io/toolproof/reference/cli/) · [Changelog](https://github.com/NilkanthSuthar/toolproof/blob/main/CHANGELOG.md) ## Features - **Static checks**: every tool needs a name, a description, a valid JSON Schema and required fields that exist - **YAML tests**: assert on errors, text, regex, JSONPath values, latency and the tool's own `outputSchema` - **Fuzzing**: valid and invalid inputs generated from each tool's schema with Hypothesis; crashes, hangs, internal errors and leaked tracebacks, each shrunk to the smallest failing input - **Benchmarks**: p50/p95/p99 latency, throughput and error rate under concurrency, with thresholds - **Tool-selection evals**: give a model your tool list and check it picks the right tool and arguments for real requests; Anthropic, O…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.