Skip to main content
Glama

Server Details

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

Ownership verified

Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
0.0% over 41 days
Last Tested
Transport
Streamable HTTP
URL

TDQS

A4.6/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: romanize (Livonian to ASCII), deromanize (ASCII to Livonian), search (dictionary lookup), and get_inflections (full inflection tables). There is no overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent pattern: 'livonian_' prefix plus a descriptive verb in snake_case (deromanize, get_inflections, romanize, search). This makes the set predictable and easy for an agent to navigate.

Tool Count4/5

With 4 tools, the server covers core Livonian language operations (search, romanization both directions, inflections) without being overly narrow or excessive. A few more tools (e.g., random word or example sentences) could be added, but the current count is reasonable.

Completeness4/5

The tool set provides the essential CRUD-like operations for a dictionary: search (read), romanization (transform), deromanization (reverse lookup), and inflections (details). There are no obvious dead ends, though tools for adding/modifying entries are missing but expected for a read-only resource.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Addedlivonian_deromanize
  2. 6 tool updates
    • Removedget_inflections
    • Addedlivonian_get_inflections
    • Addedlivonian_romanize
    • Addedlivonian_search
    • Removedromanize_livonian
    • Removedsearch_livonian
  3. 2 tool updates
    • Changedget_inflections13 fields changed
      • addedInput schema / properties / entry_id
        Added value: +{
        +  "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"
        +}
      • removedInput schema / properties / vards_id
        Removed value: -{
        -  "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": "Vards Id"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "vards_id",
        -  "word_class"
        -]New value: +[
        +  "entry_id",
        +  "word_class"
        +]
      • addedOutput schema / $defs / NominalParadigm / properties / entry_id
        Added value: +{
        +  "title": "Entry Id",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / NominalParadigm / properties / vards_id
        Removed value: -{
        -  "title": "Vards Id",
        -  "type": "string"
        -}
      • changedOutput schema / $defs / NominalParadigm / required
        Previous value: -[
        -  "vards_id",
        -  "word_class",
        -  "cases"
        -]New value: +[
        +  "entry_id",
        +  "word_class",
        +  "cases"
        +]
      • changedOutput schema / $defs / ParadigmNotFound / description
        Previous value: -"No paradigm for this vards_id/word_class (the morphology DB has none, or the\nhandle was wrong). ``found`` is False and there is no table body."New value: +"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."
      • addedOutput schema / $defs / ParadigmNotFound / properties / entry_id
        Added value: +{
        +  "title": "Entry Id",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / ParadigmNotFound / properties / vards_id
        Removed value: -{
        -  "title": "Vards Id",
        -  "type": "string"
        -}
      • changedOutput schema / $defs / ParadigmNotFound / required
        Previous value: -[
        -  "vards_id",
        -  "word_class"
        -]New value: +[
        +  "entry_id",
        +  "word_class"
        +]
      • addedOutput schema / $defs / VerbalParadigm / properties / entry_id
        Added value: +{
        +  "title": "Entry Id",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / VerbalParadigm / properties / vards_id
        Removed value: -{
        -  "title": "Vards Id",
        -  "type": "string"
        -}
      • changedOutput schema / $defs / VerbalParadigm / required
        Previous value: -[
        -  "vards_id",
        -  "word_class",
        -  "finite",
        -  "nonfinite"
        -]New value: +[
        +  "entry_id",
        +  "word_class",
        +  "finite",
        +  "nonfinite"
        +]
    • Changedsearch_livonian17 fields changed
      • changedOutput schema / $defs / Entry / description
        Previous value: -"One dictionary entry (one upstream result card): the headword with its\npronunciation, part of speech, paradigm anchors, and senses.\n\n``vards_id`` + ``word_class`` are the same anchors carried by an\n:class:`InflectionHandle` — feed them to ``get_inflections`` for the full paradigm.\nEvery field except ``headword``/``gloss`` defaults, so a card missing a\npronunciation, type code, or senses still validates."New value: +"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 ``get_inflections`` for the full paradigm.\nEvery field except ``headword``/``gloss`` defaults, so a card missing a\npronunciation, type code, or senses still validates."
      • addedOutput schema / $defs / Entry / properties / entry_id
        Added value: +{
        +  "default": "",
        +  "description": "Numeric word id for the forms endpoint.",
        +  "title": "Entry Id",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / Entry / properties / vards_id
        Removed value: -{
        -  "default": "",
        -  "description": "Numeric word id for the forms endpoint.",
        -  "title": "Vards Id",
        -  "type": "string"
        -}
      • changedOutput schema / $defs / InflectionHandle / description
        Previous value: -"A reliable, structured anchor for fetching a full paradigm. Feed\n``vards_id`` + ``word_class`` to ``get_inflections`` — or ask ``search`` to\ninclude the table inline (``forms``)."New value: +"A reliable, structured anchor for fetching a full paradigm. Feed\n``entry_id`` + ``word_class`` to ``get_inflections`` — or ask ``search`` to\ninclude the table inline (``forms``)."
      • addedOutput schema / $defs / InflectionHandle / properties / entry_id
        Added value: +{
        +  "description": "Numeric word id used by the forms endpoint.",
        +  "title": "Entry Id",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / InflectionHandle / properties / vards_id
        Removed value: -{
        -  "description": "Numeric word id used by the forms endpoint.",
        -  "title": "Vards Id",
        -  "type": "string"
        -}
      • changedOutput schema / $defs / InflectionHandle / required
        Previous value: -[
        -  "vards_id",
        -  "word_class"
        -]New value: +[
        +  "entry_id",
        +  "word_class"
        +]
      • addedOutput schema / $defs / NominalParadigm / properties / entry_id
        Added value: +{
        +  "title": "Entry Id",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / NominalParadigm / properties / vards_id
        Removed value: -{
        -  "title": "Vards Id",
        -  "type": "string"
        -}
      • changedOutput schema / $defs / NominalParadigm / required
        Previous value: -[
        -  "vards_id",
        -  "word_class",
        -  "cases"
        -]New value: +[
        +  "entry_id",
        +  "word_class",
        +  "cases"
        +]
      • changedOutput schema / $defs / ParadigmNotFound / description
        Previous value: -"No paradigm for this vards_id/word_class (the morphology DB has none, or the\nhandle was wrong). ``found`` is False and there is no table body."New value: +"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."
      • addedOutput schema / $defs / ParadigmNotFound / properties / entry_id
        Added value: +{
        +  "title": "Entry Id",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / ParadigmNotFound / properties / vards_id
        Removed value: -{
        -  "title": "Vards Id",
        -  "type": "string"
        -}
      • changedOutput schema / $defs / ParadigmNotFound / required
        Previous value: -[
        -  "vards_id",
        -  "word_class"
        -]New value: +[
        +  "entry_id",
        +  "word_class"
        +]
      • addedOutput schema / $defs / VerbalParadigm / properties / entry_id
        Added value: +{
        +  "title": "Entry Id",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / VerbalParadigm / properties / vards_id
        Removed value: -{
        -  "title": "Vards Id",
        -  "type": "string"
        -}
      • changedOutput schema / $defs / VerbalParadigm / required
        Previous value: -[
        -  "vards_id",
        -  "word_class",
        -  "finite",
        -  "nonfinite"
        -]New value: +[
        +  "entry_id",
        +  "word_class",
        +  "finite",
        +  "nonfinite"
        +]
  4. 3 tool updates
    • Changedget_inflections1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$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": {
        +        "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"
        +        },
        +        "category": {
        +          "const": "nominal",
        +          "default": "nominal",
        +          "title": "Category",
        +          "type": "string"
        +        },
        +        "found": {
        +          "const": true,
        +          "default": true,
        +          "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"
        +        },
        +        "vards_id": {
        +          "title": "Vards Id",
        +          "type": "string"
        +        },
        +        "word_class": {
        +          "title": "Word Class",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "vards_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": {
        +        "plural": {
        +          "title": "Plural",
        +          "type": "string"
        +        },
        +        "singular": {
        +          "title": "Singular",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "singular",
        +        "plural"
        +      ],
        +      "title": "NumberForms",
        +      "type": "object"
        +    },
        +    "ParadigmNotFound": {
        +      "description": "No paradigm for this vards_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"
        +        },
        +        "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"
        +        },
        +        "vards_id": {
        +          "title": "Vards Id",
        +          "type": "string"
        +        },
        +        "word_class": {
        +          "title": "Word Class",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "vards_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"
        +        },
        +        "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"
        +        },
        +        "found": {
        +          "const": true,
        +          "default": true,
        +          "title": "Found",
        +          "type": "boolean"
        +        },
        +        "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"
        +        },
        +        "vards_id": {
        +          "title": "Vards Id",
        +          "type": "string"
        +        },
        +        "word_class": {
        +          "title": "Word Class",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "vards_id",
        +        "word_class",
        +        "finite",
        +        "nonfinite"
        +      ],
        +      "title": "VerbalParadigm",
        +      "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"
        +  ],
        +  "title": "get_inflectionsOutput",
        +  "type": "object"
        +}
    • Changedromanize_livonian1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "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.",
        +  "properties": {
        +    "text": {
        +      "description": "The romanized ASCII output.",
        +      "title": "Text",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "text"
        +  ],
        +  "title": "RomanizedText",
        +  "type": "object"
        +}
    • Changedsearch_livonian1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "Entry": {
        +      "description": "One dictionary entry (one upstream result card): the headword with its\npronunciation, part of speech, paradigm anchors, and senses.\n\n``vards_id`` + ``word_class`` are the same anchors carried by an\n:class:`InflectionHandle` — feed them to ``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"
        +        },
        +        "part_of_speech": {
        +          "default": "",
        +          "description": "e.g. 'noun', 'verb', 'adjective'.",
        +          "title": "Part Of Speech",
        +          "type": "string"
        +        },
        +        "pronunciation": {
        +          "default": "",
        +          "description": "Phonetic form in braces, e.g. {äm}.",
        +          "title": "Pronunciation",
        +          "type": "string"
        +        },
        +        "senses": {
        +          "items": {
        +            "$ref": "#/$defs/Sense"
        +          },
        +          "title": "Senses",
        +          "type": "array"
        +        },
        +        "type_code": {
        +          "default": "",
        +          "description": "Paradigm type code, e.g. '99', '53a'.",
        +          "title": "Type Code",
        +          "type": "string"
        +        },
        +        "vards_id": {
        +          "default": "",
        +          "description": "Numeric word id for the forms endpoint.",
        +          "title": "Vards Id",
        +          "type": "string"
        +        },
        +        "word_class": {
        +          "default": "",
        +          "description": "Word-class code, e.g. 's', 'vt', 'adj'.",
        +          "title": "Word Class",
        +          "type": "string"
        +        }
        +      },
        +      "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": {
        +        "english": {
        +          "default": "",
        +          "title": "English",
        +          "type": "string"
        +        },
        +        "livonian": {
        +          "title": "Livonian",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "livonian"
        +      ],
        +      "title": "Example",
        +      "type": "object"
        +    },
        +    "InflectionHandle": {
        +      "description": "A reliable, structured anchor for fetching a full paradigm. Feed\n``vards_id`` + ``word_class`` to ``get_inflections`` — or ask ``search`` to\ninclude the table inline (``forms``).",
        +      "properties": {
        +        "context": {
        +          "default": "",
        +          "description": "Nearby headword / entry text.",
        +          "title": "Context",
        +          "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"
        +        },
        +        "pos_hint": {
        +          "default": "",
        +          "description": "Part-of-speech hint near the link.",
        +          "title": "Pos Hint",
        +          "type": "string"
        +        },
        +        "vards_id": {
        +          "description": "Numeric word id used by the forms endpoint.",
        +          "title": "Vards Id",
        +          "type": "string"
        +        },
        +        "word_class": {
        +          "description": "Word-class code, e.g. 's', 'vi', 'vt', 'adj'.",
        +          "title": "Word Class",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "vards_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": {
        +        "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"
        +        },
        +        "category": {
        +          "const": "nominal",
        +          "default": "nominal",
        +          "title": "Category",
        +          "type": "string"
        +        },
        +        "found": {
        +          "const": true,
        +          "default": true,
        +          "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"
        +        },
        +        "vards_id": {
        +          "title": "Vards Id",
        +          "type": "string"
        +        },
        +        "word_class": {
        +          "title": "Word Class",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "vards_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": {
        +        "plural": {
        +          "title": "Plural",
        +          "type": "string"
        +        },
        +        "singular": {
        +          "title": "Singular",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "singular",
        +        "plural"
        +      ],
        +      "title": "NumberForms",
        +      "type": "object"
        +    },
        +    "ParadigmNotFound": {
        +      "description": "No paradigm for this vards_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"
        +        },
        +        "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"
        +        },
        +        "vards_id": {
        +          "title": "Vards Id",
        +          "type": "string"
        +        },
        +        "word_class": {
        +          "title": "Word Class",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "vards_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": {
        +        "examples": {
        +          "items": {
        +            "$ref": "#/$defs/Example"
        +          },
        +          "title": "Examples",
        +          "type": "array"
        +        },
        +        "gloss": {
        +          "title": "Gloss",
        +          "type": "string"
        +        },
        +        "label": {
        +          "default": "",
        +          "title": "Label",
        +          "type": "string"
        +        }
        +      },
        +      "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"
        +        },
        +        "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"
        +        },
        +        "found": {
        +          "const": true,
        +          "default": true,
        +          "title": "Found",
        +          "type": "boolean"
        +        },
        +        "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"
        +        },
        +        "vards_id": {
        +          "title": "Vards Id",
        +          "type": "string"
        +        },
        +        "word_class": {
        +          "title": "Word Class",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "vards_id",
        +        "word_class",
        +        "finite",
        +        "nonfinite"
        +      ],
        +      "title": "VerbalParadigm",
        +      "type": "object"
        +    }
        +  },
        +  "description": "The result of a dictionary search.",
        +  "properties": {
        +    "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 get_inflections.",
        +      "title": "Forms Truncated",
        +      "type": "integer"
        +    },
        +    "found": {
        +      "description": "False when nothing matched.",
        +      "title": "Found",
        +      "type": "boolean"
        +    },
        +    "handles": {
        +      "items": {
        +        "$ref": "#/$defs/InflectionHandle"
        +      },
        +      "title": "Handles",
        +      "type": "array"
        +    },
        +    "language": {
        +      "$ref": "#/$defs/SearchLanguage"
        +    },
        +    "query": {
        +      "title": "Query",
        +      "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"
        +    },
        +    "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"
        +    },
        +    "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"
        +  ],
        +  "title": "SearchResult",
        +  "type": "object"
        +}
  5. 1 tool update
    • Changedsearch_livonian2 fields changed
      • changedInput schema / properties / max_forms / description
        Previous value: -"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. Omit to use the server's default cap."New value: +"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."
      • changedInput schema / properties / query / description
        Previous value: -"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."New value: +"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."
  6. 3 tool updates
    • Changedget_inflections2 fields changed
      • changedInput schema / properties / word_class / description
        Previous value: -"The word-class code from a search result's inflection handle (e.g. 's' = noun, 'vi' = intransitive verb, 'vt' = transitive verb)."New value: +"The word-class code from a search result's inflection handle (e.g. 's' = noun, 'adj' = adjective, 'vi' = intransitive verb, 'vt' = transitive verb)."
      • changedOutput schema / (root)
        Previous value: -{
        -  "properties": {
        -    "result": {
        -      "title": "Result",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "result"
        -  ],
        -  "title": "get_inflectionsOutput",
        -  "type": "object"
        -}New value: +null
    • Changedromanize_livonian1 field changed
      • changedOutput schema / (root)
        Previous value: -{
        -  "properties": {
        -    "result": {
        -      "title": "Result",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "result"
        -  ],
        -  "title": "romanize_livonianOutput",
        -  "type": "object"
        -}New value: +null
    • Changedsearch_livonian5 fields changed
      • changedInput schema / properties / include_forms / description
        Previous value: -"When true (default), each match's full inflection table is returned INLINE — so you get usable cases/tenses in ONE call, no follow-up get_inflections needed. Bounded by a per-search cap; set false to get just the handles (faster for very broad queries)."New value: +"When true (default), each match's full inflection table is returned INLINE — usable cases/tenses in ONE call, no follow-up 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."
      • changedInput schema / properties / max_forms / anyOf
        Previous value: -[
        -  {
        -    "maximum": 50,
        -    "minimum": 0,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maximum": 12,
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / max_forms / description
        Previous value: -"Optional cap on how many inflection tables to expand this call. Use a small value for broad queries (e.g. 'sea' matches many words); omit to use the server default."New value: +"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. Omit to use the server's default cap."
      • changedInput schema / properties / query / description
        Previous value: -"The word or phrase to look up. May be Livonian, Latvian, Estonian, or English (e.g. 'jarā', 'away', 'sea'). Matching is bidirectional."New value: +"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."
      • changedOutput schema / (root)
        Previous value: -{
        -  "properties": {
        -    "result": {
        -      "title": "Result",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "result"
        -  ],
        -  "title": "search_livonianOutput",
        -  "type": "object"
        -}New value: +null
  7. 3 tool updates
    • Changedget_inflections5 fields changed
      • removedInput schema / $defs
        Removed value: -{
        -  "InflectionInput": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "vards_id": {
        -        "description": "The word id from a search result's inflection handle. Accepts a number or a digit-string (e.g. 17746 or \"17746\").",
        -        "pattern": "^\\d+$",
        -        "title": "Vards Id",
        -        "type": "string"
        -      },
        -      "word_class": {
        -        "description": "The word-class code from a search result's inflection handle (e.g. 's' = noun, 'vi' = intransitive verb, 'vt' = transitive verb).",
        -        "maxLength": 8,
        -        "minLength": 1,
        -        "pattern": "^[a-z]+$",
        -        "title": "Word Class",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "vards_id",
        -      "word_class"
        -    ],
        -    "title": "InflectionInput",
        -    "type": "object"
        -  }
        -}
      • removedInput schema / properties / params
        Removed value: -{
        -  "$ref": "#/$defs/InflectionInput"
        -}
      • addedInput schema / properties / vards_id
        Added value: +{
        +  "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": "Vards Id"
        +}
      • addedInput schema / properties / word_class
        Added value: +{
        +  "description": "The word-class code from a search result's inflection handle (e.g. 's' = noun, 'vi' = intransitive verb, 'vt' = transitive verb).",
        +  "maxLength": 8,
        +  "minLength": 1,
        +  "pattern": "^[a-z]+$",
        +  "title": "Word Class",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "params"
        -]New value: +[
        +  "vards_id",
        +  "word_class"
        +]
    • Changedromanize_livonian4 fields changed
      • removedInput schema / $defs
        Removed value: -{
        -  "RomanizeInput": {
        -    "additionalProperties": false,
        -    "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": "RomanizeInput",
        -    "type": "object"
        -  }
        -}
      • removedInput schema / properties / params
        Removed value: -{
        -  "$ref": "#/$defs/RomanizeInput"
        -}
      • addedInput schema / properties / text
        Added value: +{
        +  "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"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "params"
        -]New value: +[
        +  "text"
        +]
    • Changedsearch_livonian7 fields changed
      • removedInput schema / $defs / SearchInput
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "include_forms": {
        -      "default": true,
        -      "description": "When true (default), each match's full inflection table is returned INLINE — so you get usable cases/tenses in ONE call, no follow-up get_inflections needed. Bounded by a per-search cap; set false to get just the handles (faster for very broad queries).",
        -      "title": "Include Forms",
        -      "type": "boolean"
        -    },
        -    "max_forms": {
        -      "anyOf": [
        -        {
        -          "maximum": 50,
        -          "minimum": 0,
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "default": null,
        -      "description": "Optional cap on how many inflection tables to expand this call. Use a small value for broad queries (e.g. 'sea' matches many words); omit to use the server default.",
        -      "title": "Max Forms"
        -    },
        -    "query": {
        -      "description": "The word or phrase to look up. May be Livonian, Latvian, Estonian, or English (e.g. 'jarā', 'away', 'sea'). Matching is bidirectional.",
        -      "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."
        -    }
        -  },
        -  "required": [
        -    "query"
        -  ],
        -  "title": "SearchInput",
        -  "type": "object"
        -}
      • addedInput schema / properties / include_forms
        Added value: +{
        +  "default": true,
        +  "description": "When true (default), each match's full inflection table is returned INLINE — so you get usable cases/tenses in ONE call, no follow-up get_inflections needed. Bounded by a per-search cap; set false to get just the handles (faster for very broad queries).",
        +  "title": "Include Forms",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_forms
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 50,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional cap on how many inflection tables to expand this call. Use a small value for broad queries (e.g. 'sea' matches many words); omit to use the server default.",
        +  "title": "Max Forms"
        +}
      • removedInput schema / properties / params
        Removed value: -{
        -  "$ref": "#/$defs/SearchInput"
        -}
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "The word or phrase to look up. May be Livonian, Latvian, Estonian, or English (e.g. 'jarā', 'away', 'sea'). Matching is bidirectional.",
        +  "maxLength": 120,
        +  "minLength": 1,
        +  "title": "Query",
        +  "type": "string"
        +}
      • addedInput schema / properties / search_language
        Added value: +{
        +  "$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."
        +}
      • changedInput schema / required
        Previous value: -[
        -  "params"
        -]New value: +[
        +  "query"
        +]
  8. 3 tool updates
    • First observedget_inflections
    • First observedromanize_livonian
    • First observedsearch_livonian

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources