Model Context Protocol server for AI assistants to search and query documentation (local-first, provider-agnostic)
CogniDocs provides 4 tools for documentation search with reasonable structure, but exhibits moderate quality gaps. All tools have descriptions and visible input schemas in the source, but descriptions are brief and lack actionable guidance. Parameter descriptions exist but are minimal. No output schemas are documented. Tool naming follows verb-noun convention (list, search, get, agentic_search), which is good. However, the tool set lacks error recovery guidance, and descriptions don't address when to use one tool vs. another. The agentic_search tool is interesting (extractive QA without external LLM), but the distinction from search_documentation is not clearly explained. No tool annotations (readOnlyHint, etc.) are present despite all being read-only operations.
Generate an extractive answer from top documentation search results (no external LLM required)
Get detailed information about a specific documentation set
List all available documentation sets
Search for information within a specific documentation set
Tool descriptions lack actionable guidance. Descriptions are 30-50 characters and do not explain WHEN to use each tool, WHY to choose it over similar tools, or WHAT prerequisites exist. For example, agentic_search vs search_documentation distinction is unexplained.
No output schemas are documented. LLMs cannot plan downstream calls or extract correct fields without knowing the structure returned by these tools. This is a critical gap for agent composability.
No tool annotations present. Despite all 4 tools being read-only operations, none carry readOnlyHint=true. This prevents clients from understanding tool safety without reading descriptions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 53 | - | v1 |
Parameter descriptions in search_documentation and agentic_search are minimal. 'The ID of the documentation set to search' is generic; it does not explain format (UUID? slug?) or how to discover valid IDs without calling list_documentation_sets first.
Tool naming 'agentic_search' is vague. The difference between agentic_search and search_documentation is buried in brief descriptions. A more explicit name like 'extract_qa_from_documentation' or 'search_documentation_with_qa_extraction' would clarify the distinction and prevent LLM confusion.
No error handling guidance. What happens if setId is invalid? If query is empty? If limit exceeds system limits? Responses should include actionable recovery hints (e.g., 'Documentation set not found. Call list_documentation_sets() to see available sets.').