A MediaWiki API client server for searching and retrieving content from personal wiki instances
Server provides 5 read-only tools with mostly complete schemas and reasonable descriptions. Tool names follow verb_noun convention and are action-oriented. All tools have non-empty descriptions (range 64-106 chars, within the 10-1024 baseline). Input schemas are present and typed with Pydantic BaseModel classes. However, several tools lack parameter descriptions for some fields, output schemas are partially documented (return types visible in code but not formally declared in tool registration), and error handling is minimal. The server targets a narrow use case (MediaWiki API wrapper) with good cohesion but incomplete adherence to LLM-optimized patterns. Transport is STDIO-only, which is a hard constraint that caps the protocol readiness score at 50.
Retrieve the content of a specific wiki page by title or page ID.
List all pages on the wiki.
List all pages that belong to a specific category on the wiki.
List recently modified pages on the wiki.
Search for pages on the wiki based on the provided query.
Output schemas not formally declared in tool registration. Return types are visible in code (SearchResponse, PageContent, List[PageSummary]) but tool registration does not include output schema definitions. LLMs cannot see what fields to expect from responses.
Minimal error handling without recovery guidance. Tools raise ValueError or rely on API response exceptions (e.g., response.raise_for_status()) but do not provide actionable error messages that guide the LLM toward recovery. Example: 'No pages found' does not suggest calling search_personal_wiki first or checking category name spelling.
Parameter 'title' and 'pageid' in get_personal_wiki_page are mutually exclusive but this dependency is not explicitly documented in parameter descriptions. LLMs may pass both or neither without clear guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
ListCategoryPagesParams and ListAllPagesParams fields lack descriptions. 'category', 'limit', 'days' parameters are defined in Pydantic models but descriptions are minimal or missing in some contexts. The 'category' field in ListCategoryPagesParams has no Field() description annotation.
No pagination guidance in tool descriptions. list_all_pages and list_category_pages return lists but descriptions do not explain how to handle results larger than the limit or whether pagination is available.
STDIO transport only. Server cannot be accessed remotely by hosted MCP clients. This is a hard constraint that limits deployment flexibility.