MCP App Store
by KeenEthics

estonian

by Silly Geese

Overview

estonian-mcp wires EstNLTK (the canonical Estonian NLP toolkit) into any LLM client over MCP. Hand it Estonian text and it returns ground truth: lemmas, full morphology, POS tags, Vabamorf-grade spell-check with corrections, WordNet synonyms with definitions, fastText related-words, named entities, syllabification, and a register hint (formal vs colloquial). Designed for everyone writing Estonian with an AI assist (newsletters, emails, ads, official documents) whose AI would otherwise invent case forms and misspell words. Free, open-source (Apache-2.0), public endpoint hosted in Amsterdam. 10 tools, read-only.

Tools

analyze_morphology

Claude
Run full morphological analysis on Estonian text. For each word returns lemma(s), part-of-speech, grammatical form, root, ending, clitic, compound parts, ambiguity info, and a usage note flagging archaic / foreign / abbreviation / interjection / proper-noun cases. By default returns the first (most likely) analysis per word; set all_analyses=True to return every ambiguous analysis. Each word's response includes: - lemma, partofspeech, form, root, ending, clitic, root_tokens - analyses_count: how many alternative analyses Vabamorf produced for this surface form (>1 means the word is morphologically ambiguous) - is_ambiguous: shorthand for analyses_count > 1 - usage_note: machine code (None if neutral) — "archaic" / "foreign" / "abbreviation" / "interjection" / "proper-noun" - usage_note_estonian: human-readable Estonian rendering of the same flag (quote this verbatim in Estonian replies; do NOT translate the English usage_note yourself) - indeclinable: True for words that stay in base form when used attributively (lexical indeclinables like täis, and -tud/-nud past participles like tuntud) — i.e. they do NOT take the noun's case ending in agreement. Use this before inflecting a noun phrase so you don't wrongly decline an invariant adjective. Input is capped at 100,000 characters.

check_abbreviation_hyphenation

Claude
Heuristic check for the EKI Reeglid rule that case endings on Latin-letter / all-caps abbreviations are separated by a hyphen. Catches the common AI mistake of writing MCPst, APIga, OÜle instead of MCP-st, API-ga, OÜ-le. Uses Vabamorf's POS+form analysis to identify tokens recognised as abbreviations carrying a case ending; only flags those that aren't already hyphenated. Phase-1 scope: matches what Vabamorf tags as Y (abbreviation). Custom acronyms Vabamorf doesn't know (your brand acronym, niche industry shorthand) won't be flagged because Vabamorf doesn't see them as abbreviations. Input capped at 100,000 characters.

check_capitalization

