Skip to main content
Glama
multilingual-dictionary-mcp

multilingual-dictionary-mcp

by Eyalm321

Многоязычный словарь MCP

MCP-сервер для многоязычного поиска в словарях с использованием семантических связей — синонимов, антонимов, гиперонимов, гипонимов, меронимов, переводов, этимологии, определений, рифм и многого другого — охватывающий все языки за счет объединения трех бесплатных публичных API:

  • ConceptNet — многоязычная семантическая сеть (80+ языков, связи слов: синоним, антоним, IsA, PartOf, RelatedTo, DerivedFrom и др.)

  • Wiktionary — определения, этимология и произношение на 4000+ языках

  • Datamuse — утилиты только для английского языка (рифмы, созвучные слова, «означает похожее», шаблоны написания, контекстные триггеры)

Никаких API-ключей. Никаких встроенных данных. Просто подключите его к Claude (или любому другому MCP-клиенту) и спрашивайте о словах на любом языке.


Установка

Через npm

npm install -g multilingual-dictionary-mcp

Через GitHub Packages

npm install -g @eyalm321/multilingual-dictionary-mcp --registry=https://npm.pkg.github.com

Конфигурация Claude Desktop / Claude Code

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

Related MCP server: word-orb

Инструменты

Многоязычные связи слов (ConceptNet)

Все они принимают word (слово), ISO 639-1 language код (по умолчанию en) и limit (лимит). Работает для английского, испанского, французского, немецкого, итальянского, русского, иврита, арабского, латыни, китайского, японского и еще 70+ языков.

Инструмент

Описание

dictionary_synonyms

Слова с похожим значением

dictionary_antonyms

Противоположности

dictionary_related

Слабо связанные термины (связи RelatedTo)

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

Все связи для слова за один вызов

Определения и этимология (Wiktionary)

Инструмент

Описание

dictionary_lookup

Определения, сгруппированные по языкам (4000+ языков через en.wiktionary)

dictionary_summary

Краткое текстовое резюме из любого издания Wiktionary

dictionary_etymology

Раздел этимологии, обычный текст

dictionary_pronunciation

Раздел произношения (обычно IPA)

dictionary_search

Поиск соответствующих страниц в издании Wiktionary

dictionary_random

Случайное слово из любого издания Wiktionary

Утилиты для английского языка (Datamuse)

Инструмент

Описание

dictionary_rhymes

Точные или неточные рифмы

dictionary_sounds_like

Омофоны / созвучные слова

dictionary_means_like

ML-поиск «означает примерно» — шире, чем синонимы

dictionary_spelled_like

Шаблон написания с подстановочными знаками ? и *

dictionary_suggest

Автодополнение

dictionary_triggers

Статистически связанные термины (корова → молоко, ферма)

dictionary_follows

Слова, которые обычно следуют после (пить → кофе)

dictionary_precedes

Слова, которые обычно стоят перед (аудитория → плененная)

Управление кэшем

Инструмент

Описание

dictionary_cache_stats

Просмотр попаданий/промахов/размера кэша ответов в памяти

dictionary_cache_clear

Принудительное обновление данных путем очистки кэша


Кэширование

Каждый успешный ответ от внешнего источника кэшируется в оперативной памяти на время работы процесса сервера, с ключом в виде полного URL запроса. Идентичные повторные вызовы в рамках одной сессии возвращаются мгновенно без повторного обращения к ConceptNet/Wiktionary/Datamuse.

  • TTL по умолчанию: 24 часа

  • Макс. количество записей по умолчанию: 5000 (вытеснение LRU)

  • Отключено для dictionary_random (который должен меняться)

  • Нет сохранения на диск — кэш перестраивается при каждом запуске сервера

Настройка через переменные окружения:

MDM_DISABLE_CACHE=true        # turn caching off
MDM_CACHE_TTL_MS=3600000      # 1 hour TTL
MDM_CACHE_MAX_ENTRIES=10000   # bigger cache

Примеры

> 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 the word "serendipity"?
[uses dictionary_etymology]

> Find me words that rhyme with "orange"
[uses dictionary_rhymes]

> What are the parts of a bicycle?
[uses dictionary_meronyms with word: "bicycle"]

Разработка

npm install
npm run build      # TypeScript compile
npm test           # vitest run
npm run test:watch # vitest watch
npm run dev        # ts-node entry point

Структура проекта

src/
├── index.ts            # MCP server entry
├── client.ts           # HTTP wrappers for ConceptNet / Wiktionary / Datamuse
├── tools/
│   ├── relations.ts    # ConceptNet-backed multilingual relation tools
│   ├── definitions.ts  # Wiktionary-backed definition/etymology tools
│   └── english.ts      # Datamuse-backed English utilities
└── __tests__/          # vitest specs

CI / Релиз

  • CI запускается при каждом push и PR в ветку main на Node 20 и 22.

  • Публикация запускается при создании GitHub Release — тесты, сборка, затем публикация как в npm (как multilingual-dictionary-mcp), так и в GitHub Packages (как @eyalm321/multilingual-dictionary-mcp).

Чтобы сделать релиз:

  1. Увеличьте version в package.json и сделайте коммит.

  2. Поставьте тег и сделайте push (например, git tag v0.1.1 && git push --tags).

  3. Создайте GitHub Release, указывающий на этот тег — рабочий процесс публикации сделает все остальное.

Рабочий процесс публикации ожидает два секрета репозитория: NPM_TOKEN (токен автоматизации npm) и GITHUB_TOKEN (автоматически предоставляется GitHub Actions).


Лицензия

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

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers