MCP server for fetching, searching, and managing web documentation context packs with semantic search capabilities
The server defines 6 tools with reasonable naming conventions and descriptions, but exhibits significant gaps in schema completeness, parameter documentation, and error handling guidance. All tools have descriptions (10-150 chars range), but most parameter descriptions are minimal or missing type details. Schema visibility is incomplete, the Python source files referenced are not fully shown, making it impossible to verify actual input schema definitions for ensure_docs and read_doc. The TypeScript tools (list_sources, search_docs, grep_docs, list_libraries) show input parameters but lack visible schema enforcement or output documentation. No tool provides guidance on error recovery, rate limiting, or edge cases.
Fetch Markdown for a configured alias; use cached content if fresh.
Search documentation using regex pattern matching across all indexed files.
List all indexed documentation libraries and their metadata.
List all available documentation sources (builtin and user-configured).
Read the full content of a specific documentation file.
Search indexed documentation using semantic search (vector similarity).
Output schemas not documented for any tool. LLMs cannot plan downstream calls or extract relevant fields without knowing the response structure.
Parameter descriptions are incomplete or missing for critical fields. 'query' in search_docs lacks description of format/language requirements. 'limit' parameters present but no min/max constraints documented.
No error handling or recovery guidance. Tools lack descriptions of failure modes, required preconditions (e.g., 'indexing requires DATABASE_URL and OPENAI_API_KEY'), or what the LLM should do on failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 32 | - | v1 |
Pagination and result limits not explicitly handled. search_docs and grep_docs both accept 'limit' but no documentation of default, maximum, or what happens when results exceed limit.
Tool descriptions are too generic. 'Fetch Markdown for a configured alias; use cached content if fresh' (ensure_docs) does not explain WHEN to call it vs read_doc, what 'fresh' means numerically, or what the 'index' parameter actually does in practical terms.
Source parameter in ensure_docs and read_doc requires a 'configured source name' but no guidance on how to discover valid sources (other than calling list_sources). Dependency should be documented.
No indication of which operations are idempotent vs destructive. ensure_docs with force=true may trigger side effects; unclear if it is safe to retry.