Skip to main content
Glama

anki-multidefine-mcp

Tell Claude to add a word to Anki. It looks it up in a real monolingual dictionary, formats the card, downloads audio, and creates the note — all in one message.

"Add a card for 'Schadenfreude' to my German deck."

Works for English, German, Russian, French, and Azerbaijani. Definitions come from Oxford, DWDS, Wiktionary, and Larousse — the same sources the MultiDefine Anki add-on uses.


What you need before starting

Requirement

Notes

Anki desktop app

Free, runs locally

AnkiConnect add-on

Lets Claude talk to Anki

MultiDefine add-on

Provides the note types Claude writes to

uv

Runs this server — no separate install step needed

Claude Desktop

The AI client


Related MCP server: Yomitan MCP Server

Setup

Quickest path — drag and drop (Claude Desktop on macOS/Windows)

  1. Download anki-multidefine-mcp.mcpb

  2. Open Claude Desktop → Settings → Extensions → drag the file in (or use Install Extension and select it)

  3. Claude Desktop installs the server automatically

You still need to install the Anki add-ons (Step 2 below) and the Anki MCP server.


Manual setup (all platforms / other MCP clients)

Step 1 — Install uv

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

Or via Homebrew: brew install uv

Step 2 — Install the Anki add-ons

Open Anki → Tools → Add-ons → Get Add-ons and enter:

2055492827

That installs AnkiConnect. Then install MultiDefine:

  1. Download multidefine.ankiaddon

  2. In Anki: Tools → Add-ons → Install from file → select the downloaded file

Restart Anki after both are installed.

Step 3 — Configure Claude Desktop

Open (or create) this file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Paste the following (merge with any existing mcpServers block if you have one):

{
  "mcpServers": {
    "anki-multidefine": {
      "command": "uvx",
      "args": ["anki-multidefine-mcp"]
    },
    "anki-mcp": {
      "command": "npx",
      "args": ["-y", "@ankimcp/anki-mcp-server", "--stdio"],
      "env": {
        "ANKI_CONNECT_URL": "http://localhost:8765"
      }
    }
  }
}

Step 4 — Restart Claude Desktop

Keep Anki open — AnkiConnect only responds while Anki is running.


Quick prompts to try

Copy any of these directly into Claude:

Add a card for "Haus" to my German deck.
Look up "schadenfreude" in English and add it to my Vocabulary deck.
Add cards for these Russian words to my Russian deck: уважение, доверие, свобода.
What German words have I added in the last week?

How it works

When you ask Claude to add a word, it:

  1. Calls define(word, language) — looks up the word in the monolingual dictionary

  2. Reads multidefine://schema — knows exactly which Anki fields to fill and how

  3. Calls findNotes — skips the card if it already exists in the deck

  4. Calls storeMediaFile with the audio URL — downloads pronunciation into Anki's media folder

  5. Calls addNote with the MultiDefine_{Language} note type — card appears in your deck

No UI to learn. No form to fill. Just describe what you want.


Supported languages

Key

Dictionary

Audio

IPA

Verb forms

english

Oxford Learner's

Yes

Yes

Yes

german

DWDS

Yes

Yes

Yes

russian

ru.Wiktionary

Yes

Yes

—

french

Larousse

Yes

—

—

azerbaijani

AZLEKS

—

—

—

Claude infers the language from context — you rarely need to specify the key explicitly.


Troubleshooting

Claude says it can't connect to Anki — Anki must be open and AnkiConnect installed. Verify by visiting http://localhost:8765 in your browser; you should see a plain-text AnkiConnect response.

"Note type not found" — MultiDefine must be installed in Anki so the MultiDefine_German (etc.) note types exist. Check via Tools → Manage Note Types.

"Word not found" — The word isn't in that dictionary. Try a different spelling or language.

Duplicate card — Claude checks first and tells you if the card already exists. Ask it to update the existing note if you want.

uvx not found — Claude Desktop may not inherit your shell PATH. Use the full path: run which uvx in your terminal, then replace "uvx" in the config with that path (e.g. /Users/you/.local/bin/uvx).


MCP tools exposed

Tool

Description

define(word, language)

Look up a word. Returns definitions, IPA, audio URL, verb forms.

languages()

List supported language keys and their capabilities.

Resource: multidefine://schema — field mapping and workflow rules Claude reads automatically before creating notes.


For developers

See AGENTS.md for the provider contract, word_info schema, and instructions for adding a new language.

See CONTRIBUTING.md for setup, smoke tests, and PR checklist.

License: GPL v2. providers/oxford.py is BSD 3-Clause (Near Huscarl).

Available Tools

2 tools
defineA

Look up a word in a monolingual dictionary.

Returns structured word_info with definitions, examples, IPA, audio URL, and verb forms. Returns {"found": false} if the word is not in the dictionary. Raises ValueError for an unsupported language key (call languages() first).

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

languagesA

List supported languages and their capabilities (audio, IPA, verb forms).

Inputs: no named parameters.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools have completely distinct roles: define performs dictionary lookups, while languages provides supported-language metadata. There is no overlap in purpose, and the dependency between them is explicitly documented.

    Naming Consistency3/5

    Both names are simple and lowercase, but they follow different grammatical patterns: define is a verb while languages is a bare resource noun. The inconsistency is minor and readable, but a prefix like list_languages would be more consistent.

    Tool Count4/5

    Two tools is slightly thin by general MCP standards, but it is appropriate for a focused dictionary-lookup server. Each tool fills a necessary role: the core operation and the supporting metadata operation.

    Completeness5/5

    For the narrow domain of dictionary lookup, the surface is complete: define handles lookup with not-found handling, and languages enables callers to discover supported features before calling define. There are no obvious dead ends or missing lifecycle steps.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Provides AI agents with direct access to local Yomitan dictionary databases for offline Japanese vocabulary lookups, kanji searches, and sentence tokenization. It leverages the Yomitan browser extension's API to enable rich dictionary interactions and Anki flashcard field generation.
      5
      48 npm
      6
      Mozilla Public 2.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to search and look up the Jisho.org Japanese-English dictionary by English keyword, kanji, kana, or romaji, returning headwords, readings, JLPT levels, common-ness, and grouped English meanings. Useful for translating words, checking how a term is read, or finding Japanese equivalents for an English concept.
      309 npm
      MIT