Anki

Manage Anki flashcards and decks using the Anki-Connect plugin.

Anki MCP Server

Requirements

  1. Node.js 18 or newer. Download Node.js
  2. Anki desktop application. Download Anki
  3. Anki-Connect plugin. Install Anki-Connect

You need to have Anki desktop application up and running to use Anki MCP server.

MCP Installation

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": [
        "@loonskai/anki-mcp-server@latest"
      ]
    }
  }
}

Progress Log

  • Run with NPM
  • Run with Docker
  • Tools configuration
  • Add tests

Tools

  • card.answerCards
  • card.areDue
  • card.areSuspended
  • card.cardsInfo
  • card.cardsModTime
  • card.cardsToNotes
  • card.findCards
  • card.forgetCards
  • card.getEaseFactors
  • card.getIntervals
  • card.relearnCards
  • card.setDueDate
  • card.setEaseFactors
  • card.setSpecificValueOfCard
  • card.suspend
  • card.suspended
  • card.unsuspend
  • deck.changeDeck
  • deck.cloneDeckConfigId
  • deck.createDeck
  • deck.deckNames
  • deck.deckNamesAndIds
  • deck.deleteDecks
  • deck.getDeckConfig
  • deck.getDeckStats
  • deck.getDecks
  • deck.removeDeckConfigId
  • deck.saveDeckConfig
  • deck.setDeckConfigId
  • graphical.guiAddCards
  • graphical.guiAnswerCard
  • graphical.guiBrowse
  • graphical.guiCheckDatabase
  • graphical.guiCurrentCard
  • graphical.guiDeckBrowser
  • graphical.guiDeckOverview
  • graphical.guiDeckReview
  • graphical.guiEditNote
  • graphical.guiExitAnki
  • graphical.guiImportFile
  • graphical.guiSelectCard
  • graphical.guiSelectNote
  • graphical.guiSelectedNotes
  • graphical.guiShowAnswer
  • graphical.guiShowQuestion
  • graphical.guiStartCardTimer
  • graphical.guiUndo
  • media.deleteMediaFile
  • media.getMediaDirPath
  • media.getMediaFilesNames
  • media.retrieveMediaFile
  • media.storeMediaFile
  • miscellaneous.apiReflect
  • miscellaneous.exportPackage
  • miscellaneous.getActiveProfile
  • miscellaneous.getProfiles
  • miscellaneous.importPackage
  • miscellaneous.loadProfile
  • miscellaneous.multi
  • miscellaneous.reloadCollection
  • miscellaneous.requestPermission
  • miscellaneous.sync
  • miscellaneous.version
  • model.createModel
  • model.findAndReplaceInModels
  • model.findModelsById
  • model.findModelsByName
  • model.modelFieldAdd
  • model.modelFieldDescriptions
  • model.modelFieldFonts
  • model.modelFieldNames
  • model.modelFieldRemove
  • model.modelFieldRename
  • model.modelFieldReposition
  • model.modelFieldSetDescription
  • model.modelFieldSetFont
  • model.modelFieldSetFontSize
  • model.modelFieldsOnTemplates
  • model.modelNames
  • model.modelNamesAndIds
  • model.modelStyling
  • model.modelTemplateAdd
  • model.modelTemplateRemove
  • model.modelTemplateRename
  • model.modelTemplateReposition
  • model.modelTemplates
  • model.updateModelStyling
  • model.updateModelTemplates
  • note.addNote
  • note.addNotes
  • note.addTags
  • note.canAddNotes
  • note.canAddNotesWithErrorDetail
  • note.clearUnusedTags
  • note.deleteNotes
  • note.findNotes
  • note.getNoteTags
  • note.getTags
  • note.notesInfo
  • note.notesModTime
  • note.removeEmptyNotes
  • note.removeTags
  • note.replaceTags
  • note.replaceTagsInAllNotes
  • note.updateNote
  • note.updateNoteFields
  • note.updateNoteModel
  • note.updateNoteTags
  • statistic.cardReviews
  • statistic.getCollectionStatsHTML
  • statistic.getLatestReviewID
  • statistic.getNumCardsReviewedByDay
  • statistic.getNumCardsReviewedToday
  • statistic.getReviewsOfCards
  • statistic.insertReviews

Related Servers