Claude
Heuristic Estonian capitalization checker (Algustäheortograafia). Scans Estonian text for the most common AI-generated capitalization errors per EKI's Reeglid: - Weekday names capitalized mid-sentence (Esmaspäeval → esmaspäeval) - Month names capitalized mid-sentence (Jaanuaris → jaanuaris) - Nationality names capitalized mid-sentence (Eestlane → eestlane) - Country/language adjectives capitalized before a culture or language noun (Eesti keel → eesti keel; Eesti köök → eesti köök). The bare capitalized form on its own (Eesti, Eestis) is left alone because it's a valid country proper-noun usage. Sentence-initial capitalization is always allowed. All-caps acronyms are ignored. Returns each issue with rule code, an Estonian rule label (rule_estonian — quote this verbatim in Estonian replies, don't translate the English rule), a user-facing explanation, and a suggested correction. Input capped at 100,000 characters. PHASE-1 LIMITATION: this is a lexicon-based heuristic, not a full EÕS implementation. Compound-word capitalization, punctuation rules, and hyphenation are NOT covered by this tool (separate check_compounds / check_punctuation / check_hyphenation tools may follow).

check_compound_familiarity

Claude
fastText-based diagnostic for compound-noun familiarity in Estonian. For each compound noun (root_tokens length >= 2), returns its top fastText neighbours, a top_score similarity, a neighbour_quality breakdown, and is_suspect: true + human-readable reasons when the compound is out-of-vocab AND its top similarity is below 0.60 OR its neighbours are mostly scrape-artifact tokens. This catches both toortõlkeoht (OOV, top 0.571 — over the old 0.55 gate but a coinage) and mõtteliin (literal English "train of thought"; real Estonian is mõttekäik). Output is diagnostic, not authoritative. Even with the 100K-vocab medium model, some legitimate but rare compounds (e.g. tervisekindlustus) can still be OOV; the rule favours recall, so a flagged real compound just earns a second look. Judge by the included neighbours: semantically coherent neighbours (related real words) mean the compound is fine; neighbours that recycle the input's morphemes or are junk tokens mean a likely coinage. Input capped at 100,000 characters.

check_compounds

Claude
Heuristic Estonian compound-word check (liitsõnaõigekiri). Scans for common AI-generated splits of words that should be written as a single compound — kooli maja (wrong) → koolimaja (right), nädala vahetus (wrong) → nädalavahetus (right), etc. Uses a curated bigram lexicon (~30 entries covering the highest-frequency AI mistakes); not a full liitsõnaõigekiri solver. Phase-1 limitations: only catches the bigrams in the lexicon. Estonian compounding is highly productive and most valid compounds aren't enumerated here. Treat hits as high-confidence; absence of hits does not prove the compound writing is correct everywhere. Input capped at 100,000 characters.

check_defined_terms

Claude
Structural map of a long Estonian legal document. Extracts every term defined with (edaspidi «X»), counts how often each is actually used, lists § / lõige / punkt / artikkel cross-references, and flags defined-but-unused or doubly-defined terms — the consistency errors that creep into long contracts and statutes. Regex-based and PII-free (nothing is stored). Input cap is raised to 500,000 characters so a whole contract fits in one call; the echoed text is truncated to a 2,000-character preview.

check_hyphenation

Claude
Return safe line-break positions for an Estonian word (poolitamine). Different from syllabify (which is phonological): this returns character offsets where a typesetter can legally break the word across lines. Applies the no-orphan-edge rule (don't leave fewer than 2 characters before or after the break point). Phase-1 limitation: pure syllable-boundary based. Compound-boundary preference (Estonian poolitamine prefers kooli-maja over koo-limaja) is not yet applied. Input must be a single word with no whitespace, capped at 200 characters.

check_legalese

Claude
Aid for simplifying Estonian legal text WITHOUT losing legal precision. Returns two things: - issues: archaic 'kantseliit' filler with plain equivalents (käesolevsee, juhul kuikui), plus over-long / heavily subordinated sentences worth splitting. - terms_of_art: specialised legal terms detected in the text that MUST be kept verbatim when rewriting — swapping hagi or vastutus for a general synonym changes the legal meaning. Use this as a do-not-touch list while you simplify. Heuristic, precision-first, backed by curated starter lexicons (not exhaustive). Input capped at 100,000 characters.

check_numbers

Claude
Heuristic Estonian number-writing check. Flags two clear-cut cases per EKI Reeglid: - Decimal separator: Estonian uses a comma (3,14), not a period (3.14). - Thousands separator: Estonian uses a space (1 000 000), not a comma (1,000,000). Phase-1 limitations: spell-out-vs-digits guidance (the one-to-ten-spelled-out convention) is intentionally not implemented — it requires distinguishing measurements, dates, years, and lists from running prose, and naive flagging produces too many false positives. Input capped at 100,000 characters.

check_object_case

Claude
Heuristic Estonian object-case-government check. Catches the single biggest class of confidently-wrong Estonian that AI agents produce: direct objects in the wrong case after negation or after partitive-governing verbs. Two rules in phase 1: - Negation → partitive: any sentence containing 'ei', 'pole', 'ära', 'ärge', 'ärgu', 'ärgem', or 'mitte' must have direct objects in partitive. Flags nominative / genitive nouns. - Partitive-only verbs: the verbs armastama, vihkama, vajama, soovima, ootama, austama, kartma, puudutama, tundma always take partitive direct objects. Flags any noun in nominative/genitive in the same sentence. Phase-1 limitation: no syntactic parser, so we can't perfectly distinguish subject from object. Subjects in negation/partitive-verb sentences may be flagged as false positives. Treat hits as "worth a second look", not authoritative. Proper nouns are skipped. Input capped at 100,000 characters.

check_punctuation

Claude
Heuristic Estonian punctuation check — comma-before-clause rule. Flags missing commas before subordinating conjunctions where Estonian rules require one: et (that/in order to), kuna (because), sest (because), kuigi (although), kuid (but), vaid (rather), nagu (like), mistõttu (because of which), millepärast, kuhu. Phase-1 limitations: only the comma-before-clause-conjunction rule is covered. kui, mis, kes are deliberately excluded because their function is contextual (kui = than/as in comparisons doesn't need a comma). Listing commas, apposition commas, dash and colon rules — all out of scope for phase 1. Input capped at 100,000 characters.

check_redundancy

Claude
Heuristic Estonian pleonasm / semantic-doubling check. Flags phrasing that is grammatically valid but reads redundant to a native speaker — the class of error AI agents produce when they stack synonyms. Phase-1 rules, all high-precision: - Doubled 'also' particles: samuti ka, ka samuti, ühtlasi ka — both words mean "also/too", so together they're a tautology. (This is the exact samuti ka suvesärgid case.) - Double superlative: kõige before an already-absolute adjective (optimaalne, ideaalne, maksimaalne, täiuslik, ainus, …) — like English "most optimal". Lemma-matched, so all inflected forms count. - Fixed pleonasm phrases: a small curated set (ajaline periood, väike nüanss, üldine konsensus, …). Conservative by design — it catches the obvious, high-confidence cases, not every redundancy. Absence of flags is not proof the prose is tight. Input capped at 100,000 characters.

check_style

Claude
Heuristic Estonian style metrics for newsletter / ad / email copy. Returns four metrics that flag common writing issues, each with an Estonian-language summary line for quoting verbatim: - repetition: lemma-aware (so 'kasutab' and 'kasutamine' both count under 'kasutama'). Threshold scales with text length so short replies don't fire on natural repeats. - passive_voice: ratio of Estonian -takse/-ti/-tud/-tav forms over total verbs. Newsletter copy usually wants <15%. - sentence_length: mean, stddev, min, max in content words. Low stddev = monotonous rhythm. - hedging: density of hedging words (võib-olla, vist, pigem, ehk, ilmselt, …). >5% reads wishy-washy. Phase-1 limitation: heuristic only. No detection of cliché phrases, weasel-words beyond the curated 15 lemmas, or genre-specific style drift. Input capped at 100,000 characters.

classify_register

Claude
Heuristic register classifier for Estonian (formal vs colloquial). Returns a tier label (English in tier, correct Estonian in tier_estonian — quote that field verbatim when composing an Estonian-language reply rather than translating tier yourself, to avoid mistranslations like "formalne" instead of the correct "formaalne"), a normalised score in [-1, 1] (positive = formal, negative = colloquial), and the matched formal/colloquial markers found in the text. Useful for sanity-checking that marketing copy hasn't drifted into officialese, or that a contract draft hasn't slipped into chat tone. PHASE-1 LIMITATION: this is a coarse lexicon-based heuristic, not a trained model. Real register also lives in sentence structure, address forms, and passive voice — none of which this catches. Most newsletter prose scores 'neutral'. Use the result as a directional hint, not a verdict. Input capped at 100,000 characters.

lemmatize

Claude
Return lemma (dictionary form) for each word in the text. Concise output: [{"word": ..., "lemma": ...}, ...]. Input is capped at 100,000 characters.

named_entities

Claude
Extract named entities (PER/LOC/ORG) using EstNLTK's CRF model. Returns [{"text": ..., "type": ..., "start": ..., "end": ...}, ...]. Input is capped at 100,000 characters.

of-speech

Claude

paradigm

Claude
Generate the full inflection paradigm for an Estonian word. For nominals (nouns, adjectives, pronouns, numerals): produces all 14 cases × 2 numbers = up to 28 forms. For verbs: produces infinitives, present/past/conditional indicative, imperative, and participles (~30 forms). Other parts of speech (adverbs, conjunctions, particles) don't inflect — forms is empty. Each form entry has the Vabamorf form code (e.g. sg p, ksin), its Estonian label (e.g. ainsuse osastav, tingiv 1.p ainsus), and the surface form Vabamorf generated. Use form_estonian verbatim in Estonian replies — don't translate the English form code. Phase-1 scope: covers the most commonly-needed forms per word class, not every theoretical form Vabamorf can produce. Single-word input, capped at 200 characters.

pos_tag

Claude
Return part-of-speech tag for each word. POS tag set: S=noun, V=verb, A=adj, P=pron, D=adv, K=adp, J=conj, N=numeral, I=interj, Y=abbrev, X=foreign, Z=punct, etc. Input is capped at 100,000 characters.

spell_check

Claude
Check Estonian spelling for each word and optionally return suggestions. Returns one entry per word with text, spelling (bool), and suggestions (list of correction candidates) when suggestions=True. Input is capped at 100,000 characters. CAVEAT: Vabamorf accepts ANY morphologically well-formed word, including compounds you just invented (e.g. toortõlkeoht) — it splits them into valid roots and reports spelling: true. So passing spell_check does NOT mean a word is real, attested Estonian. For a coined or unusual compound, confirm it with check_compound_familiarity before trusting it.

syllabify

Claude
Split a single Estonian word into syllables with quantity and accent. Each syllable entry: {"syllable": str, "quantity": int, "accent": int}. Input is capped at 200 characters and must contain no whitespace.

synonyms

Claude
Look up Estonian synonyms via WordNet. Returns synsets (groups of synonymous lemmas) for the input word, each with its definition and example usages. Useful when you want Claude to pick a different word with the same meaning, e.g. swap an over-used verb in marketing copy. Word-sense ambiguity is preserved: a polysemous word returns multiple synsets, one per meaning. Input capped at 200 characters.

tokenize

Claude
Split Estonian text into sentences and words. Returns a dict with sentences (list of strings) and words (list of strings). Input is capped at 100,000 characters.

App Stats

25

Tools

Claude

Platforms

Works with

Claude

Data refreshed daily