A dependency-free MCP bridge from LM Studio to a Kiwix HTTP server for offline Wikipedia and other content access
Three tools with complete schemas and reasonable descriptions. Naming follows verb_noun convention (list_, search_, get_). Descriptions are adequate (60-90 chars) but lack actionable context for LLM selection. Parameters are typed and described, but lack constraints (enums, ranges). Output schemas are not documented. Error handling is absent from descriptions. No tool annotations (readOnlyHint present in metadata but not in schema). Composition is sound, tools chain naturally (search → get_article). Missing: pagination guidance, output field documentation, recovery hints.
Retrieve the full content of a specific article from Kiwix
List all available books/content in the Kiwix server with optional filtering by language and search term
Search for articles across all books in the Kiwix server
Output schemas not documented. LLMs cannot infer what fields search_articles or get_article return, forcing them to guess downstream field names and risking broken tool chains.
Descriptions lack actionable context. 'Search for articles across all books' does not explain when to use this vs list_books, what the response structure is, or how to handle no results. LLMs cannot distinguish intent.
No pagination guidance. list_books accepts 'limit' but no offset/cursor. If Kiwix has 1000 books, the tool returns only 100 by default with no way to fetch the rest. Agents cannot discover all available content.
Parameters lack constraints. 'language' accepts any string (should be enum of supported ISO 639-3 codes). 'limit' is unbounded (should be 1 - 100). 'max_chars' in get_article has a max but no min. LLMs will pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No error recovery guidance. Descriptions do not explain what happens if a book is not found, a search returns zero results, or the Kiwix server is unreachable. LLMs have no recovery path.