latin
Server Details
Grounds LLMs in real Latin: Wiktionary lemmas, Morpheus inflections, citations.
- Status
- Healthy
- Uptime
- 35.6% over 78 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
The three tools overlap in that all deal with Latin word forms: search resolves inflected queries and returns tables, get_inflections returns tables, and lemmatize returns morphology. However, the descriptions explicitly carve out when to use each (get_inflections only when search left a match un-expanded; lemmatize when you want the morphology itself). Boundaries are mostly clear, though search and lemmatize could be confused by a hurried agent.
All three share a clean latin_ prefix, which is good and predictable. The verb style is slightly mixed: get_inflections is verb_noun while lemmatize and search are bare verbs. Still readable and low-risk, just a minor deviation from a single pattern.
Three tools is on the thin side but well-matched to a focused read-only dictionary/morphology server: lookup, paradigm retrieval, and morphological analysis. No redundant or filler tools, though it sits near the lower boundary.
The surface covers the domain's needs: word lookup with senses and tables (search, including reverse English-to-Latin via search_language), paradigm retrieval (get_inflections), and morphological analysis (lemmatize). For a read-only reference server there are no obvious dead ends.
Available Tools
3 toolslatin_get_inflectionsGet a Latin inflection tableARead-onlyIdempotentInspect
Fetch the full declension (nominals) or conjugation (verbs) table 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": } 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).
| Name | Required | Description | Default |
|---|---|---|---|
| entry_id | Yes | The Wiktionary page title (the lemma) from a search result's inflection handle, e.g. 'amo', 'aqua'. | |
| word_class | Yes | The part-of-speech section from a search result's inflection handle, e.g. 'verb', 'noun', 'adjective'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so safety is covered. The description adds real behavioral context beyond that: the not_found case and the need to switch on result.category before reading the body, plus the Wiktionary source/license. It omits any rate-limit or caching behavior, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the when-to-use caveat; every clause carries information. The final attribution line is required but the middle sentences are dense and could be tightened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema declared, the description need not restate return values, yet it still gives the consumption pattern (switch on result.category) and the not_found branch. Combined with annotations covering the safety profile, nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds provenance semantics beyond the schema by defining the pair as a 'search result's inflection handle (entry_id + word_class)', telling the agent where the values come from rather than just their types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (fetch the full declension/conjugation table) and clarifies the nominal-vs-verbal split, so the agent knows exactly what it returns. It is clearly distinguishable from latin_search and latin_lemmatize among its siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when NOT to use it: '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.' This routes the agent away from redundant calls without inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
latin_lemmatizeMorphologically analyze a Latin formARead-onlyIdempotentInspect
Analyze one inflected Latin form with the Morpheus morphological analyzer: its lemma(s) plus the grammatical reading (person, number, tense, mood, voice, case…). Useful when you want the morphology itself — for the dictionary entry, latin_search already resolves inflected queries on its own. Returns Markdown plus the analysis as structuredContent matching the declared outputSchema. Results are cached server-side. Analyses via the Perseids Morpheus service.
| Name | Required | Description | Default |
|---|---|---|---|
| word | Yes | One inflected Latin word form to analyze, e.g. 'amavit', 'aquam'. Macrons optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| word | Yes | |
| found | Yes | |
| source | No | |
| analyses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is covered. The description goes beyond them by disclosing the return shape (Markdown plus structuredContent matching the outputSchema), server-side caching, and the backing service (Perseids Morpheus). It does not mention rate limits, failure modes for unknown forms, or ambiguity handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core action before the routing note, the return format, and the caching detail. Every sentence carries information; the ellipsis in '(person, number, tense, mood, voice, case…)' is slightly loose but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich output schema and full annotations, the description only needs to cover the purpose, routing, and any non-structured behavior — it does all three (return format, caching, backend service). The only gap is behavior on invalid or ambiguous forms, which an agent might still want to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the schema documents the single 'word' parameter with a regex pattern, length bounds, examples and a note that macrons are optional. The description adds only the generic phrase 'one inflected Latin form', which does not go beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and resource: analyze a single inflected Latin form to produce lemma(s) plus a grammatical reading, and it lists the reading components (person, number, tense, mood, voice, case). It clearly differentiates itself from latin_search, but says nothing about latin_get_inflections, which is arguably the more confusable sibling given the name mismatch (lemmatize vs. get_inflections).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use the tool ('when you want the morphology itself') and names an explicit alternative plus the condition that selects it ('for the dictionary entry, latin_search already resolves inflected queries on its own'). No exclusion is given relative to latin_get_inflections, so the routing guidance is good but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
latin_searchLook a Latin word upARead-onlyIdempotentInspect
Look a Latin 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 or the Morpheus analyzer) and the result notes the resolution. With search_language='eng' the query is an English word instead: the result lists its per-sense Latin 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).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The word to look up, in the language search_language names. Latin (default): a SINGLE word, any form — an inflected form ('amavit') is resolved to its lemma ('amo') automatically, and the result names it (search_method tells you how; resolved_lemma is the lemma to follow for the full paradigm); macrons are optional ('amo' and 'amō' both work). English (search_language='eng'): the English word whose Latin equivalents you want — multiword entries like 'give up' work. | |
| max_forms | No | 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 | No | When true (default), each match's full declension/conjugation table is returned INLINE — usable cases/tenses in ONE call, no follow-up latin_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 Latin entries; the per-sense translations list itself is always returned. | |
| search_language | No | Language the query word is in: 'lat' (default) looks the Latin word up directly; 'eng' finds the Latin equivalents of an English word (per-sense, from Wiktionary's translation tables) and returns their full entries. Glosses are in English either way. | lat |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | False when nothing matched. For an eng query, True means Latin translations were found — entries may still be empty when none of them could be expanded (see translations). |
| query | Yes | |
| source | No | |
| entries | No | |
| handles | No | |
| language | Yes | |
| translations | No | Populated only for eng queries (always [] for lat): the Latin terms each English sense translates to, in sense order. Entries/handles below are the expanded dictionary entries of those terms. |
| resolved_from | No | The query whose lemma this result names (paired with resolved_lemma); else empty. lat queries only (always empty for eng). Set both when an inflected miss was re-searched (search_method lemma_index/morpheus) and when the query's own page is a form-of stub returned directly (search_method stays 'direct'). |
| search_method | No | How the match was found: 'direct' = the query itself matched; 'lemma_index' = an inflected form resolved via a previously cached paradigm; 'morpheus' = resolved via the Morpheus morphological analyzer; 'translations' = an English query resolved via Wiktionary translation tables. |
| resolved_lemma | No | The lemma this query maps to; else empty. lat queries only. With search_method 'lemma_index'/'morpheus' the entries below ARE this lemma's; with 'direct' the entries are the queried form-of stub and this names the lemma whose page holds the full paradigm (search it / latin_get_inflections it). Only set when unambiguous — a form mapping to several lemmas leaves it empty (use lemmatize); the per-sense form_of still carries each. |
| forms_truncated | No | How many handles did NOT get an inline table because the per-search cap was reached. |
| translations_truncated | No | How many distinct translated lemmas were NOT expanded into entries because the per-search expansion cap was reached (they still appear under translations). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld/non-destructive, and the description adds substantial context beyond them: server-side caching, polite paced live upstream fetches on cold queries, an explicit rate-limit retry instruction ('wait a few seconds and retry'), and CC BY-SA 4.0 attribution obligations. That is exactly the extra behavioral context annotations do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and return shape, then layers mode behavior, caching/rate-limit notes and licensing. Dense but every sentence adds operational value; the third paragraph is slightly long but earns its place with the retry and attribution guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, yet the description still notes Markdown plus matching structuredContent. Combined with caching, rate-limit handling, license terms and both search modes, an agent has everything needed to call this correctly and interpret failures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: macrons are optional ('amo'/'amō'), inflected forms resolve to a lemma and the result names it via search_method/resolved_lemma, and max_forms is tied to per-table upstream fetches on cold queries. These go beyond the schema's field-level text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource — look a Latin word up on Wiktionary and return senses plus full declension/conjugation tables — and explicitly scopes it as 'attested, not invented'. It also covers the reverse English→Latin mode, distinguishing it from siblings like latin_get_inflections and latin_lemmatize which it implicitly supersedes (automatic lemma resolution, inline paradigms).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear conditional guidance: include_forms=false for a cheap existence screen, max_forms to bound expansion, and search_language='eng' for reverse lookup. It names latin_get_inflections as the alternative a follow-up would otherwise require. It stops short of explicit when-not-to-use conditions against siblings like latin_lemmatize.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
latin_get_inflections8 fields changed- added
Input schema / properties / entry_id / patternAdded value: +"^[A-Za-zĀāĒēĪīŌōŪūȲȳÄäÖöËë\\-']{1,80}$" - added
Input schema / properties / word_class / enumAdded value: +[ + "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" +] - removed
Input schema / properties / word_class / maxLengthRemoved value: -24 - removed
Input schema / properties / word_class / minLengthRemoved value: -1 - removed
Input schema / properties / word_class / patternRemoved value: -"^[a-z ]+$" - changed
Output schema / $defs / LatinNominalParadigm / properties / source / defaultPrevious value: -"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)"New value: +"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0: https://creativecommons.org/licenses/by-sa/4.0/) Adapted: reformatted and condensed from the original." - changed
Output schema / $defs / LatinVerbalParadigm / properties / source / defaultPrevious value: -"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)"New value: +"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0: https://creativecommons.org/licenses/by-sa/4.0/) Adapted: reformatted and condensed from the original." - changed
Output schema / $defs / ParadigmNotFound / properties / source / defaultPrevious value: -"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)"New value: +"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0: https://creativecommons.org/licenses/by-sa/4.0/) Adapted: reformatted and condensed from the original."
- Changed
latin_lemmatize1 field changed- added
Input schema / properties / word / patternAdded value: +"^[A-Za-zĀāĒēĪīŌōŪūȲȳÄäÖöËë\\-']{1,80}$"
- Changed
latin_search4 fields changed- changed
Output schema / $defs / LatinNominalParadigm / properties / source / defaultPrevious value: -"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)"New value: +"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0: https://creativecommons.org/licenses/by-sa/4.0/) Adapted: reformatted and condensed from the original." - changed
Output schema / $defs / LatinVerbalParadigm / properties / source / defaultPrevious value: -"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)"New value: +"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0: https://creativecommons.org/licenses/by-sa/4.0/) Adapted: reformatted and condensed from the original." - changed
Output schema / $defs / ParadigmNotFound / properties / source / defaultPrevious value: -"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)"New value: +"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0: https://creativecommons.org/licenses/by-sa/4.0/) Adapted: reformatted and condensed from the original." - changed
Output schema / properties / source / defaultPrevious value: -"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)"New value: +"Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0: https://creativecommons.org/licenses/by-sa/4.0/) Adapted: reformatted and condensed from the original."
6 tool updates
- Removed
get_inflections - Added
latin_get_inflections - Added
latin_lemmatize - Added
latin_search - Removed
lemmatize_latin - Removed
search_latin
1 tool update
- Changed
search_latin4 fields changed- changed
Input schema / properties / query / descriptionPrevious value: -"The word to look up, in the language search_language names. Latin (default): a SINGLE word, any form — an inflected form ('amavit') is resolved to its lemma ('amo') automatically via cached paradigms or the Morpheus analyzer, and the result says so; macrons are optional ('amo' and 'amō' both work). English (search_language='eng'): the English word whose Latin equivalents you want — multiword entries like 'give up' work."New value: +"The word to look up, in the language search_language names. Latin (default): a SINGLE word, any form — an inflected form ('amavit') is resolved to its lemma ('amo') automatically, and the result names it (search_method tells you how; resolved_lemma is the lemma to follow for the full paradigm); macrons are optional ('amo' and 'amō' both work). English (search_language='eng'): the English word whose Latin equivalents you want — multiword entries like 'give up' work." - added
Output schema / $defs / Sense / properties / form_ofAdded value: +{ + "default": "", + "description": "When this sense is a non-lemma inflected form ('accusative singular of aqua'), the lemma it inflects from — its Wiktionary page title, ready to search or feed to get_inflections for the full paradigm. Empty for an ordinary gloss.", + "title": "Form Of", + "type": "string" +} - changed
Output schema / properties / resolved_from / descriptionPrevious value: -"The original inflected query when resolved; else empty. lat queries only — always empty for eng results."New value: +"The query whose lemma this result names (paired with resolved_lemma); else empty. lat queries only (always empty for eng). Set both when an inflected miss was re-searched (search_method lemma_index/morpheus) and when the query's own page is a form-of stub returned directly (search_method stays 'direct')." - changed
Output schema / properties / resolved_lemma / descriptionPrevious value: -"The lemma actually searched when resolved; else empty. lat queries only — always empty for eng results."New value: +"The lemma this query maps to; else empty. lat queries only. With search_method 'lemma_index'/'morpheus' the entries below ARE this lemma's; with 'direct' the entries are the queried form-of stub and this names the lemma whose page holds the full paradigm (search it / get_inflections it). Only set when unambiguous — a form mapping to several lemmas leaves it empty (use lemmatize); the per-sense form_of still carries each."
2 tool updates
- Changed
get_inflections12 fields changed- added
Input schema / properties / entry_idAdded value: +{ + "description": "The Wiktionary page title (the lemma) from a search result's inflection handle, e.g. 'amo', 'aqua'.", + "maxLength": 80, + "minLength": 1, + "title": "Entry Id", + "type": "string" +} - removed
Input schema / properties / vards_idRemoved value: -{ - "description": "The Wiktionary page title (the lemma) from a search result's inflection handle, e.g. 'amo', 'aqua'.", - "maxLength": 80, - "minLength": 1, - "title": "Vards Id", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "vards_id", - "word_class" -]New value: +[ + "entry_id", + "word_class" +] - added
Output schema / $defs / LatinNominalParadigm / properties / entry_idAdded value: +{ + "title": "Entry Id", + "type": "string" +} - removed
Output schema / $defs / LatinNominalParadigm / properties / vards_idRemoved value: -{ - "title": "Vards Id", - "type": "string" -} - changed
Output schema / $defs / LatinNominalParadigm / requiredPrevious value: -[ - "vards_id", - "word_class", - "cases" -]New value: +[ + "entry_id", + "word_class", + "cases" +] - added
Output schema / $defs / LatinVerbalParadigm / properties / entry_idAdded value: +{ + "title": "Entry Id", + "type": "string" +} - removed
Output schema / $defs / LatinVerbalParadigm / properties / vards_idRemoved value: -{ - "title": "Vards Id", - "type": "string" -} - changed
Output schema / $defs / LatinVerbalParadigm / requiredPrevious value: -[ - "vards_id", - "word_class", - "finite", - "nonfinite" -]New value: +[ + "entry_id", + "word_class", + "finite", + "nonfinite" +] - added
Output schema / $defs / ParadigmNotFound / properties / entry_idAdded value: +{ + "title": "Entry Id", + "type": "string" +} - removed
Output schema / $defs / ParadigmNotFound / properties / vards_idRemoved value: -{ - "title": "Vards Id", - "type": "string" -} - changed
Output schema / $defs / ParadigmNotFound / requiredPrevious value: -[ - "vards_id", - "word_class" -]New value: +[ + "entry_id", + "word_class" +]
- Changed
search_latin30 fields changed- added
Input schema / $defsAdded value: +{ + "SearchLanguage": { + "description": "The query language. ``lat`` looks a Latin word up directly (any of its forms —\nan inflected query resolves via the form index or Morpheus). ``eng`` searches in\nreverse: the English Wiktionary page for the query word lists per-sense Latin\ntranslations, and each distinct Latin lemma is then looked up normally.", + "enum": [ + "lat", + "eng" + ], + "title": "SearchLanguage", + "type": "string" + } +} - changed
Input schema / properties / include_forms / descriptionPrevious value: -"When true (default), each match's full declension/conjugation table is returned INLINE — usable cases/tenses in ONE call, no follow-up 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."New value: +"When true (default), each match's full declension/conjugation table is returned INLINE — usable cases/tenses in ONE call, no follow-up 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 Latin entries; the per-sense translations list itself is always returned." - changed
Input schema / properties / query / descriptionPrevious value: -"A SINGLE Latin word, not a phrase — one per call. Any form works: an inflected form ('amavit') is resolved to its lemma ('amo') automatically via cached paradigms or the Morpheus analyzer, and the result says so. Macrons are optional ('amo' and 'amō' both work). For English→Latin, you must already know the Latin word — this dictionary is keyed by Latin headwords."New value: +"The word to look up, in the language search_language names. Latin (default): a SINGLE word, any form — an inflected form ('amavit') is resolved to its lemma ('amo') automatically via cached paradigms or the Morpheus analyzer, and the result says so; macrons are optional ('amo' and 'amō' both work). English (search_language='eng'): the English word whose Latin equivalents you want — multiword entries like 'give up' work." - added
Input schema / properties / search_languageAdded value: +{ + "$ref": "#/$defs/SearchLanguage", + "default": "lat", + "description": "Language the query word is in: 'lat' (default) looks the Latin word up directly; 'eng' finds the Latin equivalents of an English word (per-sense, from Wiktionary's translation tables) and returns their full entries. Glosses are in English either way." +} - added
Output schema / $defs / Entry / properties / entry_idAdded value: +{ + "default": "", + "description": "Page title — feed to get_inflections.", + "title": "Entry Id", + "type": "string" +} - removed
Output schema / $defs / Entry / properties / vards_idRemoved value: -{ - "default": "", - "description": "Page title — feed to get_inflections.", - "title": "Vards Id", - "type": "string" -} - changed
Output schema / $defs / InflectionHandle / descriptionPrevious value: -"A structured anchor for fetching a full paradigm: feed ``vards_id`` (the page\ntitle) + ``word_class`` (the POS section) to ``get_inflections`` — or ask\n``search`` to include the table inline (``forms``)."New value: +"A structured anchor for fetching a full paradigm: feed ``entry_id`` (the page\ntitle) + ``word_class`` (the POS section) to ``get_inflections`` — or ask\n``search`` to include the table inline (``forms``)." - added
Output schema / $defs / InflectionHandle / properties / entry_idAdded value: +{ + "description": "Wiktionary page title — the lemma itself.", + "title": "Entry Id", + "type": "string" +} - removed
Output schema / $defs / InflectionHandle / properties / vards_idRemoved value: -{ - "description": "Wiktionary page title — the lemma itself.", - "title": "Vards Id", - "type": "string" -} - changed
Output schema / $defs / InflectionHandle / requiredPrevious value: -[ - "vards_id", - "word_class" -]New value: +[ + "entry_id", + "word_class" +] - added
Output schema / $defs / LatinNominalParadigm / properties / entry_idAdded value: +{ + "title": "Entry Id", + "type": "string" +} - removed
Output schema / $defs / LatinNominalParadigm / properties / vards_idRemoved value: -{ - "title": "Vards Id", - "type": "string" -} - changed
Output schema / $defs / LatinNominalParadigm / requiredPrevious value: -[ - "vards_id", - "word_class", - "cases" -]New value: +[ + "entry_id", + "word_class", + "cases" +] - added
Output schema / $defs / LatinVerbalParadigm / properties / entry_idAdded value: +{ + "title": "Entry Id", + "type": "string" +} - removed
Output schema / $defs / LatinVerbalParadigm / properties / vards_idRemoved value: -{ - "title": "Vards Id", - "type": "string" -} - changed
Output schema / $defs / LatinVerbalParadigm / requiredPrevious value: -[ - "vards_id", - "word_class", - "finite", - "nonfinite" -]New value: +[ + "entry_id", + "word_class", + "finite", + "nonfinite" +] - added
Output schema / $defs / ParadigmNotFound / properties / entry_idAdded value: +{ + "title": "Entry Id", + "type": "string" +} - removed
Output schema / $defs / ParadigmNotFound / properties / vards_idRemoved value: -{ - "title": "Vards Id", - "type": "string" -} - changed
Output schema / $defs / ParadigmNotFound / requiredPrevious value: -[ - "vards_id", - "word_class" -]New value: +[ + "entry_id", + "word_class" +] - changed
Output schema / $defs / SearchLanguage / descriptionPrevious value: -"The query language. Latin only for now: the English Wiktionary's definition\nendpoint is keyed by page title, so the query must be a Latin word (any of its\nforms — an inflected query resolves via the form index or Morpheus)."New value: +"The query language. ``lat`` looks a Latin word up directly (any of its forms —\nan inflected query resolves via the form index or Morpheus). ``eng`` searches in\nreverse: the English Wiktionary page for the query word lists per-sense Latin\ntranslations, and each distinct Latin lemma is then looked up normally." - changed
Output schema / $defs / SearchLanguage / enumPrevious value: -[ - "lat" -]New value: +[ + "lat", + "eng" +] - added
Output schema / $defs / TranslationSenseAdded value: +{ + "description": "One English sense (a translations table) and the Latin terms it offers.", + "properties": { + "sense": { + "description": "The sense gloss the source table carries.", + "title": "Sense", + "type": "string" + }, + "terms": { + "items": { + "$ref": "#/$defs/TranslationTerm" + }, + "title": "Terms", + "type": "array" + } + }, + "required": [ + "sense" + ], + "title": "TranslationSense", + "type": "object" +} - added
Output schema / $defs / TranslationTermAdded value: +{ + "description": "One Latin word a translations table offers for an English sense. ``word`` is\nthe Wiktionary page title (what an ``eng`` search re-searches and what\n``get_inflections`` needs); ``display`` keeps the rendered text only when it\ndiffers (macrons: title 'uvidus' renders as 'ūvidus').", + "properties": { + "display": { + "default": "", + "description": "Rendered form when it differs from the title (macrons).", + "title": "Display", + "type": "string" + }, + "gender": { + "default": "", + "description": "Grammatical gender as marked, e.g. 'f'.", + "title": "Gender", + "type": "string" + }, + "qualifier": { + "default": "", + "description": "Usage qualifier as marked, e.g. 'poetic'; else empty.", + "title": "Qualifier", + "type": "string" + }, + "word": { + "description": "Wiktionary page title — the lemma itself.", + "title": "Word", + "type": "string" + } + }, + "required": [ + "word" + ], + "title": "TranslationTerm", + "type": "object" +} - changed
Output schema / properties / found / descriptionPrevious value: -"False when nothing matched."New value: +"False when nothing matched. For an eng query, True means Latin translations were found — entries may still be empty when none of them could be expanded (see translations)." - changed
Output schema / properties / resolved_from / descriptionPrevious value: -"The original inflected query when resolved; else empty."New value: +"The original inflected query when resolved; else empty. lat queries only — always empty for eng results." - changed
Output schema / properties / resolved_lemma / descriptionPrevious value: -"The lemma actually searched when resolved; else empty."New value: +"The lemma actually searched when resolved; else empty. lat queries only — always empty for eng results." - changed
Output schema / properties / search_method / descriptionPrevious value: -"How the match was found: 'direct' = the query itself matched; 'lemma_index' = an inflected form resolved via a previously cached paradigm; 'morpheus' = resolved via the Morpheus morphological analyzer."New value: +"How the match was found: 'direct' = the query itself matched; 'lemma_index' = an inflected form resolved via a previously cached paradigm; 'morpheus' = resolved via the Morpheus morphological analyzer; 'translations' = an English query resolved via Wiktionary translation tables." - changed
Output schema / properties / search_method / enumPrevious value: -[ - "direct", - "lemma_index", - "morpheus" -]New value: +[ + "direct", + "lemma_index", + "morpheus", + "translations" +] - added
Output schema / properties / translationsAdded value: +{ + "description": "Populated only for eng queries (always [] for lat): the Latin terms each English sense translates to, in sense order. Entries/handles below are the expanded dictionary entries of those terms.", + "items": { + "$ref": "#/$defs/TranslationSense" + }, + "title": "Translations", + "type": "array" +} - added
Output schema / properties / translations_truncatedAdded value: +{ + "default": 0, + "description": "How many distinct translated lemmas were NOT expanded into entries because the per-search expansion cap was reached (they still appear under translations).", + "title": "Translations Truncated", + "type": "integer" +}
3 tool updates
- Changed
get_inflections1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$defs": { + "LatinNominalParadigm": { + "description": "Declension of a noun/adjective/etc.: case → {singular, plural}.\n\n``category`` discriminates this from the verbal and not-found shapes — switch on\nit before reading the body.", + "properties": { + "cases": { + "additionalProperties": { + "$ref": "#/$defs/NumberForms" + }, + "description": "Case name (lower-case: 'nominative', 'genitive', …) → its singular/plural forms, in table order.", + "title": "Cases", + "type": "object" + }, + "category": { + "const": "nominal", + "default": "nominal", + "title": "Category", + "type": "string" + }, + "found": { + "const": true, + "default": true, + "title": "Found", + "type": "boolean" + }, + "source": { + "default": "Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (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": "LatinNominalParadigm", + "type": "object" + }, + "LatinVerbalParadigm": { + "description": "Conjugation of a verb, grouped the way Wiktionary's table is:\nfinite cells keyed by \"<voice> <mood> <tense>\" → person/number → form, plus the\nnon-finite sections (infinitives, participles, gerund, supine).", + "properties": { + "category": { + "const": "verbal", + "default": "verbal", + "title": "Category", + "type": "string" + }, + "finite": { + "additionalProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "description": "'<voice> <mood> <tense>' (lower-case, e.g. 'active indicative present') → person/number ('first singular' … 'third plural') → the form. Periphrastic rows (e.g. passive perfect) appear under the single key 'all'. Alternates are comma-separated; an em-dash cell (no such form) is omitted.", + "title": "Finite", + "type": "object" + }, + "found": { + "const": true, + "default": true, + "title": "Found", + "type": "boolean" + }, + "nonfinite": { + "additionalProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "description": "Non-finite section ('infinitive', 'participle', 'gerund', 'supine') → label ('active present', 'genitive', …) → the form.", + "title": "Nonfinite", + "type": "object" + }, + "source": { + "default": "Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (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": "LatinVerbalParadigm", + "type": "object" + }, + "NumberForms": { + "description": "A declension cell: the two number forms of one case. Latin forms are verbatim\n(macrons preserved); alternates stay space-separated as Wiktionary renders them.", + "properties": { + "plural": { + "title": "Plural", + "type": "string" + }, + "singular": { + "title": "Singular", + "type": "string" + } + }, + "required": [ + "singular", + "plural" + ], + "title": "NumberForms", + "type": "object" + }, + "ParadigmNotFound": { + "description": "No inflection table for this page/POS (no Latin section, no table, or the\npage doesn't exist). ``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": "Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (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" + } + }, + "properties": { + "result": { + "discriminator": { + "mapping": { + "nominal": "#/$defs/LatinNominalParadigm", + "not_found": "#/$defs/ParadigmNotFound", + "verbal": "#/$defs/LatinVerbalParadigm" + }, + "propertyName": "category" + }, + "oneOf": [ + { + "$ref": "#/$defs/LatinNominalParadigm" + }, + { + "$ref": "#/$defs/LatinVerbalParadigm" + }, + { + "$ref": "#/$defs/ParadigmNotFound" + } + ], + "title": "Result" + } + }, + "required": [ + "result" + ], + "title": "get_inflectionsOutput", + "type": "object" +}
- Changed
lemmatize_latin1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$defs": { + "MorphAnalysis": { + "description": "One Morpheus analysis of an inflected form: its lemma plus the grammatical\ntags the analyzer assigned (mood/tense/case/number/…, whatever applies).", + "properties": { + "lemma": { + "title": "Lemma", + "type": "string" + }, + "part_of_speech": { + "default": "", + "title": "Part Of Speech", + "type": "string" + }, + "source": { + "default": "Morpheus morphological analyses via the Perseids Project morphology service (morph.perseids.org), Tufts University / Perseus Digital Library.", + "title": "Source", + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "title": "Tags", + "type": "object" + } + }, + "required": [ + "lemma" + ], + "title": "MorphAnalysis", + "type": "object" + } + }, + "description": "The result of lemmatizing one word form via Morpheus.", + "properties": { + "analyses": { + "items": { + "$ref": "#/$defs/MorphAnalysis" + }, + "title": "Analyses", + "type": "array" + }, + "found": { + "title": "Found", + "type": "boolean" + }, + "source": { + "default": "Morpheus morphological analyses via the Perseids Project morphology service (morph.perseids.org), Tufts University / Perseus Digital Library.", + "title": "Source", + "type": "string" + }, + "word": { + "title": "Word", + "type": "string" + } + }, + "required": [ + "word", + "found" + ], + "title": "Lemmatization", + "type": "object" +}
- Changed
search_latin1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$defs": { + "Entry": { + "description": "One Latin entry on the page: the headword (page title) with one\npart-of-speech section's senses.", + "properties": { + "headword": { + "title": "Headword", + "type": "string" + }, + "part_of_speech": { + "default": "", + "title": "Part Of Speech", + "type": "string" + }, + "senses": { + "items": { + "$ref": "#/$defs/Sense" + }, + "title": "Senses", + "type": "array" + }, + "vards_id": { + "default": "", + "description": "Page title — feed to get_inflections.", + "title": "Vards Id", + "type": "string" + }, + "word_class": { + "default": "", + "description": "POS section — feed to get_inflections.", + "title": "Word Class", + "type": "string" + } + }, + "required": [ + "headword" + ], + "title": "Entry", + "type": "object" + }, + "InflectionHandle": { + "description": "A structured anchor for fetching a full paradigm: feed ``vards_id`` (the page\ntitle) + ``word_class`` (the POS section) to ``get_inflections`` — or ask\n``search`` to include the table inline (``forms``).", + "properties": { + "context": { + "default": "", + "description": "Nearby headword / hint.", + "title": "Context", + "type": "string" + }, + "forms": { + "anyOf": [ + { + "discriminator": { + "mapping": { + "nominal": "#/$defs/LatinNominalParadigm", + "not_found": "#/$defs/ParadigmNotFound", + "verbal": "#/$defs/LatinVerbalParadigm" + }, + "propertyName": "category" + }, + "oneOf": [ + { + "$ref": "#/$defs/LatinNominalParadigm" + }, + { + "$ref": "#/$defs/LatinVerbalParadigm" + }, + { + "$ref": "#/$defs/ParadigmNotFound" + } + ] + }, + { + "type": "null" + } + ], + "default": null, + "description": "The full paradigm, populated when a search is asked to include forms. None when not requested or beyond the cap.", + "title": "Forms" + }, + "pos_hint": { + "default": "", + "description": "Part-of-speech hint.", + "title": "Pos Hint", + "type": "string" + }, + "vards_id": { + "description": "Wiktionary page title — the lemma itself.", + "title": "Vards Id", + "type": "string" + }, + "word_class": { + "description": "Part-of-speech section, e.g. 'verb', 'noun'.", + "title": "Word Class", + "type": "string" + } + }, + "required": [ + "vards_id", + "word_class" + ], + "title": "InflectionHandle", + "type": "object" + }, + "LatinNominalParadigm": { + "description": "Declension of a noun/adjective/etc.: case → {singular, plural}.\n\n``category`` discriminates this from the verbal and not-found shapes — switch on\nit before reading the body.", + "properties": { + "cases": { + "additionalProperties": { + "$ref": "#/$defs/NumberForms" + }, + "description": "Case name (lower-case: 'nominative', 'genitive', …) → its singular/plural forms, in table order.", + "title": "Cases", + "type": "object" + }, + "category": { + "const": "nominal", + "default": "nominal", + "title": "Category", + "type": "string" + }, + "found": { + "const": true, + "default": true, + "title": "Found", + "type": "boolean" + }, + "source": { + "default": "Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (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": "LatinNominalParadigm", + "type": "object" + }, + "LatinVerbalParadigm": { + "description": "Conjugation of a verb, grouped the way Wiktionary's table is:\nfinite cells keyed by \"<voice> <mood> <tense>\" → person/number → form, plus the\nnon-finite sections (infinitives, participles, gerund, supine).", + "properties": { + "category": { + "const": "verbal", + "default": "verbal", + "title": "Category", + "type": "string" + }, + "finite": { + "additionalProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "description": "'<voice> <mood> <tense>' (lower-case, e.g. 'active indicative present') → person/number ('first singular' … 'third plural') → the form. Periphrastic rows (e.g. passive perfect) appear under the single key 'all'. Alternates are comma-separated; an em-dash cell (no such form) is omitted.", + "title": "Finite", + "type": "object" + }, + "found": { + "const": true, + "default": true, + "title": "Found", + "type": "boolean" + }, + "nonfinite": { + "additionalProperties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "description": "Non-finite section ('infinitive', 'participle', 'gerund', 'supine') → label ('active present', 'genitive', …) → the form.", + "title": "Nonfinite", + "type": "object" + }, + "source": { + "default": "Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (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": "LatinVerbalParadigm", + "type": "object" + }, + "NumberForms": { + "description": "A declension cell: the two number forms of one case. Latin forms are verbatim\n(macrons preserved); alternates stay space-separated as Wiktionary renders them.", + "properties": { + "plural": { + "title": "Plural", + "type": "string" + }, + "singular": { + "title": "Singular", + "type": "string" + } + }, + "required": [ + "singular", + "plural" + ], + "title": "NumberForms", + "type": "object" + }, + "ParadigmNotFound": { + "description": "No inflection table for this page/POS (no Latin section, no table, or the\npage doesn't exist). ``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": "Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (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" + }, + "SearchLanguage": { + "description": "The query language. Latin only for now: the English Wiktionary's definition\nendpoint is keyed by page title, so the query must be a Latin word (any of its\nforms — an inflected query resolves via the form index or Morpheus).", + "enum": [ + "lat" + ], + "title": "SearchLanguage", + "type": "string" + }, + "Sense": { + "description": "One sense of an entry: the (HTML-stripped) Wiktionary definition line.", + "properties": { + "examples": { + "items": { + "type": "string" + }, + "title": "Examples", + "type": "array" + }, + "gloss": { + "title": "Gloss", + "type": "string" + }, + "label": { + "default": "", + "title": "Label", + "type": "string" + } + }, + "required": [ + "gloss" + ], + "title": "Sense", + "type": "object" + } + }, + "description": "The result of a dictionary search.", + "properties": { + "entries": { + "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.", + "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 resolved; else empty.", + "title": "Resolved From", + "type": "string" + }, + "resolved_lemma": { + "default": "", + "description": "The lemma actually searched when resolved; else empty.", + "title": "Resolved Lemma", + "type": "string" + }, + "search_method": { + "default": "direct", + "description": "How the match was found: 'direct' = the query itself matched; 'lemma_index' = an inflected form resolved via a previously cached paradigm; 'morpheus' = resolved via the Morpheus morphological analyzer.", + "enum": [ + "direct", + "lemma_index", + "morpheus" + ], + "title": "Search Method", + "type": "string" + }, + "source": { + "default": "Wiktionary, the free dictionary (en.wiktionary.org), Latin entries. Wikimedia Foundation. Text available under CC BY-SA 4.0; attribution and share-alike required when republishing. (CC BY-SA 4.0)", + "title": "Source", + "type": "string" + } + }, + "required": [ + "query", + "language", + "found" + ], + "title": "SearchResult", + "type": "object" +}
3 tool updates
- First observed
get_inflections - First observed
lemmatize_latin - First observed
search_latin
Related MCP Connectors
Grounds LLMs in real Latgalian: Wiktionary lemmas, inflections, romanization.
Grounds LLMs in the real Livonian dictionary: attested words, inflections, romanization.
Grounds LLMs in real Church Slavonic: Wiktionary lemmas, dual-number paradigms, transliteration.
Grounds LLMs in real Old Norse: lemmas, mediopassive paradigms, English→Old Norse lookup.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to search and retrieve Latin word definitions and lemmas from the Logeion dictionary database, with support for automatic lemmatization via spaCy.3MIT
- AlicenseNot gradedqualityDmaintenanceProvides Latin NLP tools for tokenization, lemmatization, POS tagging, reported speech detection, and LiLa Knowledge Base querying via MCP.MIT
- AlicenseNot gradedqualityAmaintenanceSelf-hosted read-only MCP server over a local library of ancient-text corpora — 2.47M documents and 118M passages from 258 sources (cuneiform, Classical, biblical, medieval and more), with the license class tracked on every passage. 14 research tools: full-text search, concordance, passage display, dictionary definitions, etymologies, cognates, parallel passages, text alignment, place lookup etc2MIT
- AlicenseAqualityBmaintenanceGives AI assistants grounded, sourced access to cross-linguistic data: WALS typological features and Glottolog language classifications. Answers come with provenance, family- and genus-aware counts, and clarification requests instead of guesses when codes are ambiguous.10149 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.