mcpField
A
anki

anki

github.com/nailuoggProductivity25241 installsUpdated 2d ago
Repository

About anki

Anki is a skill for creating and managing flashcards through the `anki-mcp-server` integration. It guides workflows for decks, notes, tags, and searches in Anki.

Key features

  1. 01Create single or batch notes
  2. 02Manage decks and tags
  3. 03Search and inspect notes
  4. 04Check note types and fields
  5. 05Update and delete notes

Use cases

  1. 01Turn study material into flashcards
  2. 02Organize notes into hierarchical decks
  3. 03Find and revise existing cards

MCP support

Uses the `anki-mcp-server` MCP integration to access Anki. The skill describes tools for creating, searching, and managing decks and notes.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/nailuogg/anki-mcp-server --skill anki

After installing, type/ankiin Claude Code to confirm it loaded.

Details

From the project README

Anki MCP Server Skill

Create and manage Anki flashcards through the anki-mcp-server MCP integration.

Prerequisites

  1. Anki desktop app is running
  2. AnkiConnect addon installed (default port 8765)
  3. MCP server configured in Claude:
{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["-y", "anki-mcp-server"]
    }
  }
}

Note: Do not use the .mcpb packaged version — it outputs Electron metadata to stdout which breaks the MCP stdio protocol.

Quick Reference

GoalToolKey Args
Check connectionanki_check_connection—
List all decksanki_list_decks—
Create deckanki_create_deckname
List all tagsanki_list_tags—
Add note tagsanki_add_note_tagsnoteId or noteIds, tags
Remove note tagsanki_remove_note_tagsnoteId or noteIds, tags
Create one noteanki_create_notetype, deck, fields
Batch create notesanki_batch_create_notesnotes[] (10–20 per batch)
Search notesanki_search_notesquery (Anki syntax), limit, offset
Get note detailsanki_get_note_infonoteId
Update noteanki_update_noteid, fields, tags
Delete noteanki_delete_notenoteId or noteIds
List note typesanki_list_note_types—
Get field namesanki_get_note_type_infomodelName

Legacy unprefixed tool names still work, but prefer the anki_* tools for new workflows.

Core Workflows

From text/notes → Flashcards
  1. Call anki_list_decks to confirm target deck (create if needed)
  2. Call anki_get_note_type_info to confirm field names for the chosen type
  3. Extract knowledge points — one concept per card
  4. Call anki_batch_create_notes (10–20 notes per call, max 50)

Minimum information principle: Each card tests exactly one thing.

Note Types
TypeFieldsUse For
BasicFront, BackDefinitions, facts, Q&A
ClozeText with {{c1::deletion}}Fill-in-the-blank, sequences

Always call anki_get_note_type_info first when using custom note types — field names vary.

Batch Create Example
{
  "notes": [
    {
      "type": "Basic",
      "deck": "Programming::Python",
      "fields": {
        "Front": "What does list comprehension look like in Python?",
        "Back": "[expr for item in iterable if condition]"
      },
      "tags": ["python", "syntax"]
    },
    {
      "type": "Cloze",
      "deck": "Programming::Python",
      "fields": {
        "Text": "In Python, {{c1::def}} defines a function and {{c2::return}} sends back a value."
      },
      "tags": ["python", "basics"]
    }
  ],
  "allowDuplicate": false,
  "stopOnError": false
}
Search Syntax
deck:Python              # Cards in Python deck
tag:重要 is:due          # Due cards tagged "重要"
is:new                   # Unseen cards
note:Basic               # Cards using Basic note type
"exact phrase"           # Exact text match
Tags

Use anki_list_tags to inspect existing tags. For metadata-only changes, prefer anki_add_note_tags and anki_remove_note_tags; use anki_update_note only when replacing the full tag list.

Deck Naming

Use :: for hierarchy: Language::English::Vocabulary, CS::Algorithms::Sorting

Common Mistakes

MistakeFix
Not calling anki_get_note_type_info firstAlways check field names before creating notes with custom types
Batches > 50 notesSplit into multiple calls of 10–20
Using .mcpb fileUse npx -y anki-mcp-server instead
Anki not runningStart Anki, verify AnkiConnect is active
Wrong field namesField names are case-sensitive — use anki_get_note_type_info to verify

Comments

Markdown supported