Turn any documentation into an AI-searchable knowledge base with MCP integration, vector search, and a CLI for ingestion
The server demonstrates solid foundational quality with four well-named, verb-led tools and explicit JSON Schema definitions. All tools have descriptions and input parameters. However, there are significant gaps in parameter descriptions, output schema documentation, and error handling guidance. Tool descriptions are adequate but somewhat generic. Parameter validation constraints are underspecified. The codebase shows good internal organization (unified tool definitions in src/tools.ts, clear content manager separation), but these architectural strengths don't fully compensate for the definition-layer issues an LLM depends on.
Browse all entries in a specific category
Get a list of all available tags in the knowledge base
Search through specific content chunks for detailed information
Search through the documentation knowledge base by query, category, or tags
Output schemas are not documented for any tool. LLMs cannot plan downstream tool calls or extract specific fields without knowing what structure each tool returns. The source shows input schemas clearly but output shape is opaque.
Parameter descriptions lack actionable constraints. 'category' in browse_by_category is typed as string with description 'Category to browse' but no enum, example, or guidance on valid values. LLMs will guess or pass arbitrary strings.
Discovery pattern is weak. browse_by_category and search_documentation accept 'category' and 'tags' parameters but don't explain what categories/tags exist or how to find them. get_all_tags is a discovery primitive, but its output schema isn't documented, so LLMs don't know if it returns tag names, tag objects, or a nested structure.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 51 | 2025-03-26+ | v1 |
search_documentation and search_chunks both perform search operations with overlapping intent. Descriptions don't clearly explain when to use one vs the other (full-document search vs chunk-level semantic search, presumably). Without clear differentiation, LLMs waste reasoning cycles or pick the wrong tool.
No error handling guidance in tool descriptions. If a search returns no results, or if a category doesn't exist, LLMs have no recovery hints. Descriptions don't mention retry logic, alternative parameters, or what 'no results' means.
Parameter 'tags' in search_documentation is an array of strings but lacks description of valid tag values, tag naming conventions, or format. Description just says 'Filter by specific tags', not actionable for LLM parameter binding.