Offline, provenance-backed EU4 modding knowledge and diagnostics
Server has 9 tools with complete schemas and descriptions. Naming follows verb_noun convention (search_, get_, validate_, diagnose_, analyze_, explain_, find_, get_). Descriptions are present and substantive (avg ~120 chars), exceeding the 10-char minimum. All parameters have type definitions and descriptions. However, output schemas are not explicitly documented in the source, only inferred from return statements. Error handling is minimal; tools return raw dicts without recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being read-only. Parameter descriptions lack format/constraint details (e.g., 'path' params don't specify absolute vs relative, or path traversal guards). No pagination support for list-like results (search_eu4_docs, get_related_mechanics, find_mod_symbol). Missing per-tool security notes (e.g., file access scope).
Return machine-readable mission topology and visual-design findings.
Index and diagnose a local EU4 mod across files.
Explain the inferred EU4 scope stack at a local file and line.
Index a mod and locate definitions by name.
Get one exact entity; normal context summarizes oversized nested schemas.
Find snippets in a previously built local vanilla or mod index.
Find related EU4 concepts with bounded context and citations.
Output schemas not documented. Tools return dicts but LLM cannot see field types, required fields, or nested structure. Breaks downstream tool chaining and forces LLM to guess field names.
No tool annotations despite all tools being read-only. Missing readOnlyHint metadata prevents LLM from understanding safety guarantees and optimizing retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Search EU4 facts with bounded short/normal/full context and deduplicated citations.
Parse one local EU4 script file and return syntax findings.
Path parameters lack security constraints. 'path' in validate_eu4_script, diagnose_eu4_mod, analyze_eu4_mission_tree, explain_scope, find_mod_symbol accept arbitrary strings with no documented path traversal guards or scope limits.
No pagination or result limits documented for search tools. search_eu4_docs, get_related_mechanics, find_mod_symbol accept max_results but no guidance on default behavior or total count in response.
Error handling absent. Tools return raw dicts on success but no documented error responses, recovery guidance, or error classification (retryable vs fatal).