Access to reference materials such as encyclopedia articles.
Three tools with clear action verbs (list, search, get), reasonable descriptions (10-200 chars each), and explicit parameter schemas. However, parameter descriptions lack actionable constraint details, output schemas are only partially documented via dataclass annotations, and error handling is absent. Tool names are verb-first and unambiguous. Descriptions answer WHAT but not WHEN or WHY. No input validation guidance, no error recovery hints, and no indication of how tools chain together.
Retrieve the complete content of an article previously returned in search results.
Get a list of content collections available
Search for articles in a collection that match the pattern text.
Parameter descriptions lack actionable constraints. uuid and pattern in searchCollection are marked 'REQUIRED must not be empty' in docstring but not formally constrained in schema. link in getArticle similarly lacks format/pattern specification.
Output schemas documented only via Python dataclass annotations. LLMs cannot parse dataclass metadata, schemas must be explicit in tool registration or returned examples. Article, SearchResult, Collection types are not visible to the MCP client.
No error handling or recovery guidance. kiwix_api._api_request() catches exceptions and logs them, but returns None silently. Tool docstrings do not explain failure modes, retryability, or next steps (e.g., 'if search finds nothing, try a broader pattern').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 60 | - | v1 |
No pagination support. searchCollection returns all results unbounded. Large result sets will bloat context and degrade reasoning. No limit, offset, or next_cursor parameters.
Parameter descriptions do not explain dependencies or prerequisite calls. searchCollection expects a uuid from listCollections, but the description does not state this. getArticle expects a link from searchCollection, but no hint provided. Agents may attempt out-of-order calls.
Tool descriptions are 50 - 75 characters, acceptable but minimal. They answer WHAT (list, search, retrieve) but not WHEN to use each tool or what distinguishes them from similar operations. Descriptions would benefit from +30 - 50 chars of context.