Grounds LLMs in real Latgalian: Wiktionary lemmas, inflections, romanization.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Find the real Latgalian word(s) whose pronunciation-romanization matches this clean-ASCII input — the inverse direction of `latgalian_romanize`. Because romanize is lossy, this is a LOOKUP against the words already in the dictionary cache: attested spellings come back as source=dictionary. If none match, a single best-effort reconstruction is returned (source=reconstruction, approximate=true) — a guess, not attested. Coverage grows as words are cached, so an identical query may return a reconstruction now and a dictionary hit later.
Romanized (clean-ASCII) Latgalian text to resolve back to real orthography. Returns the attested dictionary spelling(s) whose romanization matches (source=dictionary, exact) — several may match one ambiguous key. On a miss, a single best-effort reconstruction (source=reconstruction, approximate=true), which is a guess: romanize is lossy, so case, the plain o/ō, the cedilla on ŗ and macron length cannot be recovered, and a soft-consonant glide (ly/ny/ky/gy) may be over-restored.
Find the real Latgalian word(s) whose pronunciation-romanization matches this clean-ASCII input — the inverse direction of `latgalian_romanize`. Because romanize is lossy, this is a LOOKUP against the words already in the dictionary cache: attested spellings come back as source=dictionary. If none match, a single best-effort reconstruction is returned (source=reconstruction, approximate=true) — a guess, not attested. Coverage grows as words are cached, so an identical query may return a reconstruction now and a dictionary hit later.
| Argument | Type | Description |
|---|---|---|
| text* | string | Romanized (clean-ASCII) Latgalian text to resolve back to real orthography. Returns the attested dictionary spelling(s) whose romanization matches (source=dictionary, exact) — several may match one ambiguous key. On a miss, a single best-effort reconstruction (source=reconstruction, approximate=true), which is a guess: romanize is lossy, so case, the plain o/ō, the cedilla on ŗ and macron length cannot be recovered, and a soft-consonant glide (ly/ny/ky/gy) may be over-restored. |
{
"type": "object",
"title": "latgalian_deromanizeArguments",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"title": "Text",
"maxLength": 4000,
"minLength": 1,
"description": "Romanized (clean-ASCII) Latgalian text to resolve back to real orthography. Returns the attested dictionary spelling(s) whose romanization matches (source=dictionary, exact) — several may match one ambiguous key. On a miss, a single best-effort reconstruction (source=reconstruction, approximate=true), which is a guess: romanize is lossy, so case, the plain o/ō, the cedilla on ŗ and macron length cannot be recovered, and a soft-consonant glide (ly/ny/ky/gy) may be over-restored."
}
}
}Fetch the full declension (nominals) or conjugation (verbs — positive AND negative) tables for a lemma identified by a search result's inflection handle (entry_id + word_class). Use this only when a search ran without inline forms or left a match un-expanded — a default search already returns each match's table inline. Returns Markdown plus the table as structuredContent with the shape {"result": <paradigm>} per the declared outputSchema — switch on result.category ('nominal' | 'verbal' | 'not_found') before reading the body. Content from en.wiktionary.org (CC BY-SA 4.0).
| Argument | Type | Description |
|---|---|---|
| entry_id* | string | The Wiktionary page title (the lemma) from a search result's inflection handle, e.g. 'akmiņs', 'byut'. |
| word_class* | string | The part-of-speech section from a search result's inflection handle, e.g. 'verb', 'noun', 'adjective'. |
{
"type": "object",
"title": "latgalian_get_inflectionsArguments",
"required": [
"entry_id",
"word_class"
],
"properties": {
"entry_id": {
"type": "string",
"title": "Entry Id",
"pattern": "^[A-Za-zĀāČčĒēĪīŪūŌōŖŗŠšŽžĻļŅņĶķĢģ][A-Za-zĀāČčĒēĪīŪūŌōŖŗŠšŽžĻļŅņĶķĢģ\\-']{0,79}$",
"maxLength": 80,
"minLength": 1,
"description": "The Wiktionary page title (the lemma) from a search result's inflection handle, e.g. 'akmiņs', 'byut'."
},
"word_class": {
"enum": [
"abbreviation",
"acronym",
"adjective",
"adverb",
"affix",
"article",
"character",
"circumfix",
"classifier",
"combining form",
"conjunction",
"contraction",
"counter",
"determiner",
"diacritical mark",
"idiom",
"infix",
"initialism",
"interfix",
"interjection",
"letter",
"ligature",
"noun",
"number",
"numeral",
"participle",
"particle",
"phrase",
"postposition",
"prefix",
"preposition",
"prepositional phrase",
"pronoun",
"proper noun",
"proverb",
"punctuation mark",
"romanization",
"root",
"suffix",
"symbol",
"verb"
],
"type": "string",
"title": "Word Class",
"description": "The part-of-speech section from a search result's inflection handle, e.g. 'verb', 'noun', 'adjective'."
}
}
}Strip Latgalian orthography down to clean, pronounceable ASCII for an English-trained downstream (a voice/TTS, a search box). See the `text` parameter doc for the exact letter mappings. Returns Markdown plus the romanized output as structuredContent matching the declared outputSchema. Pure local transform: no dictionary lookup, no network, and the output is always ASCII.
| Argument | Type | Description |
|---|---|---|
| text* | string | Latgalian text to reduce to clean, pronounceable ASCII. Lowercases and maps each special letter to an English-readable spelling: the macron vowels double (ā→aa, ē→ee, ī→ee, ō→o, ū→oo), the caron consonants respell (č→ch, š→sh, ž→zh), and the soft consonants take a 'y' glide (ļ→ly, ņ→ny, ķ→ky, ģ→gy; ŗ→r). A one-way fold — diacritics are dropped, never added. Pass a word, phrase, or several lines; whitespace and punctuation are preserved. |
{
"type": "object",
"title": "latgalian_romanizeArguments",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"title": "Text",
"maxLength": 4000,
"minLength": 1,
"description": "Latgalian text to reduce to clean, pronounceable ASCII. Lowercases and maps each special letter to an English-readable spelling: the macron vowels double (ā→aa, ē→ee, ī→ee, ō→o, ū→oo), the caron consonants respell (č→ch, š→sh, ž→zh), and the soft consonants take a 'y' glide (ļ→ly, ņ→ny, ķ→ky, ģ→gy; ŗ→r). A one-way fold — diacritics are dropped, never added. Pass a word, phrase, or several lines; whitespace and punctuation are preserved."
}
}
}Look a Latgalian word up on Wiktionary and return its senses plus full declension/conjugation tables — attested content, not invented. Any form of the word works; an inflected query is resolved to its lemma automatically via previously cached paradigms and the result notes the resolution. With search_language='eng' the query is an English word instead: the result lists its per-sense Latgalian equivalents (the translations block) plus their expanded entries. Returns Markdown plus the same result as structuredContent matching the declared outputSchema. Results are cached server-side; first-time queries reach the live upstream politely and calls are rate limited — on a rate-limit error, wait a few seconds and retry. Content is from en.wiktionary.org (CC BY-SA 4.0 — attribute and share alike if republished).
| Argument | Type | Description |
|---|---|---|
| query* | string | The word to look up, in the language search_language names. Latgalian (default): a SINGLE Latgalian word, any form — an inflected form ('akmiņa') is resolved to its lemma ('akmiņs') automatically via cached paradigms, and the result says so; diacritics are optional once a paradigm is cached ('akmins' finds 'akmiņs'). English (search_language='eng'): the English word whose Latgalian equivalents you want — multiword entries like 'apple tree' work. |
| max_forms | any | Optional override for how many inflection tables to expand this call (0–12). On an uncached query each table is one politely paced upstream fetch, so high values on cold queries are slow. Omit for the server default. |
| include_forms | boolean | When true (default), each match's full declension/conjugation table is returned INLINE — usable cases/tenses in ONE call, no follow-up latgalian_get_inflections. Set false for a cheap screen of which entries exist. Bounded by a per-search cap — use max_forms to adjust per call. For eng queries this governs the expanded Latgalian entries; the per-sense translations list itself is always returned. |
| search_language | any | Language the query word is in: 'ltg' (default) looks the Latgalian word up directly; 'eng' finds the Latgalian equivalents of an English word (per-sense, from Wiktionary's translation tables) and returns their full entries. Glosses are in English either way. |
{
"type": "object",
"$defs": {
"SearchLanguage": {
"enum": [
"ltg",
"eng"
],
"type": "string",
"title": "SearchLanguage",
"description": "The query language. ``ltg`` looks a Latgalian word up directly (any of its\nforms — an inflected query resolves via cached paradigms). ``eng`` searches in\nreverse: the English Wiktionary page for the query word lists per-sense\nLatgalian translations, and each distinct lemma is then looked up normally."
}
},
"title": "latgalian_searchArguments",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"title": "Query",
"maxLength": 80,
"minLength": 1,
"description": "The word to look up, in the language search_language names. Latgalian (default): a SINGLE Latgalian word, any form — an inflected form ('akmiņa') is resolved to its lemma ('akmiņs') automatically via cached paradigms, and the result says so; diacritics are optional once a paradigm is cached ('akmins' finds 'akmiņs'). English (search_language='eng'): the English word whose Latgalian equivalents you want — multiword entries like 'apple tree' work."
},
"max_forms": {
"anyOf": [
{
"type": "integer",
"maximum": 12,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Max Forms",
"default": null,
"description": "Optional override for how many inflection tables to expand this call (0–12). On an uncached query each table is one politely paced upstream fetch, so high values on cold queries are slow. Omit for the server default."
},
"include_forms": {
"type": "boolean",
"title": "Include Forms",
"default": true,
"description": "When true (default), each match's full declension/conjugation table is returned INLINE — usable cases/tenses in ONE call, no follow-up latgalian_get_inflections. Set false for a cheap screen of which entries exist. Bounded by a per-search cap — use max_forms to adjust per call. For eng queries this governs the expanded Latgalian entries; the per-sense translations list itself is always returned."
},
"search_language": {
"$ref": "#/$defs/SearchLanguage",
"default": "ltg",
"description": "Language the query word is in: 'ltg' (default) looks the Latgalian word up directly; 'eng' finds the Latgalian equivalents of an English word (per-sense, from Wiktionary's translation tables) and returns their full entries. Glosses are in English either way."
}
}
}