Skip to main content
Glama
Anki MCP Server

Anki MCP Server

by stefanwille

Anki MCP Server

npm

A Model Context Protocol (MCP) server for managing Anki flashcards. Connects to AnkiConnect to enable AI assistants to create, read, and update flashcards.

Prerequisites

  • Anki with AnkiConnect add-on installed

  • Node.js 24+ (Download)

  • Anki running, with AnkiConnect on http://127.0.0.1:8765 (default)

Related MCP server: Anki MCP Server

Installation in Claude Desktop

  • Open Claude Desktop

  • Go to: "Claude" / "Settings..."

  • Tab "Developer"

  • Click "Edit Config"

Edit your Claude Desktop config (claude_desktop_config.json), and add:

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["-y", "stefanwille-anki-mcp-server@latest"]
    }
  }
}

Restart Claude Desktop to activate.

Troubleshooting

"Failed to spawn process" / "command not found: npx" on macOS

Claude Desktop launches with a restricted PATH that doesn't include Node.js when installed via version managers like Volta or nvm. You'll see errors like:

Failed to spawn process: No such file or directory

or

node: command not found

Fix: Use the full path to npx and add the Node.js bin directory explicitly via env:

{
  "mcpServers": {
    "anki": {
      "command": "/Users/YOUR_USERNAME/.volta/bin/npx",
      "args": ["-y", "stefanwille-anki-mcp-server@latest"],
      "env": {
        "PATH": "/Users/YOUR_USERNAME/.volta/bin:/usr/local/bin:/usr/bin:/bin"
      }
    }
  }
}

Replace YOUR_USERNAME with your macOS username and adjust the path if you use nvm (~/.nvm/versions/node/vX.X.X/bin/) or another version manager.

Find your actual npx path by running in a terminal:

which npx

Example Prompts

  • "What decks do I have in Anki?"

  • "Show the cards in my Spanish vocabulary deck"

  • "Check all cards in deck 'Italiano::Capitulo 3' for grammatical errors and correct them"

  • "Create a card in my Italian deck with 'ciao' on the front and 'hello' on the back"

  • "Extract the vocabulary from the photo and add it to my Italian deck with Italian on the front and German on the back: ..."

  • "Create a new deck called 'Physics::Quantum Mechanics'"

  • "Rename my 'Math' deck to 'Mathematics'"

  • "Give me an exercise that requires me to use the Italian words in the deck 'Italienisch::Capitulo 6::Italienisch 38 - 2025-08-01'"

Tools

Tool

Description

get_decks

Get all deck names from Anki

create_deck

Create a new deck

delete_deck

Delete a deck and all its cards (including sub-decks)

list_cards

List cards in a deck with front/back content

create_cards

Create one or more basic cards in a deck

update_card

Update an existing card's content

rename_deck

Rename a deck

Development

Prerequisites

Build from Source

git clone https://github.com/stefanwille/anki-mcp-server.git
cd anki-mcp-server
pnpm install
pnpm build

Watch Mode

pnpm watch

Rebuilds automatically on file changes.

Install Locally

Update Claude Desktop config to point directly to the built file:

{
  "mcpServers": {
    "anki": {
      "command": "node",
      "args": ["/absolute/path/to/anki-mcp-server/dist/index.js"]
    }
  }
}

Replace /absolute/path/to/anki-mcp-server with your actual clone location.

Publish to npm

Create a GitHub release to trigger the npm publish workflow:

pnpm login 
# If pnpm login produces a 404 page, try pnpm login again
pnpm version patch  # or minor, major
git push && git push --tags
gh release create v$(node -p "require('./package.json').version") --generate-notes

This triggers the GitHub Actions workflow that publishes to npm automatically using trusted publishing (OIDC), not access tokens.

License

MIT

Available Tools

8 tools
create_cardsCreate CardsC

Add Basic note(s) to a deck. Duplicates skipped (null noteId in results).

Inputs: cards (required), deck_name (required).

create_deckCreate DeckC

Create a new deck in Anki

Inputs: deck_name (required).

delete_cardsDelete CardsB

Delete one or more cards from Anki by their note IDs

Inputs: note_ids (required).

delete_deckDelete DeckB

Delete deck, nested decks, and all their cards.

Inputs: deck_name (required).

get_decksGet DecksA

Get all deck names from Anki

Inputs: no named parameters.

list_cardsList CardsC

List card sides in a deck (uses Basic model).

Inputs: deck_name (required), limit.

rename_deckRename DeckC

Rename a deck in Anki

Inputs: new_name (required), old_name (required).

update_cardUpdate CardC

Update an existing card's content

Inputs: note_id (required), back, front.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 8 tools

    Disambiguation4/5

    Each tool maps to a distinct resource+action pair (deck create/delete/rename/list, card create/update/delete/list), so an agent can generally pick correctly. The main friction is the cards-vs-notes terminology: create_cards adds 'Basic note(s)' and delete_cards removes 'cards ... by their note IDs', which can blur what unit is being operated on, plus get_decks vs list_cards creates slight retrieval overlap.

    Naming Consistency4/5

    Names follow a clear verb_noun pattern (create_deck, delete_deck, rename_deck, list_cards, create_cards, update_card, delete_cards). Minor deviations: get_decks uses 'get' where list_cards uses 'list' for the same kind of retrieval, and card operations mix singular (update_card) with plural (create_cards, delete_cards).

    Tool Count5/5

    Eight tools is well within the ideal 3-15 range and every tool earns its place, covering the deck and card lifecycle without redundancy. Nothing feels padded or missing at the count level.

    Completeness4/5

    The surface covers full CRUD for cards (list/create/update/delete) and deck lifecycle (create/delete/rename/list), so core workflows are achievable. Gaps are minor but real: there is no way to fetch a single card by ID, no cross-deck search, and card creation is hard-coded to the Basic model, limiting non-Basic note types.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers