Anki MCP Server
Manages Anki flashcards via AnkiConnect, providing tools to create, read, update, and delete decks and cards.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Anki MCP Server What decks do I have in Anki?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Anki MCP Server
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 directoryor
node: command not foundFix: 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 npxExample 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 all deck names from Anki |
| Create a new deck |
| Delete a deck and all its cards (including sub-decks) |
| List cards in a deck with front/back content |
| Create one or more basic cards in a deck |
| Update an existing card's content |
| Rename a deck |
Development
Prerequisites
Node.js 24+
pnpm (Installation)
Build from Source
git clone https://github.com/stefanwille/anki-mcp-server.git
cd anki-mcp-server
pnpm install
pnpm buildWatch Mode
pnpm watchRebuilds 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-notesThis triggers the GitHub Actions workflow that publishes to npm automatically using trusted publishing (OIDC), not access tokens.
License
MIT
Available Tools
8 toolscreate_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
Scored across 8 tools
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.
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).
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.
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
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
A Model Context Protocol server for Wix AI tools
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Related MCP Servers
- AlicenseAqualityBmaintenanceA Model Context Protocol server that enables LLMs to interact with Anki flashcard software through AnkiConnect, allowing for creation and management of flashcards, decks, and note types.16382 npm253MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that allows LLMs to interact with Anki flashcard software, enabling functions like creating decks, adding notes, searching cards, and managing flashcard content through natural language.382 npm1MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that bridges Claude AI with Anki flashcard app, allowing users to create and manage flashcards using natural language commands.10MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables interaction with Anki flashcards through AnkiConnect, providing organized tools for managing decks, notes, cards, models, and media files.407MIT