Arch Wiki MCP Server - A Truth Perimeter for AI. Deterministic, hash-stable extraction of wiki content with full provenance for Arch Linux documentation.
Strong tool definitions with excellent descriptions and comprehensive schemas. All 7 tools have clear, detailed descriptions (100-250 chars) explaining purpose, behavior, and output structure. Input schemas are well-formed with proper types, descriptions, and constraints (minLength, pattern, min/max for limit). Tool names follow verb_noun convention (search, page, sections, section, commands, warnings, links). Output schemas are documented in docstrings with field explanations. Key strength: provenance-focused design with content_hash, content_raw, and revision tracking. Weakness: no error handling guidance in descriptions, no enum constraints for optional parameters, and tool composition could be tighter (e.g., section + commands + warnings could accept optional anchor parameter more consistently).
Extract code blocks from page or section. Content is runnable once its placeholders are substituted; those stay marked as <esp>. content_raw is what content_hash covers, so hashing it as returned always reproduces content_hash. A template block ({{bc}}/{{hc}}) is verbatim wikitext; an indented block has MediaWiki's one leading marker space stripped from each line.
Extract internal links from page or section
Get full page with metadata
Search Arch Wiki pages: the exact-title match first when one exists, then the wiki's full-text hits in its own order. A pointer, never evidence -- results carry no revid and no hash, and `snippet` is never quotable.
Extract single section with full provenance. Content is rendered for quoting: markdown headings, fenced code, resolved links. content_raw is the verbatim wikitext slice and is what content_hash covers, so the citation stays falsifiable against the wiki.
List all sections in page with anchors and offsets
Tool 'page' description is generic ('Get full page with metadata'), lacks context on when to use vs. 'section' or 'sections'. Should explain it returns full wikitext and all sections.
Tool 'links' has minimal description (only 'Extract internal links from page or section'), does not explain output structure, whether links are resolved, or how to use them for navigation.
No error handling guidance in any tool description. LLMs cannot infer recovery steps if a page is not found, anchor is invalid, or search returns empty. Should add 'If not found, try search() first' hints.
Parameter 'anchor' is optional in commands/warnings/links but required in section. Inconsistent interface, LLMs may pass anchor to section expecting it to be optional, or omit it from commands expecting it to be required.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | <=2025-11-25 | v2 |
Extract warning templates from page or section. Message is readable prose, safe to quote to a user. message_raw is the verbatim template body, and content_hash covers that. Fails closed: a translated page writes {{Note (Español)}} or {{Attention}} (a redirect to Template:Warning (Français)), so template names are resolved against the wiki first.
Output schemas documented in docstrings but not in JSON Schema format visible to clients. MCP protocol requires structured output schemas; docstrings alone do not expose them to the LLM at tool selection time.