Skip to main content
Glama
mideind

Icelandic Morphology MCP Server

by mideind

Icelandic Morphology MCP Server

An MCP (Model Context Protocol) server that provides Icelandic word inflection lookups using BinPackage.

This server enables LLMs to query the Database of Icelandic Morphology (BÍN) to answer questions about Icelandic word inflections, such as:

  • "Hvernig beygist orðið hestur?" (How does the word hestur inflect?)

  • "Hvað er þágufall fleirtölu af kona?" (What is the dative plural of kona?)

  • "Er síamskattarkjóll rétt orð?" (Is síamskattarkjóll a correct word?)

Installation

pip install icelandic-morphology-mcp

Or install from source:

git clone https://github.com/mideind/icelandic-morphology-mcp
cd icelandic-morphology-mcp
pip install -e .

Related MCP server: Icelandic Law MCP

Tools

The server exposes three tools:

lookup_word

Look up an Icelandic word form and return all matching entries.

lookup_word("færi")
# Returns all interpretations: verb forms of "fara", "færa", noun "færi", etc.

get_variant

Get a specific grammatical variant of a word.

get_variant("hestur", "kk", ["ÞGF", "FT"])
# Returns: "hestum" (dative plural)

get_variant("fallegur", "lo", ["EVB", "KVK"])
# Returns: "fallegasta" (superlative weak, feminine)

get_lemma

Find the lemma(s) and word class(es) for a word form.

get_lemma("hestana")
# Returns: [{"lemma": "hestur", "word_class": "kk"}]

Usage with Claude Desktop

Add to your Claude Desktop configuration (claude_desktop_config.json):

{
  "mcpServers": {
    "icelandic-morphology": {
      "command": "icelandic-morphology-mcp"
    }
  }
}

Or if running from source:

{
  "mcpServers": {
    "icelandic-morphology": {
      "command": "python",
      "args": ["-m", "icelandic_mcp.server"],
      "cwd": "/path/to/icelandic-morphology-mcp"
    }
  }
}

Grammatical Tags

The server uses standard BÍN grammatical tags:

Tag

Meaning

NF, ÞF, ÞGF, EF

Cases: nominative, accusative, dative, genitive

ET, FT

Number: singular, plural

gr, nogr

Article: definite, indefinite

kk, kvk, hk

Gender: masculine, feminine, neuter

so, lo, no

Class: verb, adjective, noun

FSB, FVB, MST, ESB, EVB

Adjective degree/form

GM, MM

Voice: active, middle

FH, VH, NH

Mood: indicative, subjunctive, infinitive

NT, ÞT

Tense: present, past

1P, 2P, 3P

Person: 1st, 2nd, 3rd

For full documentation, see BÍN tagset.

License

MIT License. See LICENSE for details.

The underlying BÍN data is licensed under CC BY-SA 4.0 by The Árni Magnússon Institute for Icelandic Studies.

Credits

Available Tools

3 tools
get_lemmaA
Find the lemma(s) and word class(es) for an Icelandic word form.

Given any inflected form, this returns all possible base forms (lemmas)
and their word classes.

Args:
    word: The word form to analyze (e.g., "hestana", "laga", "færi")

Returns:
    A dict with:
    - lemmas: List of possible lemmas, each with lemma and word_class
ParametersJSON Schema
NameRequiredDescriptionDefault
wordYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adequately describes the core functionality (returns all possible base forms and word classes) and output structure, but lacks details on error handling, rate limits, authentication needs, or performance characteristics that would be helpful for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with a clear purpose statement, parameter documentation, and return value explanation in just three sentences. Every sentence adds essential information with zero wasted words, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no annotations and no output schema, the description provides good coverage of purpose, parameters, and return structure. However, it lacks explicit error cases or limitations (e.g., handling of non-Icelandic words, empty inputs), which would make it fully complete for agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must fully compensate. It explicitly documents the single parameter 'word' with clear semantics ('The word form to analyze'), provides examples, and explains what it represents (inflected Icelandic form), adding significant value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb ('find') and resource ('lemma(s) and word class(es)'), explicitly distinguishes from siblings by focusing on Icelandic word form analysis, and provides concrete examples ('hestana', 'laga', 'færi') to illustrate its unique function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context ('Given any inflected form') and implies usage for Icelandic language analysis, but does not explicitly state when to use this tool versus the sibling tools (get_variant, lookup_word), nor does it mention any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_variantA
Get a specific grammatical variant of an Icelandic word.

This converts a word to a different case, number, person, tense, etc.
For example, convert "hestur" to dative plural, or "fallegur" to superlative.

Args:
    word: The base word to convert (e.g., "hestur", "fallegur", "fara")
    word_class: The word class to disambiguate the word. Common values:
        - "kk" (masculine noun), "kvk" (feminine noun), "hk" (neutral noun)
        - "no" (any noun)
        - "so" (verb)
        - "lo" (adjective)
    target_form: List of grammatical feature tags to request. Examples:
        - ["ÞGF"] - dative case
        - ["ÞGF", "FT"] - dative plural
        - ["NF", "FT", "gr"] - nominative plural with definite article
        - ["nogr"] - indefinite form (no article)
        - ["EVB", "KVK"] - superlative weak form, feminine
        - ["FH", "NT", "3P"] - indicative, present tense, 3rd person

