anki-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ANKI_CONNECT_URL | No | The URL of the AnkiConnect API. Defaults to http://localhost:8765. | http://localhost:8765 |
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 |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_decksB | List all available Anki decks. |
| create_deckA | Create a new deck in Anki. Args: deck_name: Name of the deck to create. Use '::' for nested decks (e.g., 'Parent::Child') Returns: The deck ID of the created deck |
| add_flashcardA | Add a new flashcard to Anki. Args: front: The front/question side of the card (supports HTML/markdown) back: The back/answer side of the card (supports HTML/markdown) deck_name: The deck to add the card to (default: 'Default') tags: Optional list of tags for the card Returns: The note ID of the created card, or None if duplicate |
| add_flashcardsA | Add multiple flashcards to Anki in a single operation. Args: cards: List of dicts with 'front' and 'back' keys deck_name: The deck to add cards to (default: 'Default') tags: Optional list of tags for all cards Returns: List of note IDs (None for duplicates) Example: add_flashcards([ {"front": "What is Python?", "back": "A programming language"}, {"front": "What is FastMCP?", "back": "A Python framework for MCP servers"}, ], deck_name="Programming", tags=["python", "mcp"]) |
| search_cardsA | Search for cards in Anki using Anki's search syntax. Args: query: Anki search query (e.g., 'deck:Default', 'tag:python', 'front:async') limit: Maximum number of results to return Returns: List of cards with their fields and info Common search operators: - deck:DeckName - cards in a specific deck - tag:tagname - cards with a specific tag - is:due - cards that are due for review - is:new - new cards not yet studied - added:1 - cards added today - front:text - search front field |
| get_deck_statsA | Get statistics for a deck including due cards count. Args: deck_name: Name of the deck to get stats for Returns: Dict with new_count, learn_count, review_count |
| sync_ankiA | Trigger Anki to sync with AnkiWeb. This syncs your local Anki collection with the cloud, making cards available on mobile devices. |
| anki_connection_statusA | Check if AnkiConnect is responding and get version info. Returns: Dict with connection status and AnkiConnect version |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Most tools have distinct purposes with clear boundaries: add_flashcard vs add_flashcards for single vs batch operations, deck management vs card operations, and connection/sync functions. Minor potential confusion exists between list_decks and get_deck_stats as both relate to deck information, but their specific functions are differentiated in descriptions.
Tools follow a consistent snake_case pattern throughout. Most use verb_noun structure (add_flashcard, create_deck, search_cards), but anki_connection_status and sync_anki deviate slightly by including 'anki' prefix rather than pure verb_noun. This minor inconsistency prevents a perfect score.
Eight tools is well-scoped for an Anki integration server. This covers core flashcard operations (add, search), deck management (create, list, stats), and essential utilities (connection check, sync). Each tool has clear purpose without bloat, fitting typical MCP server tool counts.
The toolset provides strong coverage for basic Anki operations: creating and searching cards, managing decks, and syncing. Minor gaps exist in card lifecycle management - there are no tools to update/delete cards or modify existing decks, which could limit agent workflows. However, core creation and retrieval functions are well-covered.