anki-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| anki_check_connectionA | Check that Anki is running and AnkiConnect is reachable. Call this first when any other Anki tool fails — it distinguishes "Anki is closed" from "the request itself was wrong". Returns the AnkiConnect API version (6) on success. |
| anki_syncA | Sync the local collection with AnkiWeb. Requires AnkiWeb credentials already configured in Anki — this cannot log in for you. The action returns nothing on success; a sync conflict opens a modal dialog in Anki, which blocks AnkiConnect until you resolve it (the call will then time out). |
| anki_list_decksA | List every deck in the collection. Nested decks are returned with |
| anki_create_deckA | Create a deck, if it does not already exist. |
| anki_list_modelsA | List every note type (model) in the collection. Typical built-ins: |
| anki_get_model_fieldsA | List a note type's field names, in template order. These are the exact keys |
| anki_add_noteA | Add a single note to a deck. Field values are HTML and are sent verbatim — do not escape them. Write the markup you want rendered on the card: Cloze deletions use |
| anki_add_notesA | Add several notes at once, sharing one deck and note type. Field values are HTML and are sent verbatim — do not escape them.
See |
| anki_find_notesA | Find note ids matching an Anki search query. Uses Anki's own search syntax, the same one as the browser's search bar: Quote any term containing spaces. Returns ids only — pass them to
|
| anki_get_notes_infoA | Fetch full details for the given note ids. Returns each note's model, tags, field contents (as stored — i.e. HTML), and the ids of the cards generated from it. Unknown ids come back as empty entries rather than an error. Markdown output truncates field values for readability; use
|
| anki_update_note_fieldsA | Overwrite fields of an existing note. Field values are HTML and are sent verbatim — do not escape them.
Each named field is replaced wholesale, not merged; fields left out of
⚠️ This silently does nothing if the note is open in Anki's Browse window. Anki refuses the edit to avoid clobbering what you are typing, but AnkiConnect still reports success — no error is raised, and the fields are simply unchanged. If an update seems to have no effect, close the Browse window (or click away from that note) and run it again. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chadlis/anki-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server