Skip to main content
Glama
multilingual-dictionary-mcp

multilingual-dictionary-mcp

by Eyalm321

Multilingual Dictionary MCP

An offline-first MCP server for multilingual dictionary lookups — definitions, synonyms, antonyms, hypernyms, hyponyms, meronyms, translations, etymology, pronunciation, semantic neighbors, rhymes, and more — across 4,755 languages.

No third-party APIs. No rate limits. No outages. The server downloads its data from a CDN once on first run and never goes online again.

What's bundled

Source

Size

What it covers

Wiktextract (Kaikki.org)

6.6 GB

10.5M dictionary entries across 4,755 languages — definitions, etymology, IPA, translations

ConceptNet 5.7

5.6 GB

24.3M semantic edges across 80+ languages — Synonym, Antonym, IsA, PartOf, RelatedTo, UsedFor, CapableOf, AtLocation, DerivedFrom, EtymologicallyRelatedTo

Numberbatch embeddings

3 GB

9.16M concepts × 300d multilingual embeddings — semantic neighbors via cosine similarity

CMU Pronouncing Dictionary

19 MB

English rhymes, soundalikes, autocomplete, spell patterns

Total bundle: ~21 GB (medium profile, default).

Related MCP server: word-orb

One bundle, one download

The whole bundle ships in 6 artifacts. Total 5.4 GB on the wire (gzip-compressed where it helps), 15.6 GB on disk after extraction. Everything downloads on first run; no profiles, no opt-ins.

Installation

npm install -g multilingual-dictionary-mcp

Claude Desktop / Claude Code

{
  "mcpServers": {
    "multilingual-dictionary": {
      "command": "npx",
      "args": ["-y", "multilingual-dictionary-mcp"]
    }
  }
}

On first run, the server downloads its data bundle (~5.4 GB compressed → ~15.6 GB on disk) from multilingual-dictionary-mcp-data.nyc3.cdn.digitaloceanspaces.com into ~/.cache/multilingual-dictionary-mcp/ (overridable via MDM_DATA_DIR). Each artifact is gzip-decompressed during the stream and SHA-256 verified. Subsequent runs are instant.

Tools

Multilingual word relations (ConceptNet — 80+ languages)

dictionary_synonyms, dictionary_antonyms, dictionary_hypernyms, dictionary_hyponyms, dictionary_meronyms, dictionary_holonyms, dictionary_derived_from, dictionary_etymologically_related, dictionary_used_for, dictionary_capable_of, dictionary_at_location, dictionary_translate, dictionary_all_relations

Embedding-based semantic search (Numberbatch — 78 languages)

Tool

What it does

dictionary_related

Semantic neighbors via cosine similarity — much denser than ConceptNet RelatedTo

dictionary_semantic_neighbors

Explicit embedding lookup with optional cross-lingual filter

dictionary_means_like

Multilingual "means approximately" via Numberbatch (works in any of the 78 covered languages)

Definitions & etymology (Wiktextract — 4,755 languages)

Tool

What it does

dictionary_lookup

Definitions + IPA + etymology grouped by language

dictionary_summary

Concatenated short definition

dictionary_etymology

Etymology text

dictionary_pronunciation

IPA pronunciations

dictionary_search

Prefix-search the corpus

dictionary_random

Random word entry

English-specific (CMU Pronouncing Dictionary)

Tool

What it does

dictionary_rhymes

Perfect or near rhymes

dictionary_sounds_like

Homophones / soundalikes

dictionary_spelled_like

Spelling pattern (? and * wildcards)

dictionary_suggest

Autocomplete prefix


Examples

> What are the synonyms of "feliz" in Spanish?
[uses dictionary_synonyms with language: "es"]

> Translate "happiness" into Hebrew
[uses dictionary_translate with language: "en", targetLanguage: "he"]

> What's the etymology of "serendipity"?
[uses dictionary_etymology]

> Find words semantically similar to "café" across languages
[uses dictionary_semantic_neighbors]

> What rhymes with "orange"?
[uses dictionary_rhymes with perfect: false]

Development

npm install
npm run build
npm test           # 42 tests, all run without local data

Source layout:

src/
├── index.ts            # MCP server entry, blocks on first-run install
├── data/
│   ├── paths.ts        # CDN base, profile selection, data dir
│   ├── installer.ts    # First-run downloader + SHA-256 verification
│   └── local-store.ts  # SQLite + Numberbatch matrix wrappers
└── tools/
    ├── relations.ts    # 13 ConceptNet relation tools + 1 embedding tool
    ├── definitions.ts  # 6 Wiktextract definition tools
    └── english.ts      # 5 CMU dict + Numberbatch tools

Total: 24 tools.


Building the data bundle yourself

The CDN ships official builds, but the entire pipeline is in data-pipeline/ — see its README. You can rebuild from upstream sources, ship to your own bucket, and override MDM_CDN_BASE.


CI / Release

  • CI runs build + tests on Node 20 & 22 for every push and PR.

  • Publish runs on GitHub Release publish, pushes to npm and GitHub Packages.


License

MIT © Eyalm321

Available Tools

28 tools
dictionary_all_relationsC

