livonian

Grounds LLMs in the real Livonian dictionary: attested words, inflections, romanization.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
95%
이름 품질
80%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~6,126토큰 (도구 정의)
~15.2 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 4.79%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "livonian": {
      "url": "https://livonian.valksor.com/mcp"
    }
  }
}

원격 엔드포인트

https://livonian.valksor.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (4)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢livonian_search(query, search_language, include_forms, max_forms)

Look a word up in the real Livonian–Estonian–Latvian dictionary and return only attested content, so translations are grounded, not invented. Search a meaning (in English/Latvian/Estonian) to find the Livonian headword, or a Livonian word to confirm it exists and read its sense, part of speech and examples. See the `query` and `search_language` parameter docs for how to phrase a query. By default each match's full inflection table is returned inline, so one call usually suffices; on a broad query only the first N tables expand (the rest are listed as handles to fetch with livonian_get_inflections). Returns Markdown plus the same result as structuredContent matching the declared outputSchema. Results are cached server-side, so repeating a query is instant and free; a first-time query reaches the live dictionary and calls are rate limited — on a rate-limit error, wait a few seconds and retry instead of re-issuing immediately. Dictionary content is from livonian.tech (CC BY-SA 4.0 — attribute if republished).

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "A SINGLE content word, not a phrase. Exactly one word per call — even with several candidates or synonyms in mind, search them one at a time ('see', then 'look'), never combined into one query like 'see look'. Drop function words and infinitive markers — search 'to water' as 'water', 'the sea' as 'sea'. The dictionary matches one attested headword, so a multi-word query often returns nothing even when the word exists; search the main word first, then refine. May be Livonian, Latvian, Estonian, or English (e.g. 'jarā', 'away', 'sea'). Matching is bidirectional. An inflected Livonian form (search_language='liv') is resolved to its dictionary lemma automatically when the form is known — the result says so when that happened.",
      "maxLength": 120,
      "minLength": 1,
      "title": "Query",
      "type": "string"
    },
    "search_language": {
      "$ref": "#/$defs/SearchLanguage",
      "default": "eng",
      "description": "Language your query word is in — selects which language the search matches against: 'eng' (default), 'liv', 'lat', or 'est'. For English→Livonian translation, keep 'eng'. Glosses are in English."
    },
    "include_forms": {
      "default": true,
      "description": "When true (default), each match's full inflection table is returned INLINE — usable cases/tenses in ONE call, no follow-up livonian_get_inflections. Set false to get just the headword handles + glosses: a cheap way to SCREEN several candidate words or synonyms (which exist? which sense?) before spending forms on the one you pick. Bounded by a per-search cap — use max_forms to raise or lower it for this call.",
      "title": "Include Forms",
      "type": "boolean"
    },
    "max_forms": {
      "anyOf": [
        {
          "maximum": 12,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional override for how many inflection tables to expand this call (0–12). Raise it to pull more tables in ONE call on a broad query, or set a small value to keep a broad query cheap. On an uncached query each table is fetched sequentially with polite pacing toward the upstream, so a high value on a cold broad query is slow — the bound limits upstream fan-out, not just response size. Omit to use the server's default cap.",
      "title": "Max Forms"
    }
  },
  "required": [
    "query"
  ],
  "$defs": {
    "SearchLanguage": {
      "description": "Which language the query word is matched against. Headwords come back in\nLivonian and glosses in English either way; this only selects the language the\nquery term is in. Codes are the site's own.",
      "enum": [
        "liv",
        "lat",
        "est",
        "eng"
      ],
      "title": "SearchLanguage",
      "type": "string"
    }
  },
  "title": "livonian_searchArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "language": {
      "$ref": "#/$defs/SearchLanguage"
    },
    "found": {
      "description": "False when nothing matched.",
      "title": "Found",
      "type": "boolean"
    },
    "handles": {
      "items": {
        "$ref": "#/$defs/InflectionHandle"
      },
      "title": "Handles",
      "type": "array"
    },
    "entries": {
      "description": "Structured dictionary entries: headword, pronunciation, part of speech, paradigm anchors, and senses with example sentences.",
      "items": {
        "$ref": "#/$defs/Entry"
      },
      "title": "Entries",
      "type": "array"
    },
    "forms_truncated": {
      "default": 0,
      "description": "How many handles did NOT get an inline table because the per-search cap was reached. Refine the query or call livonian_get_inflections.",
      "title": "Forms Truncated",
      "type": "integer"
    },
    "search_method": {
      "default": "direct",
      "description": "How the match was found: 'direct' = the query itself matched; 'lemma_index' = the query was an inflected Livonian form, resolved to its dictionary lemma via the cached paradigm index and re-searched.",
      "enum": [
        "direct",
        "lemma_index"
      ],
      "title": "Search Method",
      "type": "string"
    },
    "resolved_from": {
      "default": "",
      "description": "The original inflected query when search_method='lemma_index'; empty on a direct match.",
      "title": "Resolved From",
      "type": "string"
    },
    "resolved_lemma": {
      "default": "",
      "description": "The dictionary lemma actually searched when search_method='lemma_index'; empty on a direct match.",
      "title": "Resolved Lemma",
      "type": "string"
    },
    "source": {
      "default": "Ernštreits, Valts (ed. in chief), Viitso, Tiit-Rein, Vāvere, Signis, Damberg, Pētõr, Kurpniece, Milda, Balodis, Uldis, Tuisk, Tuuli, Kūla, Gita, Tomingas, Marili, Soosaar Sven-Erik, Sedláčková, Anna & Jurgenovskis, Toms. 2024. Livonian lexicographic database. Riga: University of Latvia Livonian Institute. https://livonian.tech/ (CC BY-SA 4.0)",
      "title": "Source",
      "type": "string"
    }
  },
  "required": [
    "query",
    "language",
    "found"
  ],
  "$defs": {
    "Entry": {
      "description": "One dictionary entry (one upstream result card): the headword with its\npronunciation, part of speech, paradigm anchors, and senses.\n\n``entry_id`` + ``word_class`` are the same anchors carried by an\n:class:`InflectionHandle` — feed them to ``livonian_get_inflections`` for the full paradigm.\nEvery field except ``headword``/``gloss`` defaults, so a card missing a\npronunciation, type code, or senses still validates.",
      "properties": {
        "headword": {
          "title": "Headword",
          "type": "string"
        },
        "pronunciation": {
          "default": "",
          "description": "Phonetic form in braces, e.g. {äm}.",
          "title": "Pronunciation",
          "type": "string"
        },
        "part_of_speech": {
          "default": "",
          "description": "e.g. 'noun', 'verb', 'adjective'.",
          "title": "Part Of Speech",
          "type": "string"
        },
        "type_code": {
          "default": "",
          "description": "Paradigm type code, e.g. '99', '53a'.",
          "title": "Type Code",
          "type": "string"
        },
        "entry_id": {
          "default": "",
          "description": "Numeric word id for the forms endpoint.",
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "default": "",
          "description": "Word-class code, e.g. 's', 'vt', 'adj'.",
          "title": "Word Class",
          "type": "string"
        },
        "senses": {
          "items": {
            "$ref": "#/$defs/Sense"
          },
          "title": "Senses",
          "type": "array"
        }
      },
      "required": [
        "headword"
      ],
      "title": "Entry",
      "type": "object"
    },
    "Example": {
      "description": "One usage example for a sense: the Livonian sentence and its English translation.\n``english`` is empty when the upstream entry gives the Livonian without a gloss.",
      "properties": {
        "livonian": {
          "title": "Livonian",
          "type": "string"
        },
        "english": {
          "default": "",
          "title": "English",
          "type": "string"
        }
      },
      "required": [
        "livonian"
      ],
      "title": "Example",
      "type": "object"
    },
    "InflectionHandle": {
      "description": "A reliable, structured anchor for fetching a full paradigm. Feed\n``entry_id`` + ``word_class`` to ``livonian_get_inflections`` — or ask ``search`` to\ninclude the table inline (``forms``).",
      "properties": {
        "entry_id": {
          "description": "Numeric word id used by the forms endpoint.",
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "description": "Word-class code, e.g. 's', 'vi', 'vt', 'adj'.",
          "title": "Word Class",
          "type": "string"
        },
        "context": {
          "default": "",
          "description": "Nearby headword / entry text.",
          "title": "Context",
          "type": "string"
        },
        "pos_hint": {
          "default": "",
          "description": "Part-of-speech hint near the link.",
          "title": "Pos Hint",
          "type": "string"
        },
        "forms": {
          "anyOf": [
            {
              "discriminator": {
                "mapping": {
                  "nominal": "#/$defs/NominalParadigm",
                  "not_found": "#/$defs/ParadigmNotFound",
                  "verbal": "#/$defs/VerbalParadigm"
                },
                "propertyName": "category"
              },
              "oneOf": [
                {
                  "$ref": "#/$defs/NominalParadigm"
                },
                {
                  "$ref": "#/$defs/VerbalParadigm"
                },
                {
                  "$ref": "#/$defs/ParadigmNotFound"
                }
              ]
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The full inflection paradigm, populated when a search is asked to include forms. None when not requested or beyond the cap; category 'none' when the word has no paradigm.",
          "title": "Forms"
        }
      },
      "required": [
        "entry_id",
        "word_class"
      ],
      "title": "InflectionHandle",
      "type": "object"
    },
    "NominalParadigm": {
      "description": "Declension of a noun/adjective/numeral/pronoun: case → {singular, plural}.\n\n``category`` discriminates this from the verbal and not-found shapes — switch on it\nbefore reading the body.",
      "properties": {
        "category": {
          "const": "nominal",
          "default": "nominal",
          "title": "Category",
          "type": "string"
        },
        "entry_id": {
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "title": "Word Class",
          "type": "string"
        },
        "found": {
          "const": true,
          "default": true,
          "title": "Found",
          "type": "boolean"
        },
        "cases": {
          "additionalProperties": {
            "$ref": "#/$defs/NumberForms"
          },
          "description": "Case name (English, lower-case) → its singular/plural forms, in paradigm order, e.g. 'nominative', 'genitive', 'partitive'.",
          "title": "Cases",
          "type": "object"
        },
        "source": {
          "default": "Ernštreits, Valts (ed. in chief), Viitso, Tiit-Rein, Kurpniece, Milda & Vāvere, Signis. 2024. Livonian morphology database. Riga: University of Latvia Livonian Institute. https://livonian.tech/ (CC BY-SA 4.0)",
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "entry_id",
        "word_class",
        "cases"
      ],
      "title": "NominalParadigm",
      "type": "object"
    },
    "NumberForms": {
      "description": "A nominal cell: the two number forms of one case. Livonian forms are verbatim.",
      "properties": {
        "singular": {
          "title": "Singular",
          "type": "string"
        },
        "plural": {
          "title": "Plural",
          "type": "string"
        }
      },
      "required": [
        "singular",
        "plural"
      ],
      "title": "NumberForms",
      "type": "object"
    },
    "ParadigmNotFound": {
      "description": "No paradigm for this entry_id/word_class (the morphology DB has none, or the\nhandle was wrong). ``found`` is False and there is no table body.",
      "properties": {
        "category": {
          "const": "not_found",
          "default": "not_found",
          "title": "Category",
          "type": "string"
        },
        "entry_id": {
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "title": "Word Class",
          "type": "string"
        },
        "found": {
          "const": false,
          "default": false,
          "title": "Found",
          "type": "boolean"
        },
        "source": {
          "default": "Ernštreits, Valts (ed. in chief), Viitso, Tiit-Rein, Kurpniece, Milda & Vāvere, Signis. 2024. Livonian morphology database. Riga: University of Latvia Livonian Institute. https://livonian.tech/ (CC BY-SA 4.0)",
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "entry_id",
        "word_class"
      ],
      "title": "ParadigmNotFound",
      "type": "object"
    },
    "Polarity": {
      "description": "A verbal cell: the two polarities of one person in one mood/tense. ``negative``\nis the ready-to-use form — the negation auxiliary (äb/äd/iz/algõ…) is already folded\nin (e.g. ``äb toup``), not orphaned in a separate column. Livonian forms are verbatim.",
      "properties": {
        "affirmative": {
          "title": "Affirmative",
          "type": "string"
        },
        "negative": {
          "title": "Negative",
          "type": "string"
        }
      },
      "required": [
        "affirmative",
        "negative"
      ],
      "title": "Polarity",
      "type": "object"
    },
    "SearchLanguage": {
      "description": "Which language the query word is matched against. Headwords come back in\nLivonian and glosses in English either way; this only selects the language the\nquery term is in. Codes are the site's own.",
      "enum": [
        "liv",
        "lat",
        "est",
        "eng"
      ],
      "title": "SearchLanguage",
      "type": "string"
    },
    "Sense": {
      "description": "One sense of a headword: its gloss and any usage examples. ``label`` is the\nupstream sense marker (``a)``, ``b)``) and is empty for a single, unlabelled sense.",
      "properties": {
        "label": {
          "default": "",
          "title": "Label",
          "type": "string"
        },
        "gloss": {
          "title": "Gloss",
          "type": "string"
        },
        "examples": {
          "items": {
            "$ref": "#/$defs/Example"
          },
          "title": "Examples",
          "type": "array"
        }
      },
      "required": [
        "gloss"
      ],
      "title": "Sense",
      "type": "object"
    },
    "VerbalParadigm": {
      "description": "Conjugation of a verb, grouped the way the grammar is: finite moods/tenses by\nperson and polarity, plus the non-finite forms.\n\n``category`` discriminates this from the nominal and not-found shapes.",
      "properties": {
        "category": {
          "const": "verbal",
          "default": "verbal",
          "title": "Category",
          "type": "string"
        },
        "entry_id": {
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "title": "Word Class",
          "type": "string"
        },
        "found": {
          "const": true,
          "default": true,
          "title": "Found",
          "type": "boolean"
        },
        "finite": {
          "additionalProperties": {
            "additionalProperties": {
              "$ref": "#/$defs/Polarity"
            },
            "type": "object"
          },
          "description": "Mood/tense (English, lower-case: 'present', 'past', 'conditional', …) → pronoun (Livonian, verbatim: ma/sa/ta/mēg/tēg/ne) → {affirmative, negative}. The negative already includes its auxiliary.",
          "title": "Finite",
          "type": "object"
        },
        "nonfinite": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "description": "Non-finite section (English, lower-case: 'principal parts', 'participles') → form label (English) → the Livonian form.",
          "title": "Nonfinite",
          "type": "object"
        },
        "source": {
          "default": "Ernštreits, Valts (ed. in chief), Viitso, Tiit-Rein, Kurpniece, Milda & Vāvere, Signis. 2024. Livonian morphology database. Riga: University of Latvia Livonian Institute. https://livonian.tech/ (CC BY-SA 4.0)",
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "entry_id",
        "word_class",
        "finite",
        "nonfinite"
      ],
      "title": "VerbalParadigm",
      "type": "object"
    }
  },
  "description": "The result of a dictionary search.",
  "title": "SearchResult"
}
🟢livonian_get_inflections(entry_id, word_class)

Fetch the full declension (nouns) or conjugation (verbs) table for a word identified by a search result's inflection handle (entry_id + word_class) — the exact case, number, tense, not a guessed ending. Use this only when a search ran without inline forms, or to fetch a match a broad search left un-expanded. Never a first call — the handle values only come from livonian_search results, and a default search already returns each match's table inline, so calling this afterwards just re-fetches what you have. Returns Markdown — a nominal gets one case × {singular, plural} table; a verb gets a table per mood/tense (person × {affirmative, negative}, the negation auxiliary folded into the negative) plus its principal-parts and participle lists — or a clean not-found message. (Grammatical labels are normalised to English; Livonian forms stay verbatim.) The same table rides along as structuredContent with the shape {"result": <paradigm>} per the declared outputSchema — switch on result.category ('nominal' | 'verbal' | 'not_found') before reading the body. Results are cached server-side (repeats are instant) and calls are rate limited — on a rate-limit error, wait a few seconds and retry. Table content is from livonian.tech (CC BY-SA 4.0 — attribute if republished).

입력 스키마

{
  "type": "object",
  "properties": {
    "entry_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        }
      ],
      "description": "The word id from a search result's inflection handle. Accepts a number or a digit-string (e.g. 17746 or \"17746\").",
      "title": "Entry Id"
    },
    "word_class": {
      "description": "The word-class code from a search result's inflection handle (e.g. 's' = noun, 'adj' = adjective, 'vi' = intransitive verb, 'vt' = transitive verb).",
      "maxLength": 8,
      "minLength": 1,
      "pattern": "^[a-z]+$",
      "title": "Word Class",
      "type": "string"
    }
  },
  "required": [
    "entry_id",
    "word_class"
  ],
  "title": "livonian_get_inflectionsArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "discriminator": {
        "mapping": {
          "nominal": "#/$defs/NominalParadigm",
          "not_found": "#/$defs/ParadigmNotFound",
          "verbal": "#/$defs/VerbalParadigm"
        },
        "propertyName": "category"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/NominalParadigm"
        },
        {
          "$ref": "#/$defs/VerbalParadigm"
        },
        {
          "$ref": "#/$defs/ParadigmNotFound"
        }
      ],
      "title": "Result"
    }
  },
  "required": [
    "result"
  ],
  "$defs": {
    "NominalParadigm": {
      "description": "Declension of a noun/adjective/numeral/pronoun: case → {singular, plural}.\n\n``category`` discriminates this from the verbal and not-found shapes — switch on it\nbefore reading the body.",
      "properties": {
        "category": {
          "const": "nominal",
          "default": "nominal",
          "title": "Category",
          "type": "string"
        },
        "entry_id": {
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "title": "Word Class",
          "type": "string"
        },
        "found": {
          "const": true,
          "default": true,
          "title": "Found",
          "type": "boolean"
        },
        "cases": {
          "additionalProperties": {
            "$ref": "#/$defs/NumberForms"
          },
          "description": "Case name (English, lower-case) → its singular/plural forms, in paradigm order, e.g. 'nominative', 'genitive', 'partitive'.",
          "title": "Cases",
          "type": "object"
        },
        "source": {
          "default": "Ernštreits, Valts (ed. in chief), Viitso, Tiit-Rein, Kurpniece, Milda & Vāvere, Signis. 2024. Livonian morphology database. Riga: University of Latvia Livonian Institute. https://livonian.tech/ (CC BY-SA 4.0)",
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "entry_id",
        "word_class",
        "cases"
      ],
      "title": "NominalParadigm",
      "type": "object"
    },
    "NumberForms": {
      "description": "A nominal cell: the two number forms of one case. Livonian forms are verbatim.",
      "properties": {
        "singular": {
          "title": "Singular",
          "type": "string"
        },
        "plural": {
          "title": "Plural",
          "type": "string"
        }
      },
      "required": [
        "singular",
        "plural"
      ],
      "title": "NumberForms",
      "type": "object"
    },
    "ParadigmNotFound": {
      "description": "No paradigm for this entry_id/word_class (the morphology DB has none, or the\nhandle was wrong). ``found`` is False and there is no table body.",
      "properties": {
        "category": {
          "const": "not_found",
          "default": "not_found",
          "title": "Category",
          "type": "string"
        },
        "entry_id": {
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "title": "Word Class",
          "type": "string"
        },
        "found": {
          "const": false,
          "default": false,
          "title": "Found",
          "type": "boolean"
        },
        "source": {
          "default": "Ernštreits, Valts (ed. in chief), Viitso, Tiit-Rein, Kurpniece, Milda & Vāvere, Signis. 2024. Livonian morphology database. Riga: University of Latvia Livonian Institute. https://livonian.tech/ (CC BY-SA 4.0)",
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "entry_id",
        "word_class"
      ],
      "title": "ParadigmNotFound",
      "type": "object"
    },
    "Polarity": {
      "description": "A verbal cell: the two polarities of one person in one mood/tense. ``negative``\nis the ready-to-use form — the negation auxiliary (äb/äd/iz/algõ…) is already folded\nin (e.g. ``äb toup``), not orphaned in a separate column. Livonian forms are verbatim.",
      "properties": {
        "affirmative": {
          "title": "Affirmative",
          "type": "string"
        },
        "negative": {
          "title": "Negative",
          "type": "string"
        }
      },
      "required": [
        "affirmative",
        "negative"
      ],
      "title": "Polarity",
      "type": "object"
    },
    "VerbalParadigm": {
      "description": "Conjugation of a verb, grouped the way the grammar is: finite moods/tenses by\nperson and polarity, plus the non-finite forms.\n\n``category`` discriminates this from the nominal and not-found shapes.",
      "properties": {
        "category": {
          "const": "verbal",
          "default": "verbal",
          "title": "Category",
          "type": "string"
        },
        "entry_id": {
          "title": "Entry Id",
          "type": "string"
        },
        "word_class": {
          "title": "Word Class",
          "type": "string"
        },
        "found": {
          "const": true,
          "default": true,
          "title": "Found",
          "type": "boolean"
        },
        "finite": {
          "additionalProperties": {
            "additionalProperties": {
              "$ref": "#/$defs/Polarity"
            },
            "type": "object"
          },
          "description": "Mood/tense (English, lower-case: 'present', 'past', 'conditional', …) → pronoun (Livonian, verbatim: ma/sa/ta/mēg/tēg/ne) → {affirmative, negative}. The negative already includes its auxiliary.",
          "title": "Finite",
          "type": "object"
        },
        "nonfinite": {
          "additionalProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "description": "Non-finite section (English, lower-case: 'principal parts', 'participles') → form label (English) → the Livonian form.",
          "title": "Nonfinite",
          "type": "object"
        },
        "source": {
          "default": "Ernštreits, Valts (ed. in chief), Viitso, Tiit-Rein, Kurpniece, Milda & Vāvere, Signis. 2024. Livonian morphology database. Riga: University of Latvia Livonian Institute. https://livonian.tech/ (CC BY-SA 4.0)",
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "entry_id",
        "word_class",
        "finite",
        "nonfinite"
      ],
      "title": "VerbalParadigm",
      "type": "object"
    }
  },
  "title": "livonian_get_inflectionsOutput"
}
🟢livonian_romanize(text)

Strip Livonian 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.

입력 스키마

{
  "type": "object",
  "properties": {
    "text": {
      "description": "Livonian text to reduce to clean, pronounceable ASCII. Strips macrons, diacritics and capitals (ā→aa, š→sh, õ→u), softens a palatalized consonant (ņ ļ ŗ ţ ḑ) only before a vowel (ņ+a→nya, else ikšiggiņ→ikshiggin), and hyphenates the broken tone (si'zzõl→siz-zul) and long-vowel diphthong glides (kīen→kee-en). Pass a word, phrase, or several lines.",
      "maxLength": 4000,
      "minLength": 1,
      "title": "Text",
      "type": "string"
    }
  },
  "required": [
    "text"
  ],
  "title": "livonian_romanizeArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "text": {
      "description": "The romanized ASCII output.",
      "title": "Text",
      "type": "string"
    }
  },
  "required": [
    "text"
  ],
  "description": "The MCP-facing romanization payload: the ASCII output only. ``original`` is\ndeliberately absent — like the Markdown render (see\n:func:`~livonian.languages.livonian.render.romanization_to_markdown`), the MCP\nresult reaches an LLM's context, so the raw caller text must not be echoed\nthrough it. The JSON API's :class:`Romanization` keeps the echo for\nprogrammatic callers.",
  "title": "RomanizedText"
}
🟢livonian_deromanize(text)

Find the real Livonian word(s) whose pronunciation-romanization matches this clean-ASCII input — the inverse direction of `livonian_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.

입력 스키마

{
  "type": "object",
  "properties": {
    "text": {
      "description": "Romanized (clean-ASCII) Livonian 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, stød, palatalization and macron length cannot be recovered.",
      "maxLength": 4000,
      "minLength": 1,
      "title": "Text",
      "type": "string"
    }
  },
  "required": [
    "text"
  ],
  "title": "livonian_deromanizeArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "candidates": {
      "items": {
        "$ref": "#/$defs/Candidate"
      },
      "title": "Candidates",
      "type": "array"
    },
    "approximate": {
      "title": "Approximate",
      "type": "boolean"
    }
  },
  "required": [
    "candidates",
    "approximate"
  ],
  "$defs": {
    "Candidate": {
      "description": "One candidate spelling from a reverse-lookup surface (deromanize /\ndetransliterate, or Interslavic transliterate).",
      "properties": {
        "word": {
          "description": "A real orthographic word (source=dictionary) or the best-effort reconstruction (source=reconstruction).",
          "title": "Word",
          "type": "string"
        },
        "source": {
          "description": "dictionary = an ATTESTED spelling recalled from the dictionary index (exact, no guessing); reconstruction = a best-effort algorithmic guess, returned only when no attested word matched (never emitted by Interslavic transliterate, which returns empty on a miss instead).",
          "enum": [
            "dictionary",
            "reconstruction"
          ],
          "title": "Source",
          "type": "string"
        },
        "kind": {
          "anyOf": [
            {
              "enum": [
                "lemma",
                "form"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "For a lossy-family dictionary candidate, whether the word is a headword (lemma) or an inflected form. None for a reconstruction, and always None for Interslavic transliterate (which does not distinguish lemma from form).",
          "title": "Kind"
        }
      },
      "required": [
        "word",
        "source"
      ],
      "title": "Candidate",
      "type": "object"
    }
  },
  "description": "The MCP-facing payload: candidates only. ``original`` is deliberately absent —\nthe MCP result reaches an LLM's context, so the raw caller text must not be echoed\n(mirrors ``RomanizedText``/``TransliteratedText``).",
  "title": "DeromanizedText"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 4개
검증됨버전이 기록되지 않음도구 4개