HippoBox MCP + Knowledge Store Server - Unified FastAPI + MCP server for Knowledge Store & RAG
HippoBox exhibits significant gaps in definition quality across multiple dimensions. Tool descriptions are present but often too brief (averaging ~40-50 chars, below the 194-char baseline). Input schemas are visible for only 4 of 12 tools; the remaining 8 tools lack documented input parameters entirely, making their expected arguments opaque. Parameter descriptions are sparse or absent. The naming convention is sound (verb_noun pattern: create_, list_, get_, update_, delete_, search_), but schema documentation is the primary weakness. Error handling, output schemas, and composition guidance are largely absent. The server relies on implicit API contracts rather than explicit tool definitions that would guide LLM tool selection and parameter binding.
Create a new knowledge item
Create a new topic
Delete a knowledge item
Delete a topic
Get a specific knowledge item
Get a specific topic
List all knowledge items
List all topics
8 of 12 tools lack visible input schemas. create_knowledge, list_knowledge, create_topic, list_topics have no documented parameters, making their expected inputs completely opaque to LLMs.
Tool descriptions are uniformly too brief (25 - 40 characters). Examples: 'Create a new knowledge item' (30 chars), 'List all knowledge items' (24 chars). These lack context for WHEN to use the tool vs. similar ones, prerequisites, or what is returned. Rubric baseline is 194 chars average.
Parameters that are present (e.g., knowledge_id, topic_id in get/update/delete tools) lack descriptions beyond the parameter name itself. LLMs cannot infer whether these expect UUIDs, slugs, numeric IDs, or names.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 32 | - | v1 |
Returns server health status
Search knowledge items using vector database
Update a knowledge item
Update a topic
No output schemas documented for any tool. LLMs do not know what fields to expect in responses, preventing proper chaining and data extraction. For example, does list_knowledge return {'items': [...], 'total': N} or {'knowledge': [...]}?
Destructive tools (delete_knowledge, delete_topic) lack confirmation or dry-run support. No error recovery guidance provided. Agents cannot self-correct on failure.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are visible in the tool definitions. This prevents clients from flagging read-only operations or warning about irreversible actions.
List and search tools lack pagination parameters (limit, offset, page_size, cursor) and do not document result limits. Large result sets will blow context windows.