All edges (every relation type) for a word in one call from offline ConceptNet.

Inputs: word (required), language, limit.

dictionary_antonymsB

Get antonyms (opposites) for a word in any language using offline ConceptNet.

Inputs: word (required), language, limit.

dictionary_at_locationB

Typical locations (AtLocation) via offline ConceptNet. E.g. book -> library.

Inputs: word (required), language, limit.

dictionary_capable_ofB

Typical actions (CapableOf) via offline ConceptNet. E.g. dog -> bark.

Inputs: word (required), language, limit.

dictionary_derived_fromC

Derivation relations via offline ConceptNet DerivedFrom.

Inputs: word (required), language, limit.

dictionary_etymologyA

Return etymology text for a word from the offline Wiktextract corpus.

Inputs: word (required), language.

dictionary_holonymsB

Holonyms (wholes that contain this word) via offline ConceptNet reverse PartOf.

Inputs: word (required), language, limit.

dictionary_hypernymsA

Hypernyms (broader concepts) via offline ConceptNet IsA. E.g. dog -> mammal.

Inputs: word (required), language, limit.

dictionary_hyponymsB

Hyponyms (narrower concepts) via offline ConceptNet IsA. E.g. dog -> poodle.

Inputs: word (required), language, limit.

dictionary_installA

Manually kick off (or re-trigger) the offline data download. Returns immediately while the install runs in the background. Idempotent — calling repeatedly while a download is in progress is a no-op. Use dictionary_status to track progress.

Inputs: no named parameters.

dictionary_lookupA

Look up definitions for a word from the offline Wiktextract corpus (4,755 languages, 10.5M entries). Returns part-of-speech, definitions per sense, IPA, etymology, and translations grouped by language.

Inputs: word (required), language, limit.

dictionary_means_likeA

Find words/phrases meaning approximately the same as the input via offline Numberbatch embedding cosine. Multilingual — works in any of the 78 languages Numberbatch covers.

Inputs: query (required), language, limit.

dictionary_meronymsC

Meronyms (parts/components) via offline ConceptNet PartOf. E.g. car -> wheel.

Inputs: word (required), language, limit.

dictionary_pronunciationB

Return IPA pronunciation(s) for a word from the offline Wiktextract corpus.

Inputs: word (required), language.

dictionary_randomA

Return a random word entry from the offline Wiktextract corpus, optionally filtered to a language.

Inputs: language.

dictionary_rhymesA

Find words that rhyme with the input word. English only — backed by the offline CMU Pronouncing Dictionary.

Inputs: word (required), limit, perfect.

dictionary_semantic_neighborsA

Embedding-based nearest neighbors via Numberbatch. Returns words from the same OR a different language, sorted by cosine similarity. Multilingual (78 languages).

Inputs: word (required), language, targetLanguage, limit.

dictionary_sounds_likeB

Find English words that sound similar to the input (homophones / soundalikes) via offline CMU dict.

Inputs: word (required), limit.

dictionary_spelled_likeA

Find English words matching a spelling pattern via offline CMU dict. '?' = any single letter, '*' = any zero+ letters. Useful for crosswords.

Inputs: pattern (required), limit.

dictionary_statusA

Get the current state of the offline data installation. Always available — even before the bundle has finished downloading. Returns: state (pending/downloading/ready/failed), per-artifact progress, total bytes downloaded, data directory, CDN URL, manifest version, and any error.

Inputs: no named parameters.

dictionary_suggestA

Get autocomplete suggestions for a partial English word via offline CMU dict (shortest matches first).

Inputs: prefix (required), limit.

dictionary_summaryA

Get a brief plain-text summary of a word's senses from the offline Wiktextract data. Concatenates the first definition of each sense.

Inputs: word (required), language.

dictionary_synonymsA

Get synonyms for a word in any language using the offline ConceptNet 5.7 SQLite (24M edges, 80+ languages).

Inputs: word (required), language, limit.

dictionary_translateC

Translate a word to another language via offline ConceptNet's cross-lingual Synonym links. Returns the same concept expressed in different languages.

Inputs: word (required), language, targetLanguage, limit.

dictionary_used_forB

Typical uses (UsedFor) via offline ConceptNet. E.g. knife -> cutting.

Inputs: word (required), language, limit.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 28 tools

    Disambiguation5/5

    Each tool targets a specific linguistic relation or operation with clear, distinct descriptions. Even potentially overlapping tools like synonyms, means_like, and related are differentiated by their underlying data sources (ConceptNet vs Numberbatch embeddings).

    Naming Consistency5/5

    All tools follow a consistent 'dictionary_' prefix followed by a descriptive snake_case name. The pattern is uniform with no mixing of conventions or styles.

    Tool Count4/5

    28 tools is on the higher end but justified by the comprehensive coverage of dictionary features (definitions, etymology, pronunciation, semantic relations, search, data management). It remains manageable and focused.

    Completeness5/5

    The tool surface covers a wide range of dictionary and lexical relations: definitions, pronunciations, etymology, synonyms, antonyms, hypernyms, hyponyms, meronyms, holonyms, translations, rhymes, spelling, autocomplete, random access, and data installation status. No obvious gaps for the stated purpose.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers