mybuddymichael/anki-mcp
If you are the rightful owner of anki-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Anki-MCP is a Model Context Protocol server that allows seamless interaction between LLMs and Anki flashcard collections, enabling tasks like deck management, note searching, and field updating.
anki-mcp
A Model Context Protocol (MCP) server that enables LLMs to interact with your Anki flashcard collection. Read decks, search notes, view card contents, and update fields directly from your LLM tool of choice.
Features
- Deck Management: List all available Anki decks
- Note Search: Search notes using Anki's powerful search syntax
- Note Viewing: View note contents and field values
- Note Editing: Update note fields programmatically
Setup
Prerequisites
- Anki - Desktop application must be installed and running
- AnkiConnect - Add-on for API access (code:
2055492159
) - Bun 1.2.16 or later
Installation
# Install AnkiConnect in Anki
# Go to Tools → Add-ons → Get Add-ons... → Enter: 2055492159
# Clone and setup this project
git clone git@github.com:mybuddymichael/anki-mcp.git
cd anki-mcp
bun install
Usage
With Claude Desktop
Add to your Claude Desktop configuration file:
{
"mcpServers": {
"anki": {
"command": "bun",
"args": ["run", "/path/to/anki-mcp/index.ts"]
}
}
}
With Other MCP Clients
This server works with any MCP-compatible client. Look up the respective documentation for how to configure it.
Available tools
Tool | Description | Parameters |
---|---|---|
get-decks | Lists all available Anki decks | None |
search-notes | Search notes using Anki syntax | query (string) |
get-note-fields | Get note field contents | noteIds (number[]) |
get-model-names | List note types/models | None |
get-model-field-names | Get field names for a model | modelName (string) |
update-note-fields | Update note field contents | noteId (number), fields (object) |
add-notes | Add new notes to decks | notes (array) |
list-media-files | List all media files | None |
check-media-exists | Check if media file exists | filename (string) |
store-media | Store media file to Anki media collection | filePath (string) |
Usage examples
Adding new cards
"Add a card with 'bonjour' on the front and 'hello' on the back to my French deck"
"Create a flashcard for the Spanish word 'biblioteca' meaning 'library' with the tag 'places'"
"Add these vocabulary words to my German deck: Haus (house), Auto (car), Buch (book)"
Finding cards
"Search for all cards in my Biology deck, then show me their contents"
First: Search returns note IDs → Second: Get field contents for those IDs
"Find my Spanish vocabulary cards tagged with 'food', then show me what they contain"
Updating cards
"Update the back of card #1234567890 to include pronunciation: 'biblioteca [bee-blee-oh-TEH-kah]'"
"Fix the typo on the front of that card - change 'recieve' to 'receive'"
Deck info
"What decks do I have available?"
"What note types exist in my Anki collection?"
"Show me the field names for my Cloze note type"
Related Links
License
MIT