Returns:
    A dict with:
    - variants: List of matching variants, each with inflection_form,
      grammatical_tag, and lemma
ParametersJSON Schema
NameRequiredDescriptionDefault
wordYes
word_classYes
target_formYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool does (converts words to specified grammatical forms), provides examples of input-output behavior, and outlines the return structure. It doesn't mention error cases, rate limits, or authentication needs, but covers core functionality well given the annotation gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with a clear purpose statement, explanatory sentence, examples, and well-organized parameter documentation. Every sentence earns its place by providing essential information without redundancy, and it's appropriately front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of grammatical transformation with three parameters and no output schema, the description does an excellent job explaining inputs and providing return value documentation. It could be more complete by explicitly mentioning error conditions or limitations, but it covers the essential context needed for effective tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by providing detailed semantic explanations for all three parameters. It defines 'word' with examples, explains 'word_class' with common values and meanings, and thoroughly documents 'target_form' with multiple examples and tag explanations, adding significant value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('Get', 'converts') and resources ('grammatical variant of an Icelandic word'), distinguishing it from siblings like 'get_lemma' (which likely returns base forms) and 'lookup_word' (which likely provides definitions or general information). It provides concrete examples ('convert "hestur" to dative plural') that illustrate its unique functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool through examples and parameter explanations, suggesting it's for grammatical transformation rather than lemma retrieval or general lookup. However, it doesn't explicitly state when NOT to use it or name alternatives like 'get_lemma' or 'lookup_word', which would be needed for a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_wordA
Look up an Icelandic word form and return all matching entries from BÍN.

This finds all possible interpretations of a word form, including its
lemma(s), word class(es), and grammatical tags.

Args:
    word: The Icelandic word form to look up (e.g., "hestur", "færi", "hestana")
    at_sentence_start: If True, also check lowercase forms when the word
        is capitalized (useful for words at the start of sentences)

Returns:
    A dict with:
    - found: Whether any matches were found
    - search_key: The actual search key used (may differ if z->s replacement occurred)
    - entries: List of matching entries, each with lemma, word_class, domain,
      inflection_form, and grammatical_tag
ParametersJSON Schema
NameRequiredDescriptionDefault
wordYes
at_sentence_startNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does so well by detailing the tool's behavior: it performs a lookup, returns a structured dict with specific fields (found, search_key, entries), and explains the search key adjustment (z->s replacement). It covers the output format comprehensively, though it lacks information on error handling or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, starting with the core purpose, followed by detailed explanations of arguments and returns in a structured format. Every sentence adds value, with no redundant information, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (2 parameters, no annotations, no output schema), the description is largely complete, covering purpose, usage, parameters, and return values in detail. However, it could benefit from mentioning potential limitations or error cases, slightly reducing completeness for a tool with no structured output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate, which it does excellently. It adds meaning beyond the schema by explaining what 'word' is (e.g., 'Icelandic word form' with examples like 'hestur') and clarifies the purpose of 'at_sentence_start' (checking lowercase forms for capitalized words at sentence start), providing practical context not in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Look up an Icelandic word form'), the resource ('BÍN'), and the outcome ('return all matching entries'). It distinguishes from siblings by specifying it finds 'all possible interpretations' including lemma, word class, and grammatical tags, unlike get_lemma or get_variant which likely focus on specific aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool (e.g., for looking up word forms and their interpretations) and includes a practical example for the 'at_sentence_start' parameter. However, it does not explicitly state when not to use it or name alternatives among siblings, though the distinction is implied by the detailed functionality described.

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. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedget_lemma
    • First observedget_variant
    • First observedlookup_word

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap. get_lemma finds base forms from inflections, get_variant generates specific grammatical variants, and lookup_word provides comprehensive dictionary-style lookups. An agent can easily distinguish between analyzing forms, generating variants, and looking up entries.

Naming Consistency5/5

All three tools follow a consistent verb_noun pattern (get_lemma, get_variant, lookup_word) with clear, descriptive names. The naming convention is uniform throughout the set, making the tools predictable and easy to understand.

Tool Count4/5

Three tools is reasonable for a morphology server, covering analysis, generation, and lookup operations. While slightly minimal, each tool serves a distinct and essential function. A few additional tools (like batch processing or error handling) could enhance completeness, but the current count is appropriate for the core functionality.

Completeness4/5

The tool set covers the essential workflows for Icelandic morphology: analyzing inflected forms, generating grammatical variants, and looking up word entries. Minor gaps exist, such as batch processing or handling edge cases like compound words, but agents can work effectively with the provided tools for most tasks.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Provides access to 1,709 Icelandic statutes and 19,026 provisions with full-text search, citation validation, and EU/EEA law integration, enabling legal research and compliance checks through natural language queries.
    11
    93
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI assistants instant access to WHO ICD-10 and ICD-11 classification systems for code lookup, search, autocoding, validation, and hierarchy browsing via 12 tool actions.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides access to BookBrainz open book metadata, enabling search, lookup, and browsing of works, editions, authors, publishers, and series via natural language or direct tool calls.
    15
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mideind/icelandic-morphology-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server