MCP server for reading JSON knowledge base without modifications
Server provides 7 read-only tools with basic schemas and descriptions. All tools have input schemas and descriptions present, but descriptions are minimal (10-80 chars, well below the 194-char baseline). Parameter descriptions are sparse or absent. No output schemas documented. Error handling returns isError flags but lacks recovery guidance. Tools follow verb_noun naming convention (read_, search_, get_) but descriptions do not explain WHEN to use each tool or how they differ. No tool annotations (readOnlyHint, etc.). Composition is reasonable, each tool has one responsibility, but parameter naming could be more explicit (e.g., 'id' should be 'entry_id' for clarity).
Retrieve entries of a specific category
Retrieve entries that contain certain tags
Retrieve a specific entry by ID
Get statistics about the knowledge base
Retrieve entries related to a specific entry
Read the entire knowledge base
Search for entries by text
Descriptions are too brief (10 - 80 chars vs. 194-char baseline). LLMs cannot determine when to select each tool or how they differ. E.g., 'Read the entire knowledge base' vs 'Get statistics about the knowledge base', unclear which to call first or when each is appropriate.
No output schemas documented. LLMs cannot plan downstream calls or extract fields. E.g., search_entries returns JSON but structure is not declared, does it return an array of objects? What fields does each entry have?
Parameter naming lacks type suffixes. 'id' should be 'entry_id' to clarify it refers to an entry, not a category or tag. 'category' should be 'category_id' if it expects a system ID. Ambiguous names force LLMs to guess.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Error handling returns isError=true with text messages but no recovery guidance. E.g., 'Entry with ID not found' does not suggest calling search_entries() to find the correct ID. Errors should guide the LLM's next action.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared in the tool definition. Annotations help agents reason about safety and retry logic.