# Latgalian MCP server > A read-only MCP server and JSON API over the English Wiktionary's Latgalian > entries — Latgalian is a living East Baltic language of Latgale, in eastern > Latvia (ISO 639-3 ltg; Latin script with diacritics). Use it to read and write > Latgalian with attested words and correct inflected forms instead of inventing > them. Read-only. ## What it does - Looks a Latgalian word up (any form) and returns its senses plus full declension/conjugation tables — the seven noun cases, the adjectives' indefinite/definite × gender family, and the verbs' positive and negative conjugations. - Finds the Latgalian equivalents of an ENGLISH word (search_language=eng): each sense's translations from Wiktionary's translation tables (the result's translations block), expanded into their full dictionary entries. - Resolves an inflected query to its dictionary lemma automatically via paradigms already cached — the result says so (search_method=lemma_index, with resolved_from/resolved_lemma). No external analyzer exists for Latgalian, so a form not yet in any cached paradigm won't resolve — look the lemma up directly. - Folds diacritics, so ASCII spellings work once a paradigm is cached: every Latgalian diacritic strips to its base letter ('akmins' finds 'akmiņs'). This is a one-way fold — diacritics optional, never a two-way digraph swap. ## How to connect (MCP) Remote streamable-HTTP endpoint (no auth, read-only): https://latgalian.valksor.com/mcp Claude Code: claude mcp add --transport http latgalian https://latgalian.valksor.com/mcp Cursor / Cline (~/.cursor/mcp.json): {"mcpServers": {"latgalian": {"url": "https://latgalian.valksor.com/mcp"}}} stdio-only clients — bridge with mcp-remote: {"mcpServers": {"latgalian": {"command": "npx", "args": ["-y", "mcp-remote", "https://latgalian.valksor.com/mcp"]}}} Tools (each returns Markdown plus typed structuredContent per its outputSchema): - latgalian_search(query, search_language='ltg'|'eng', include_forms=true, max_forms=N) Senses plus inflection handles (entry_id = the lemma/page title, word_class = the part-of-speech section). With include_forms (default TRUE on MCP; the JSON API defaults it false), each match's full table comes back inline. With search_language='eng' the query is an English word and the result lists its per-sense Latgalian equivalents plus their entries (English→Latgalian). - latgalian_get_inflections(entry_id, word_class) The full paradigm for one handle. Its structuredContent nests the paradigm under a "result" key (the search tool's payload is unwrapped); the JSON API returns it directly. Both shapes are discriminated by "category": nominal gives case keys -> {singular, plural} (nouns use the bare case; adjectives prefix the state and suffix the gender — 'indefinite nominative masculine'); verbal gives finite " [tense]" -> " " -> form (the negative table's keys carry a 'negative ' prefix) plus the non-finite forms; "not_found" when no table exists. - latgalian_romanize(text) Pure local diacritic→ASCII fold for an English-trained downstream (a voice/TTS, a search box) — no network, no cache, output always ASCII. Lowercases and maps each special letter (ā→aa, š→sh, ž→zh, ļ→ly, ņ→ny); diacritics are dropped, never added. Search tips: one Latgalian word per call; any form works, and ASCII spellings ('akmins') resolve once the lemma's paradigm is cached; for English→Latgalian pass search_language='eng' (multiword entries like 'apple tree' work). Prompts & resources (MCP): - Prompts latgalian_translate_to(text) and latgalian_translate_from(text, target_language) package the grounded-translation method. - Resource latgalian://glossary/grammar-labels documents the paradigm keys; this document is the llms.txt resource. ## How to call (JSON API) - GET https://latgalian.valksor.com/api/search?query=akmi%C5%86s - GET https://latgalian.valksor.com/api/search?query=stone&search_language=eng - GET https://latgalian.valksor.com/api/inflections?entry_id=byut&word_class=verb - GET https://latgalian.valksor.com/api/romanize?text=akmi%C5%86s - GET https://latgalian.valksor.com/api/health - Interactive docs: https://latgalian.valksor.com/api/docs · schema: https://latgalian.valksor.com/api/openapi.json ## Caching and politeness Dictionary responses are cached server-side with a long TTL (Wiktionary content changes slowly). Upstream calls are serialised with a polite minimum interval. Calls are rate limited per client IP — on a 429, wait a few seconds and retry. The romanize endpoint is a pure local transform and is exempt from the rate limit. ## Source and licence - Dictionary: Wiktionary, the free dictionary (en.wiktionary.org), Latgalian entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. - Licence: CC BY-SA 4.0 — attribute and share alike when republishing dictionary text.