Anki Model Context Protocol (MCP) Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_decksB | List all decks in the Anki collection with their IDs and card counts. |
| create_deckB | Create a new deck or subdeck (e.g. 'Computer Science::Algorithms'). |
| delete_deckA | Delete a deck and all cards contained within it by deck ID or deck name. |
| rename_deckB | Rename an existing deck (and its child subdecks) by deck ID. |
| change_deckB | Move cards to a target deck by card IDs, note IDs, search query, or input file. |
| store_media_fileC | Store a media file (image, diagram, audio) directly from local disk into Anki's media storage. |
| suspend_cardsB | Suspend cards from active review queues by card IDs, note IDs, search query, or input file. |
| unsuspend_cardsA | Unsuspend cards back into active review queues by card IDs, note IDs, search query, or input file. |
| list_notetypesC | List all available notetypes (models) in the collection, their fields, and types. |
| get_notetype_infoC | Get detailed schema information about a specific notetype. |
| add_noteC | Create a new flashcard note from a JSON file payload. |
| add_cloze_noteC | Create a Cloze deletion flashcard (fill-in-the-blank style) from a JSON file payload. |
| add_notes_batchC | Add multiple flashcard notes in a single high-throughput batch operation from a JSON file. |
| get_noteC | Retrieve complete information about a note by its ID. |
| update_noteB | Update fields and/or tags of an existing note from a JSON file. |
| delete_notesB | Delete notes (and all cards generated from them) by their Note IDs or from a JSON file list. |
| search_notesB | Search notes using Anki browser syntax, writing full matched cards/fields to disk. |
| search_cardsC | Search cards using Anki browser syntax, returning card queue status, due dates, and intervals to disk. |
| list_tagsA | List all unique tags across the collection, writing full tag array to disk. |
| add_tags_to_notesC | Add one or more tags in bulk to notes from argument lists or a JSON file. |
| remove_tags_from_notesC | Remove one or more tags in bulk from notes from argument lists or a JSON file. |
| get_collection_statsC | Get collection statistics (total notes, cards, new/due cards, deck breakdown). |
| export_deckA | Export a deck to an Anki package (.apkg), full collection package (.colpkg), or structured JSON file. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| flashcard_generator | Prompt template for generating high-quality flashcards with LaTeX formulas, code, and structured tags. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_decks_resource | Resource returning all Anki decks and their card counts as JSON. |
| get_stats_resource | Resource returning collection overview and due statistics as JSON. |
TDQS
Scored across 23 tools
Each tool targets a distinct resource and action. Even similar tools like search_notes vs search_cards are clearly differentiated by what they return (full notes vs card scheduling info). Operations like add_note, add_cloze_note, and add_notes_batch serve clearly different use cases without ambiguity.
All 23 tool names follow a consistent verb_noun pattern with snake_case: list_decks, create_deck, delete_deck, rename_deck, change_deck, store_media_file, suspend_cards, unsuspend_cards, list_notetypes, get_notetype_info, add_note, add_cloze_note, add_notes_batch, get_note, update_note, delete_notes, search_notes, search_cards, list_tags, add_tags_to_notes, remove_tags_from_notes, get_collection_stats, export_deck. No style mixing or irregular verbs.
With 23 tools, the surface is on the heavier side but still well-scoped for a comprehensive Anki integration. The tool count covers all major workflows (deck management, note/card CRUD, tagging, media, export, statistics) without feeling bloated. It slightly exceeds the ideal range but remains purposeful.
The toolset provides complete lifecycle coverage: decks can be listed, created, deleted, renamed, and used for moving cards; notes can be added (single, cloze, batch), retrieved, updated, deleted, and searched; cards can be searched and suspended/unsuspended; tags can be listed and bulk-added/removed; media import, collection stats, and export are available. No obvious dead ends or missing critical operations.