Turn an OpenAPI spec into a high-quality, curated MCP server — with an eval harness that proves curation works.
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-curate","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.
# mcp-curate [](https://pypi.org/project/mcp-curate/) [](https://github.com/tarundattagondi/mcp-curate/actions/workflows/ci.yml) [](https://www.python.org/) [](LICENSE) **Turn an OpenAPI spec into a *curated* MCP server an LLM can actually use — and prove it with an eval.** A naive OpenAPI→MCP generator dumps one tool per endpoint. Point it at GitHub's API and the model drowns in **1190 tools** and picks the wrong one. `mcp-curate` consolidates those endpoints into a small set of clear, well-described meta-tools — and ships an eval harness that measures whether the model picks the right tool, raw vs curated, on *your own* spec. ## Before / after | Spec | Raw tools | Curated tools | Reduction | |------|----------:|--------------:|----------:| | Swagger Petstore | 19 | **3** | 84% | | Stripe API | 587 | **40** | 93% | | GitHub REST API | 1190 | **40** | 97% | ``` $ mcp-curate curate examples/github.json raw tools: 1190 curated tools: 40 (budget 40) reduction: 97% Curated tools (actions consolidated): - repos: 202 actions [repos] - actions: 187 actions [actions] - orgs: 108 actions [orgs] - issues: 55 actions [issues] ... ``` Each curated tool exposes an `action` argument that selects the underlying operation, so 1190 flat choices become 40 namespaced ones. **Oversized tags get split, not stuffed.** When the tool budget has headroom, a giant tag is broken into focused sub-tools by path instead of one bloated tool. With more budget, GitHub's 202-operation `repos` tag splits cleanly: ``` $ mcp-curate curate examples/github.json --max-tools 120 --max-actions 30 - repos: ... repos_branches, repos_commits, repos_collaborators, - repos_branches: 36 repos_comments, repos_…
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.