Skip to content
๐Ÿ—“๏ธ Scheduled maintenance โ€” Sep 18โ€“19, 04:00โ€“08:00 UTC daily. All services will be unavailable. Details โ†’

AnkiMCP Add-on Tool Reference: Every MCP Tool, Resource and Prompt

This page lists everything the AnkiMCP add-on offers your AI assistant: the tools it can call, the read-only resources it can look up, and the ready-made prompts it can start from. You don’t need to memorise any of it โ€” your assistant discovers these automatically. This page is here for when you want to check exactly what exists, or decide what to switch off.

This documents the Anki add-on, the version that runs inside the Anki desktop app. The AnkiMCP CLI is a separate product with its own tool list, documented separately โ€” nothing on this page describes it. See Add-on vs CLI if you’re unsure which you have.

At a glance

Count
Tools42
…of which are multi-action tools4 (card_management, tag_management, filtered_deck, model_fields), 24 actions between them
…of which are destructive and hidden by default1 whole tool + 1 action
Resources7
Prompts2

Documented against add-on v0.27.0. Any tool or action can be switched off with disabled_tools, and the destructive ones stay hidden until you list them in enabled_destructive_tools.

Destructive tools (hidden by default)

Two things are classified as destructive โ€” high-risk operations that rewrite or delete data across many notes at once. The add-on removes them from the tool list entirely unless you opt in. Your AI assistant cannot see them, so it cannot call them by accident.

EntryTypeWhy it’s destructive
change_note_typeWhole toolRewrites every selected note’s field layout.
model_fields:removeSingle actionPermanently deletes a field and its content on every note of that note type.

To expose either one, add it to enabled_destructive_tools โ€” see the configuration reference. Opting in a whole tool does not implicitly opt in its destructive actions; list tool:action separately.

Essential tools

The main working set. These are the tools your assistant reaches for most.

Decks and search

ToolWhat it does
list_decksList all decks. Returns deck_id, name, is_filtered; include_stats=true adds per-deck counts.
create_deckCreate a new empty deck. Supports parent::child nesting, up to 2 levels. Won’t overwrite an existing deck.
find_notesSearch for notes using Anki’s search syntax. include_first_field=true adds a noteLabels array (noteId, firstField, truncated, fullLength) so you can search and label in one call.
notes_infoGet detailed information about specific notes โ€” fields, tags, note type, CSS. excerpt_chars caps every field value at that many characters and marks it truncated/fullLength, a cheap way to survey many notes.
syncSynchronise the collection with AnkiWeb. Asynchronous job: sync() starts one, sync(job_id) polls its status, sync(job_id, resolve=...) resolves a full-sync conflict.

Notes

ToolWhat it does
add_noteAdd a single note to a deck.
add_notesBatch-add up to max_notes_per_batch notes (default 100) sharing one deck and note type. Uses Anki’s native batch API for atomic undo. Partial success โ€” one failure doesn’t sink the rest.
update_note_fieldsUpdate the fields of an existing note. Two modes: full replace, or patch via old_str/new_str (find-and-replace within a field; must match exactly once or nothing is written).
update_notesBatch-update fields on many notes in one atomic undo step. Validates every entry first; partial success, up to max_notes_per_batch.
delete_notesDelete notes by ID, removing all their cards. Requires confirmDeletion=true as a safeguard; dry_run=true previews what would go.

Cards, review and stats

ToolWhat it does
get_due_cardsGet the next card due for review, in true scheduler order. skip_images/skip_audio support voice-mode review.
present_cardGet a card’s content for review โ€” question first, then the answer with show_answer=true.
rate_cardRate a card after review (Again / Hard / Good / Easy) and update its scheduling.
cards_statsBulk per-card scheduling stats for a deck and its subdecks: type, queue, interval, tags, due-today. Paginated (max 1000 per page), FSRS-independent, compact payload for analytics.

Note types (models)

ToolWhat it does
model_namesList all available note types, plus commonTypes shortcuts (basic, basicReversed, cloze).
model_field_namesGet the field names and descriptions for one note type.
create_modelCreate a new note type.
model_stylingRead the CSS for a note type. include_latex=true also returns the LaTeX preamble (latex_pre, latex_post, latex_svg).
update_model_stylingUpdate that CSS โ€” full replace, or patch via old_str/new_str (must match exactly once). Can also write the LaTeX preamble.
model_templatesRead the Front/Back HTML templates for each card type in a note type.
update_model_templatesUpdate template HTML โ€” full replace, or patch via old_str/new_str. Rejects unknown keys (case-sensitive) and unknown template names up front and applies all edits atomically; a failed call leaves the note type unchanged.
change_note_typeMove existing notes to a different note type, remapping fields by name ({old field: new field or null}). Destructive โ€” hidden unless opted in. Two-step flow: dry_run=true returns the resolved plan (mapping, dropped fields, cards removed), then the same call with dry_run=false and confirm=true applies it. All notes must share one source note type.

Media

ToolWhat it does
store_media_fileStore an image, audio or other media file via base64 data, a local file path, or a URL. File paths are checked against a media-type allowlist; URLs are checked for SSRF.
get_media_files_namesList media files matching a pattern, e.g. *.mp3.
delete_media_fileMove a media file to Anki’s trash โ€” recoverable via Anki’s Check Media dialog until the trash is emptied.

Multi-action tools

Four tools bundle several related operations behind one action parameter. That keeps the tool list short, which keeps your assistant’s token usage down. Each action can be switched off individually with "tool:action" in disabled_tools.

card_management โ€” 9 actions

