Autopia
Verified, reproduced behavior of public HTTP APIs: spec gaps, errors, pagination, auth.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"autopia": {
"url": "https://autopia-mcp.onrender.com/mcp"
}
}
}Remote endpoints
https://autopia-mcp.onrender.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢list_tools
The APIs the compendium covers: each with the hosts its trials hit, trust tier, version count, and counts of verified claims and spec divergences.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_versions(tool)
The spec versions recorded for one API, newest first, each fingerprinted by its spec hash. The ids identify versions for get_version_diff.
Input Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "tool name (e.g. github-rest), or the host / URL you are about to call (e.g. api.github.com)"
}
},
"required": [
"tool"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_tool_knowledge(tool, version, kind, limit, offset, ...)
Every verified claim about an API as structured records (latest version by default): paginated, filterable by kind, spec divergences flagged, each with compact evidence (trial id, probe, status, request line). verbose=true adds response previews.
Input Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "tool name (e.g. github-rest), or the host / URL you are about to call (e.g. api.github.com)"
},
"version": {
"type": "integer",
"description": "tool_version id; default latest"
},
"kind": {
"type": "string",
"description": "required | type | auth | pagination | error_behavior | response_shape | undocumented_constraint | undocumented | other"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"description": "default 100"
},
"offset": {
"type": "integer",
"minimum": 0
},
"verbose": {
"type": "boolean"
}
},
"required": [
"tool"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_divergences(tool, version, verbose)
Where the live API contradicts its own OpenAPI spec: documented limits not enforced, types not validated, required parameters not required, enums accepting other values. Compact evidence; verbose=true adds response previews.
Input Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "tool name (e.g. github-rest), or the host / URL you are about to call (e.g. api.github.com)"
},
"version": {
"type": "integer"
},
"verbose": {
"type": "boolean"
}
},
"required": [
"tool"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_claims(query, tool, limit, verbose)
Full-text search over verified claims by host and symptom, e.g. "github per_page 500", "npm search size 0", "is latitude required on /v1/forecast": the lookup for an unexpected 4xx/5xx, a parameter that seems ignored, an odd page, or wrong filter results. Optionally restricted to one API (name, host or URL). Compact evidence unless verbose=true.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"tool": {
"type": "string",
"description": "tool name (e.g. github-rest), or the host / URL you are about to call (e.g. api.github.com)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"verbose": {
"type": "boolean"
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_tool_docs(tool, version, full, brief, path)
The verified behavior sheet for an API: Markdown built only from verified claims, with spec contradictions first, then sibling differences, undocumented rules, and per-endpoint behavior (error shapes, pagination, validation, auth), every line citing trial ids. Accepts a tool name, a host, or the full URL about to be called; a URL or path scopes the sheet to that endpoint plus a one-line index of the others. Brief by default (what would change the request); full=true adds per-parameter validation, response shapes and all evidence ids.
Input Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "tool name (e.g. github-rest), or the host / URL you are about to call (e.g. api.github.com)"
},
"version": {
"type": "integer"
},
"full": {
"type": "boolean",
"description": "the whole sheet: per-parameter validation, response shapes, all evidence ids"
},
"brief": {
"type": "boolean",
"description": "deprecated: the default; brief=false is the same as full=true"
},
"path": {
"type": "string",
"description": "request path to scope to one endpoint, e.g. /repos/github/rest-api-description/issues; template segments match anything"
}
},
"required": [
"tool"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_version_diff(tool, from_version, to_version)
What changed in verified behavior between two spec versions of an API (changed, added and removed claims), as opposed to what changed in the spec text.
Input Schema
{
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "tool name (e.g. github-rest), or the host / URL you are about to call (e.g. api.github.com)"
},
"from_version": {
"type": "integer"
},
"to_version": {
"type": "integer"
}
},
"required": [
"tool",
"from_version",
"to_version"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢request_target(target)
Queues a public, read-only, credential-free API for probing, from a target object { name, spec_url (OpenAPI 3 document), category?, include_paths?, baseline? (valid values for required params per path), optional_values?, server? }. The spec is fetched and parsed and the battery planned immediately; probing runs rules-only on the worker's next pass. Requires a per-user key; quota 3 requests per key per day. Returns a request id for get_request_status.
Input Schema
{
"type": "object",
"properties": {
"target": {
"type": "object",
"additionalProperties": {},
"description": "the target definition; see targets/*.json in the repo for examples"
}
},
"required": [
"target"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_request_status(request_id)
Status of a target request (pending, running, done or failed), with the run id and summary once processed.
Input Schema
{
"type": "object",
"properties": {
"request_id": {
"type": "integer"
}
},
"required": [
"request_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence