Offline MCP server wrapping EstNLTK, EKI Reeglid, and Riigi Teataja so AI agents write better Estonian. 26 tools: spell-check, morphology, paradigm, synonyms, related-words, register, style, redundancy, orthography (capitalisation, compounds, commas, numbers), case-government, compound attestation, kantseliit/officialese and terminology-consistency checks for reports and academic prose, plus legalese simplification and defined-term tracking for legal texts, and canonical legal-usage collocations.
24 tools with consistent naming (verb_noun pattern: spell_check, morphology, etc.) and adequate descriptions (100-150 chars typical). All tools are READ_ONLY, reducing complexity. However, input schemas are minimal, most accept only a single 'text' or 'word' parameter with basic string type and description. Output schemas are entirely undocumented: no return type specifications, field names, or structure guidance for LLMs. Parameter descriptions are present but generic ('Estonian text to check for X'). Error handling and recovery guidance absent. No tool annotations (readOnlyHint, etc.) despite all being read-only. Composition is sound (each tool does one thing), but lack of output documentation severely limits LLM ability to chain tools or extract structured results.
Check Estonian text for proper capitalization using EKI Reeglid rules
Check Estonian text for correct case government with verbs and prepositions
Check Estonian text for comma usage errors using EKI Reeglid rules
Check if an Estonian compound word is attested in lexicons using fastText embeddings
Check Estonian compound word writing using EKI Reeglid orthography rules
Map defined terms and cross-references in long Estonian legal documents
Output schemas completely undocumented. No return type specifications, field names, or structure guidance. LLMs cannot plan downstream tool calls or extract structured results without knowing what fields each tool returns.
No tool annotations despite all 24 tools being read-only. Missing readOnlyHint would help clients optimize caching and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Simplify Estonian legal text (legalese) while identifying terms of art that must be preserved
Check Estonian text for proper number formatting using EKI Reeglid rules
Check Estonian text for kantseliit (bureaucratic/official language) in reports and academic prose
Identify redundant words and phrases in Estonian text
Check if Estonian text uses appropriate register (formal vs informal) for the context
Check Estonian text for style issues including passive voice (umbisikuline tegumood) and rhythm problems
Check that terminology is used consistently throughout an Estonian document
Return canonical legal collocations for an Estonian term to ensure proper legalese phrasing
Lemmatize Estonian text, returning the base form of each word
Perform morphological analysis on Estonian text, returning lemmas, POS tags, and morphological features
Perform named entity recognition on Estonian text, identifying persons, locations, organizations, etc.
Generate the full inflection paradigm for an Estonian word, showing all case and number forms
Perform part-of-speech tagging on Estonian text
Find semantically related words using fastText word embeddings
Check Estonian text for spelling errors using Vabamorf morphological analyzer
Syllabify Estonian words, showing syllable boundaries
Find Estonian synonyms for a word using WordNet, with definitions and domain constraints
Tokenize Estonian text into words and sentences
No error handling or recovery guidance. Tools lack descriptions of failure modes, invalid input handling, or actionable error messages. LLMs cannot self-correct on failures.
Parameter descriptions are generic and lack format/constraint guidance. E.g., 'Estonian text to check for spelling errors' does not specify max length, encoding, or what constitutes valid input.
No pagination or result-limiting guidance. Tools like 'named_entities' and 'synonyms' may return large result sets without documented limits, risking context window exhaustion.