MCP server for listing public APIs from github.com/public-apis
Single tool 'get-public-apis' has a clear action verb and basic schema with enum constraints on categories. However, the tool lacks critical depth: the description is minimal (58 chars), parameter descriptions are present but generic, and the output schema is completely undocumented. The tool returns formatted text rather than structured data, making it harder for LLMs to extract and chain results. Error handling is minimal (generic catch-all). The categories enum is empty in the schema definition despite being populated at runtime, which violates schema completeness. No pagination support despite potentially returning large result sets.
Get list of public APIs from github.com/public-apis
Output schema completely undocumented. Tool returns formatted text string instead of structured objects with typed fields. LLMs cannot extract individual APIs, chain results to downstream tools, or reason about response structure.
Categories enum is empty in schema definition (enum: []) despite being populated from public-apis-categories.json at runtime. This breaks schema validation and prevents LLMs from discovering valid category options.
Tool description is only 58 characters ('Get list of public APIs from github.com/public-apis'). Lacks context on when to use it, what it returns, and how results are structured. Below the 194-char baseline for production tools.
No pagination support. Tool fetches and returns all matching APIs as a single formatted string. Large result sets will blow context windows and degrade LLM reasoning. No limit parameter, no offset/cursor, no total count.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Error handling is a generic catch-all that returns isError=true with the exception message. Does not guide the LLM on recovery steps, categorize the error as retryable/user-fixable/fatal, or suggest alternative actions.