An MCP server that provides documentation search and code example retrieval for multiple programming libraries and frameworks
This server has basic tool definitions but significant quality gaps. All 4 tools have descriptions and input schemas are partially visible, but descriptions are generic (10-50 chars), parameter descriptions are minimal or missing, and output schemas are not documented. The tools lack error recovery guidance, parameter constraints (enums), and composition support. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. The codebase shows FastAPI endpoints but no explicit MCP protocol integration visible, tool registration appears inferred rather than explicit.
Get a list of all available documentation libraries and frameworks supported by the server
Retrieve code examples for a specific function across multiple programming languages
Health check endpoint to verify the server is running and healthy
Search documentation for a specific term across multiple programming libraries and frameworks
Output schemas not documented. Tools return Pydantic models (DocumentationResult, CodeExampleResult) but LLMs cannot see the response structure. Missing field descriptions for 'results', 'examples', 'error' fields.
Parameter descriptions are minimal or absent. 'library' param lacks guidance on valid values; 'term' and 'function' lack format/length constraints; 'max_results' and 'max_examples' lack min/max bounds. LLMs cannot infer valid ranges.
No tool annotations despite all tools being read-only. Missing readOnlyHint on all 4 tools. Agents cannot distinguish safe tools from destructive ones without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
Error handling lacks recovery guidance. Errors return generic messages ('Failed to fetch documentation: 200') without actionable next steps. No guidance on retryability or user-fixable vs fatal errors.
No enum constraints on 'library' parameter. Valid values hardcoded in DOC_SOURCES dict but not exposed as schema enum. LLMs may hallucinate unsupported libraries (e.g., 'ruby', 'go').