Minimal MCP server for Võro dictionary, corpus, and language tooling.
Strong foundation with 14 well-named, action-verb tools and comprehensive descriptions (avg 180 chars). All tools have input schemas with types and descriptions. However, output schemas are not explicitly documented in the source code, only inferred from tool behavior. Parameter descriptions are generally good but lack explicit constraints (enums, ranges, patterns) for many fields. Error handling guidance is minimal. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) detected. All tools are READ_ONLY by risk classification, which is correct but not formally declared in schemas.
Analyze one or more Võro words with GiellaLT. Pass a single string, or a list of up to 100 words analyzed in one pass; the response is keyed by input form. Each value is a compact list of analysis strings; an empty list means no recognized analysis. Treat output as guidance. Accepts either `words` or `word` (alias). Note: spellcheck_vro, grammar_check_vro, analyze_word, and suggest_correction use related but not identical Giella/Divvun checks. A word may be morphologically analyzable while still being flagged by the speller or grammar checker. Treat spell/grammar results as warnings, not final proof.
Check the availability and status of all MCP server components: dictionary, corpus, word bag, GiellaLT tools, and Neurotolge API. Returns a structured report of which tools are available and any configuration issues.
Count output length for drafting constraints. Returns only {"characters": int, "words": int, "estimated_sentences": int}. Characters include spaces and punctuation. Words include normal prose words and numbers, preserving Võro apostrophe and hyphenated forms as one word where possible. Sentence count is an estimate from terminal punctuation.
Scan a larger Võro passage for Estonian-looking words and inflectional patterns. Returns a compact list of flagged tokens and their positions. Use this as a first pass on longer text; then pass individual flagged words to lint_estonian_leakage for in-depth analysis. Accepts either `text` or `passage` (alias).
Output schemas not explicitly documented. Tool descriptions state what is returned (e.g., 'keyed by input word', 'compact concept object') but formal JSON Schema output definitions are absent from visible code. LLMs cannot reliably plan downstream tool calls without knowing exact response structure.
Parameter constraints not formalized as enums or patterns. Fields like 'direction' (en-vro, et-vro, vro-en, vro-et) and 'source_type' (wiki_article, parallel_corpus_vro_side, tei_literature) are described in text but lack enum definitions. LLMs may hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Tokenize a larger Võro text/article and return unique word forms absent from the surface-form word bag. Use before or after translation to find forms that have not appeared in the current corpus/dictionary bag. Output is compact: unknown forms plus the number of checked tokens.
Tokenize larger Võro text and return only unique word forms that the GiellaLT analyzer marks as unrecognized (+?). By default every unique token is analyzer-checked. Set prefilter=true to first skip forms already present in the word bag; this is faster for long text, but words in the bag are not analyzer-checked. Output contains only unrecognized forms, checked candidate count, and whether prefiltering was used.
Find real usage snippets from the local Võro corpus. Pass a single word/phrase, or a list of up to 15 words/phrases to search many terms at once. Output is keyed by input word/phrase and contains short text snippets only. Optional source_type filters: wiki_article for encyclopedia text, parallel_corpus_vro_side for translated/aligned text, and tei_literature for fiction/literature. Set max_snippet_chars to choose the maximum returned snippet length (bounded to 80..1000 characters). Accepts either `words` or `word` (alias).
Grammar-check Võro text with the Divvun grammar checker. Pass a single word or a longer passage; returns grammar errors with span positions and ranked suggestions. Accepts either `text` or `passage` (alias). Note: spellcheck_vro, grammar_check_vro, analyze_word, and suggest_correction use related but not identical Giella/Divvun checks. A word may be morphologically analyzable while still being flagged by the speller or grammar checker. Treat spell/grammar results as warnings, not final proof.
In-depth Standard Estonian leakage linter for discrete Võro words. Pass a single word/short phrase, or a list of up to 100 inputs; each input is checked as a whole unit with no tokenization (mirrors word_exists_in_bag and analyze_word). For a larger passage, scan it with find_estonian_leakage first, then pass the flagged words here. It flags Estonian-looking inflectional endings such as -nud, -tud/-dud, and other morphological patterns.
Look up one or more words. Pass a single string, or a list of up to 15 words to look up many in one call. Output is keyed by input word; each result is a compact concept object with language keys such as en, et, and vro. Direction accepts the standard values en-vro, et-vro, vro-en, and vro-et; directed results include a direction field and only that source/target language pair. Leave direction unset by default for broader coverage; use direction only when that pair is specifically needed. Exact normalized matches are preferred; if none exist, lookup also searches inside stored comma-separated terms such as "church, temple". Accepts either `words` or `word` (alias).
Spell-check Võro text with the Divvun speller. Pass a single word or a longer passage; returns unknown words and ranked suggestions. Accepts either `text` or `passage` (alias). Note: spellcheck_vro, grammar_check_vro, analyze_word, and suggest_correction use related but not identical Giella/Divvun checks. A word may be morphologically analyzable while still being flagged by the speller or grammar checker. Treat spell/grammar results as warnings, not final proof.
Suggest a correction for a single Võro word. Combines dictionary, speller, and morphological generation to rank alternatives. Returns the input form, a valid flag, and up to 3 ranked alternatives. Treat output as guidance. Note: spellcheck_vro, grammar_check_vro, analyze_word, and suggest_correction use related but not identical Giella/Divvun checks. A word may be morphologically analyzable while still being flagged by the speller or grammar checker. Treat spell/grammar results as warnings, not final proof.
Translate text to Võro using the Neurotolge API. Pass a single word, phrase, or sentence; returns ranked translation candidates. Accepts either `text` or `passage` (alias). Requires VRO_NEUROTOLGE_BASE_URL to be configured.
Check whether word surface forms exist in the Võro word bag. Pass a single string, or a list of up to 100 words. Output is keyed by input word; the integer value is the stored count, with 0 meaning absent. Existence does not prove the form is standard or correct in context. Accepts either `words` or `word` (alias).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. All 14 tools are READ_ONLY by risk classification, but this is not formally declared in schemas. Agents cannot automatically infer safety properties.
Error handling guidance minimal. Tool descriptions do not explain what to do if a lookup fails, a corpus is unavailable, or the Neurotolge API is unreachable. No recovery hints or error classification (retryable vs fatal).
Numeric parameter ranges not specified. 'limit' fields lack min/max bounds; 'max_snippet_chars' states 80..1000 in description but not as formal schema constraints. Unbounded parameters invite invalid LLM inputs.