Three tools with clear verb-noun naming (kiwix_list_books, kiwix_search, kiwix_fetch_article). All have descriptions and input schemas with types. However, descriptions are generic and lack LLM-optimization guidance. Parameter descriptions are present but minimal. Output schemas are not documented, responses are plain text strings rather than structured objects. Error handling is basic. No tool annotations (readOnlyHint, etc.). Composition is sound: tools chain logically (list → search → fetch), but output format (plain text) limits downstream tool integration.
Fetch a Kiwix article as plain text. Args: url: Relative article URL as returned by kiwix_search (e.g. '/devdocs_en_rust_2025-10/A/std/vec/struct.Vec.html').
List available ZIM books. Args: query: Optional title keyword to filter books (e.g. 'wikipedia').
Search Kiwix books. Args: query: Search query (required). book: Optional book slug to restrict search (e.g. 'devdocs_en_rust_2025-10'). Leave empty to search all books. start: Zero-based result offset for pagination (page size is 25).
Output schemas not documented. All three tools return plain text strings with no structured field definitions. LLMs cannot extract typed data for downstream tool calls or multi-step planning.
Descriptions lack LLM-optimization guidance. kiwix_search description does not explain when to call kiwix_list_books first on multi-book servers (though code has _auto_search_description logic). Descriptions are 50 - 100 chars; baseline is 194 chars. Missing WHEN/WHY context.
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint. All three are read-only (safe to retry), but this is not declared in the schema.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | <=2025-11-25 | v2 |
kiwix_search parameter 'book' lacks guidance on how to discover valid book slugs. Description says 'e.g. devdocs_en_rust_2025-10' but does not state 'call kiwix_list_books first' or explain slug format.
kiwix_fetch_article parameter 'url' description includes example '/devdocs_en_rust_2025-10/A/std/vec/struct.Vec.html', LLMs may reuse this literal value instead of adapting to actual search results.