norse
Server Details
Grounds LLMs in real Old Norse: lemmas, mediopassive paradigms, English→Old Norse lookup.
- Status
- Healthy
- Uptime
- 29.7% over 73 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 2 tools
norse_search takes any word form and returns senses plus tables; norse_get_inflections requires an entry_id+word_class handle from a prior search. Their inputs prevent misselection, but the output overlap and the vague condition for using get_inflections ('only when a search ran without inline forms') create minor confusion.
Both tools use snake_case with a consistent 'norse_' prefix. norse_get_inflections follows a verb_noun pattern while norse_search is a bare verb, a minor deviation from perfect consistency.
The server is narrowly scoped to Old Norse word lookup, but 2 tools is on the thin side. norse_get_inflections is essentially a helper for an edge case of norse_search, making the set feel minimal.
Core workflows are covered: search returns senses and inflection tables (including English-to-Old Norse), and get_inflections expands handles. Broader operations like browsing entries, random-word lookup, or etymology are missing but not essential for the stated purpose.
Available Tools
2 toolsnorse_get_inflectionsGet an Old Norse inflection tableARead-onlyIdempotentInspect
Fetch the full declension (nominals) or conjugation (verbs — active AND mediopassive) tables for a lemma identified by a search result's inflection handle (entry_id + word_class). Use this only when a search ran without inline forms or left a match un-expanded — a default search already returns each match's table inline. Returns Markdown plus the table as structuredContent with the shape {"result": } 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. 'maðr', 'kasta'. | |
| 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 cover the safety profile (readOnly, idempotent, non-destructive, openWorld). Beyond that, the description discloses the return surface (Markdown plus structuredContent) and the not_found outcome the agent must branch on, which is genuinely useful behavioral context not in the annotations.
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 action, then the gating condition, then the return shape — a sensible order. It is dense with parenthetical asides and the license line is arguably marginal, but no sentence is wasted.
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?
Given an outputSchema exists, the description need not explain return values, yet it briefly flags the category switch agent should branch on. Combined with the usage gate and parameter provenance, an agent has everything needed to invoke it correctly.
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 description coverage is 100%, so the baseline is 3, but the description adds provenance semantics the schema lacks: entry_id + word_class come as a pair from a search result's inflection handle and must be used together. It doesn't document enum values or the pattern beyond what the schema already gives.
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?
Names a specific verb (fetch) and resource (full declension/conjugation tables) and specifies the exact key (a search result's inflection handle) needed to identify the target. It is clearly a follow-up to the norse_search sibling, so an agent can tell which tool owns the lookup vs. which owns the table.
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?
States an explicit when-to-use and when-NOT-to-use rule: call this only when a search ran without inline forms or left a match un-expanded, because a default search already returns the table inline. That routing condition is exactly what an agent needs to avoid redundant calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
norse_searchLook an Old Norse word upARead-onlyIdempotentInspect
Look an Old Norse word up on Wiktionary and return its senses plus full declension/conjugation tables — attested content (including the verbs' mediopassive voice), not invented. Any form of the word works; an inflected query is resolved to its lemma automatically via previously cached paradigms and the result notes the resolution. With search_language='eng' the query is an English word instead: the result lists its per-sense Old Norse 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. Old Norse (default): a SINGLE Old Norse word, any form — an inflected form ('mǫnnum') is resolved to its lemma ('maðr') automatically via cached paradigms, and the result says so; diacritics are optional once a paradigm is cached ('madr' and 'mathr' both find maðr, 'monnum' finds mǫnnum). English (search_language='eng'): the English word whose Old Norse equivalents you want — multiword entries like 'apple tree' 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 (and the verbs' mediopassive voice) in ONE call, no follow-up norse_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 Old Norse entries; the per-sense translations list itself is always returned. | |
| search_language | No | Language the query word is in: 'non' (default) looks the Old Norse word up directly; 'eng' finds the Old Norse equivalents of an English word (per-sense, from Wiktionary's translation tables) and returns their full entries. Glosses are in English either way. | non |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | False when nothing matched. For an eng query, True means Old Norse 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 non): the Old Norse terms each English sense translates to, in sense order. Entries/handles below are the expanded dictionary entries of those terms. |
| resolved_from | No | The original inflected query when resolved; else empty. non queries only — always empty for eng results. |
| search_method | No | How the match was found: 'direct' = the query itself matched; 'lemma_index' = an inflected form resolved via a previously cached paradigm; 'translations' = an English query resolved via Wiktionary translation tables. |
| resolved_lemma | No | The lemma actually searched when resolved; else empty. non queries only — always empty for eng results. |
| 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?
Beyond the annotations (readOnly/idempotent/openWorld/destructive=false), the description discloses server-side caching, polite paced upstream fetches with rate limiting and retry advice, lemma-resolution behavior for inflected queries, and CC BY-SA 4.0 attribution obligations. These are exactly the operational traits an agent cannot infer from structured fields.
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 purpose, then layered with mode, caching and licensing details, so an agent can stop reading once it has what it needs. It is somewhat long and the license/attribution sentence, while useful, is the least essential element.
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 spelled out; the description nonetheless notes Markdown plus structuredContent. Combined with mode switching, caching, rate-limit and resolution behavior, nothing an agent needs to invoke this 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 description coverage is 100%, so all four parameters are already documented in the schema and baseline is 3. The description reinforces some semantics (inflected queries resolved to lemma via cached paradigms, eng-mode translation blocks) but adds little that isn't already in the parameter descriptions.
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 opens with a specific verb+resource and scope: 'Look an Old Norse word up on Wiktionary and return its senses plus full declension/conjugation tables', then qualifies the content as attested and the coverage as including mediopassive voice. It also carves out the 'eng' reverse-lookup mode, so an agent understands both behaviors of the tool without opening the schema.
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?
Clear context is given for the two modes ('With search_language=\'eng\' the query is an English word instead') plus operational guidance on caching/rate limits ('on a rate-limit error, wait a few seconds and retry'). What is missing is an explicit when-to-use/when-not statement against the sibling norse_get_inflections (the 'no follow-up' note lives only in the include_forms param text, not the main description).
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.
2 tool updates
- Changed
norse_get_inflections8 fields changed- added
Input schema / properties / entry_id / patternAdded value: +"^[A-Za-zÁáÉéÍíÓóÚúÝýÆæÐðÞþǪǫØøŒœǾǿÖö][A-Za-zÁáÉéÍíÓóÚúÝýÆæÐðÞþǪǫØøŒœǾǿÖö\\-']{0,79}$" - 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 / NorseNominalParadigm / properties / source / defaultPrevious value: -"Wiktionary, the free dictionary (en.wiktionary.org), Old Norse 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), Old Norse 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 / NorseVerbalParadigm / properties / source / defaultPrevious value: -"Wiktionary, the free dictionary (en.wiktionary.org), Old Norse 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), Old Norse 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), Old Norse 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), Old Norse 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
norse_search4 fields changed- changed
Output schema / $defs / NorseNominalParadigm / properties / source / defaultPrevious value: -"Wiktionary, the free dictionary (en.wiktionary.org), Old Norse 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), Old Norse 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 / NorseVerbalParadigm / properties / source / defaultPrevious value: -"Wiktionary, the free dictionary (en.wiktionary.org), Old Norse 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), Old Norse 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), Old Norse 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), Old Norse 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), Old Norse 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), Old Norse 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."
4 tool updates
- Removed
get_inflections - Added
norse_get_inflections - Added
norse_search - Removed
search_norse
2 tool updates
- First observed
get_inflections - First observed
search_norse
Related MCP Connectors
Grounds LLMs in real Latin: Wiktionary lemmas, Morpheus inflections, citations.
Grounds LLMs in the real Livonian dictionary: attested words, inflections, romanization.
Grounds LLMs in real Latgalian: Wiktionary lemmas, inflections, romanization.
Grounds LLMs in real Church Slavonic: Wiktionary lemmas, dual-number paradigms, transliteration.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides access to the Database of Icelandic Morphology (BÍN) to look up word inflections, variants, and lemmas. It enables LLMs to answer grammatical questions and retrieve specific Icelandic word forms using standard grammatical tags.34MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search and retrieve traceable source passages, entities, claims, and scholarly assessments from Nordic prehistory and medieval sources, while keeping source-critical provenance and disagreement distinct.AGPL 3.0
- 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
- 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
Glama MCP Gateway
Add one secure layer between your agents and this server.