Manage card organisation.

ActionWhat it does
repositionSet the position of new cards in the learning queue.
change_deckMove cards between decks.
buryHide cards until tomorrow.
unburyUn-hide buried cards.
suspendExclude cards from review indefinitely.
unsuspendReturn suspended cards to review.
set_flagSet a colour flag, 0โ€“7 (0 clears it).
set_due_dateReschedule cards using Anki’s days DSL.
forget_cardsReset cards to new.

tag_management โ€” 6 actions

Manage tags on notes.

ActionWhat it does
add_tagsBulk-add tags to notes.
remove_tagsBulk-remove tags from notes.
replace_tagsSwap one tag for another.
get_tagsList all tags, or scope to a deck with the optional deck parameter โ€” the distinct tags on notes that have a card in that deck, subdecks included.
clear_unused_tagsRemove orphaned tags no longer used by any note.
batch_tagsApply several add/remove operations in one call, with partial success.

filtered_deck โ€” 5 actions

Filtered (cram) deck lifecycle.

ActionWhat it does
create_or_updateCreate a filtered deck, or modify an existing one’s search terms, limits and order.
rebuildRepopulate a filtered deck from its search terms.
emptyReturn all cards to their home decks, leaving the deck in place.
deleteDelete the filtered deck (cards return to their home decks).
get_infoInspect decks by ID: search terms, limits, order, reschedule setting and card count. Non-filtered decks come back with is_filtered=false; unknown IDs are skipped and counted in not_found. Max 50 deck IDs per call.

model_fields โ€” 4 actions

Manage the fields on an existing note type.

ActionWhat it does
addAdd a field, optionally at a 0-based index.
renameRename a field, preserving its content. Card templates are not updated automatically โ€” you have to fix references yourself.
repositionReorder fields.
removeDelete a field and its content on every note of that type. Destructive โ€” hidden unless opted in via enabled_destructive_tools.

One-way full sync warning: add, remove and reposition change field ordinals and force a one-way full sync; a pure rename does not. Every result carries will_force_full_sync, reflecting the collection’s actual (sticky, collection-wide) state after the write.

FSRS tools

FSRS is Anki’s modern scheduling algorithm. These four tools read and tune it.

ToolWhat it does
get_fsrs_paramsGet FSRS scheduler parameters for deck presets. With an empty deck_name, returns every preset and the decks using it.
set_fsrs_paramsUpdate FSRS parameters on a preset: weights, desired retention (0.70โ€“0.99), max interval. Returns an old/new diff for each changed field.
get_card_memory_stateGet FSRS memory state โ€” stability, difficulty, retrievability โ€” for one or more cards. Requires FSRS to be enabled; recompute=True recalculates from review history.
optimize_fsrs_paramsRun Anki’s built-in FSRS optimizer over your review history. apply_results=False (the default) is a dry run that shows what it would change.

GUI tools

These drive Anki’s own windows โ€” useful when you want to see something happen on screen, rather than have it done silently in the background.

ToolWhat it does
gui_browseOpen the card browser with a search query. Returns the matching card IDs.
gui_add_cardsOpen the Add Cards dialog (it does not pre-fill fields).
gui_edit_noteOpen the note editor for a specific note ID.
gui_current_cardGet the card currently on screen in the reviewer: question and answer HTML, fields, note and card IDs, deck, note type, and the interval behind each answer button.
gui_show_questionShow the question side of the card on screen.
gui_show_answerFlip the card on screen to its answer side.
gui_select_cardSelect a specific card in an already-open card browser.
gui_deck_browserNavigate to the deck browser.
gui_undoUndo the last operation in Anki.

Resources

Resources are read-only lookups. Your assistant fetches them by URI instead of calling a tool.

ResourceURIWhat it returns
system_infoanki://system-infoAnki version, current profile, scheduler info.
query_syntaxanki://query-syntaxAnki’s search query syntax reference.
schemaanki://schemaThe Anki data model: entities, fields, relationships, key concepts.
stats_todayanki://stats/todayToday’s study statistics โ€” cards studied, time spent, ratings breakdown.
stats_forecastanki://stats/forecast30-day review forecast of expected due cards per day.
stats_collectionanki://stats/collectionOverall collection statistics: total notes, cards, state breakdown.
fsrs_configanki://fsrs/configFSRS status, version, preset count and parameter overview.

Prompts

Prompts are ready-made workflows. In most AI clients they appear as something you pick from a menu rather than type out.

PromptWhat it does
review_sessionRuns a structured review session โ€” presents cards, collects your answers, suggests ratings. Interactive, quick, or voice mode.
twenty_rulesApplies Dr Piotr Woลบniak’s twenty rules of formulating knowledge, so the cards your assistant writes are actually good cards.

Turning tools off

Every tool and every action can be hidden from your AI client. Reasons you might: fewer tools means fewer tokens per request, and some people simply don’t want an assistant able to delete notes.

{
  "disabled_tools": [
    "sync",
    "card_management:bury",
    "card_management:unbury"
  ]
}

"tool_name" disables the whole tool; "tool_name:action" disables one action inside a multi-action tool. Disabled entries are stripped from the MCP schema entirely, so clients never see them. Full syntax and the opt-in list for destructive tools are on the configuration reference.


Disclaimer: “Anki” is a registered trademark of Ankitects Pty Ltd. AnkiMCP is an independent, community-built project and is not affiliated with, endorsed by, or sponsored by Ankitects. MCP is an open standard originated by Anthropic; AnkiMCP is likewise not affiliated with or endorsed by Anthropic.