
AnkiMCP Server
This Anki addon runs a local MCP server inside the flashcard app, exposing your entire collection to Claude or other AI assistants. You get tools for syncing with AnkiWeb, searching notes, batch-adding cards (up to 100 at once via native API), managing card states (suspend, bury, reposition), and manipulating tags. It auto-starts on port 3141 when you launch Anki and works through mcp-remote for Claude Desktop since the JSON config doesn't natively support HTTP. The config lets you disable specific tools to cut token usage, set custom paths for tunnel deployments, and lock down media imports to prevent path traversal. Built for local-first workflows where you want AI to read and modify your study materials without leaving your machine.
- GitHub stars
- 100
- tools
- 51
- last updated
- Nov 9, 2026
Tools
51 toolsPublic tool metadata for what this MCP can expose to an agent.
syncSynchronize collection with AnkiWeb (asynchronous job: sync() starts a sync, sync(job_id) polls its status, sync(job_id, resolve=...) resolves a full-sync conflict)
Synchronize collection with AnkiWeb (asynchronous job: sync() starts a sync, sync(job_id) polls its status, sync(job_id, resolve=...) resolves a full-sync conflict)
No parameter schema in public metadata yet.
list_decksList all decks in the collection
List all decks in the collection
No parameter schema in public metadata yet.
create_deckCreate a new deck
Create a new deck
No parameter schema in public metadata yet.
get_deck_descriptionRead a deck's stored description and Markdown setting; returns deck_id, name, description and is_markdown
Read a deck's stored description and Markdown setting; returns deck_id, name, description and is_markdown
No parameter schema in public metadata yet.
update_deck_descriptionReplace a deck's description and optionally change is_markdown; an empty string clears the description, and an omitted or null Markdown setting preserves its current value
Replace a deck's description and optionally change is_markdown; an empty string clears the description, and an omitted or null Markdown setting preserves its current value
No parameter schema in public metadata yet.
find_notesSearch for notes using Anki's search syntax. include_first_field=true adds a noteLabels array so you can search and label notes in one call
Search for notes using Anki's search syntax. include_first_field=true adds a noteLabels array so you can search and label notes in one call
No parameter schema in public metadata yet.
notes_infoGet detailed information about notes. excerpt_chars caps every field value at that many characters, marking each with truncated/fullLength
Get detailed information about notes. excerpt_chars caps every field value at that many characters, marking each with truncated/fullLength
No parameter schema in public metadata yet.
add_noteAdd a new note to a deck
Add a new note to a deck
No parameter schema in public metadata yet.
add_notesBatch-add up to max_notes_per_batch notes (default 100) sharing the same deck and model. Uses Anki's native batch API for atomic undo. Supports partial success
Batch-add up to max_notes_per_batch notes (default 100) sharing the same deck and model. Uses Anki's native batch API for atomic undo. Supports partial success
No parameter schema in public metadata yet.
card_repositionSet the learning order of new cards (only new cards are affected)
Set the learning order of new cards (only new cards are affected)
No parameter schema in public metadata yet.
card_change_deckMove cards to another deck, creating it if needed
Move cards to another deck, creating it if needed
No parameter schema in public metadata yet.
card_buryHide cards until tomorrow
Hide cards until tomorrow
No parameter schema in public metadata yet.
card_unburyRestore every buried card in a deck
Restore every buried card in a deck
No parameter schema in public metadata yet.
card_suspendExclude cards from review indefinitely
Exclude cards from review indefinitely
No parameter schema in public metadata yet.
card_unsuspendRestore suspended cards to review
Restore suspended cards to review
No parameter schema in public metadata yet.
card_set_flagSet or remove a color flag (0-7)
Set or remove a color flag (0-7)
No parameter schema in public metadata yet.
card_set_due_dateReschedule cards with the days DSL (0, 5, 5-7, 5!)
Reschedule cards with the days DSL (0, 5, 5-7, 5!)
No parameter schema in public metadata yet.
card_forgetReset cards to new
Reset cards to new
No parameter schema in public metadata yet.
tag_addBulk add tags on notes
Bulk add tags on notes
No parameter schema in public metadata yet.
tag_removeBulk remove tags on notes
Bulk remove tags on notes
No parameter schema in public metadata yet.
tag_replaceSwap one tag for another on notes
Swap one tag for another on notes
No parameter schema in public metadata yet.
tag_listList all tags, or scoped to a deck via the optional deck param
List all tags, or scoped to a deck via the optional deck param
No parameter schema in public metadata yet.
tag_clear_unusedRemove orphan tags
Remove orphan tags
No parameter schema in public metadata yet.
tag_batchApply multiple add/remove tag operations in one call, with partial success
Apply multiple add/remove tag operations in one call, with partial success
No parameter schema in public metadata yet.
filtered_deck_upsertCreate or modify a filtered deck from 1-2 search terms (Anki's hard limit)
Create or modify a filtered deck from 1-2 search terms (Anki's hard limit)
No parameter schema in public metadata yet.
filtered_deck_rebuildRepopulate a filtered deck
Repopulate a filtered deck
No parameter schema in public metadata yet.
filtered_deck_emptyReturn a filtered deck's cards to their home decks
Return a filtered deck's cards to their home decks
No parameter schema in public metadata yet.
filtered_deck_deleteReturn a filtered deck's cards, then remove the deck
Return a filtered deck's cards, then remove the deck
No parameter schema in public metadata yet.
filtered_deck_get_infoRead-only inspection of up to 50 deck IDs per call, returning search terms, limit, order, reschedule flag and card count
Read-only inspection of up to 50 deck IDs per call, returning search terms, limit, order, reschedule flag and card count
No parameter schema in public metadata yet.
update_note_fieldsUpdate fields of existing notes via full replace or find-and-replace patch
Update fields of existing notes via full replace or find-and-replace patch
No parameter schema in public metadata yet.
update_notesBatch-update fields of multiple notes in one atomic undo step, with partial success
Batch-update fields of multiple notes in one atomic undo step, with partial success
No parameter schema in public metadata yet.
delete_notesDelete notes from the collection
Delete notes from the collection
No parameter schema in public metadata yet.
get_due_cardsGet next due card for review. Returns the rendered question only; the answer is omitted unless include_answer=true
Get next due card for review. Returns the rendered question only; the answer is omitted unless include_answer=true
No parameter schema in public metadata yet.
cards_statsBulk per-card scheduling stats for a deck (incl. subdecks), paginated
Bulk per-card scheduling stats for a deck (incl. subdecks), paginated
No parameter schema in public metadata yet.
present_cardGet card content for review
Get card content for review
No parameter schema in public metadata yet.
rate_cardRate a card after review (Again/Hard/Good/Easy)
Rate a card after review (Again/Hard/Good/Easy)
No parameter schema in public metadata yet.
model_namesList available note types
List available note types
No parameter schema in public metadata yet.
model_field_namesGet field names and descriptions for a note type
Get field names and descriptions for a note type
No parameter schema in public metadata yet.
model_stylingGet CSS styling for a note type. include_latex=true also returns the LaTeX preamble
Get CSS styling for a note type. include_latex=true also returns the LaTeX preamble
No parameter schema in public metadata yet.
update_model_stylingUpdate CSS styling for a note type, full replace or patch via old_str/new_str
Update CSS styling for a note type, full replace or patch via old_str/new_str
No parameter schema in public metadata yet.
model_templatesRead the Front/Back HTML templates for each card type in a note type
Read the Front/Back HTML templates for each card type in a note type
No parameter schema in public metadata yet.
update_model_templatesUpdate Front/Back template HTML, full replace or patch, applied atomically
Update Front/Back template HTML, full replace or patch, applied atomically
No parameter schema in public metadata yet.
model_field_addAdd a field to an existing note type, optionally at a 0-based index
Add a field to an existing note type, optionally at a 0-based index
No parameter schema in public metadata yet.
model_field_renameRename a field on an existing note type, preserving content
Rename a field on an existing note type, preserving content
No parameter schema in public metadata yet.
model_field_repositionReorder fields on an existing note type
Reorder fields on an existing note type
No parameter schema in public metadata yet.
model_field_removeDelete a field and its content from every note of the type
Delete a field and its content from every note of the type
No parameter schema in public metadata yet.
create_modelCreate a new note type
Create a new note type
No parameter schema in public metadata yet.
change_note_typeMove existing notes to a different note type, remapping fields by name
Move existing notes to a different note type, remapping fields by name
No parameter schema in public metadata yet.
store_media_fileStore a media file (image/audio) via base64, file path, or URL
Store a media file (image/audio) via base64, file path, or URL
No parameter schema in public metadata yet.
get_media_files_namesList media files matching a pattern
List media files matching a pattern
No parameter schema in public metadata yet.
delete_media_fileMove a media file out of the collection
Move a media file out of the collection
No parameter schema in public metadata yet.
Sponsors
Readme
AnkiMCP Server (Addon)
Seamlessly integrate Anki with AI assistants through the Model Context Protocol
An Anki addon that exposes your collection to AI assistants via the Model Context Protocol (MCP).
What is this?
AnkiMCP Server runs a local MCP server inside Anki, allowing AI assistants like Claude to interact with your flashcard collection. This enables AI-powered study sessions, card creation, and collection management.
Part of the ankimcp.ai project.
Note on First Run
On first run, this addon downloads pydantic_core (~2MB) from PyPI. This is required because pydantic_core contains platform-specific binaries (Windows/macOS/Linux) that cannot be bundled in a single addon file.
Details
- Repository
- github.com/ankimcp/anki-mcp-server-addon
- Website
- ankimcp.ai
- Category
- Productivity & Office
- Registry
- MCP registry, active