← Back to directory
A

Anki MCP Server

Community
Manage Anki learning through AI conversation.
Category
Other #57 of 230
Stars
★ 519 Very popular
Transport
stdio (local process)
Runtime
Node.js 22.12.0+
Credentials
No credential needed
License
MIT
Last commit
Tools
48
62FMRS · C

Based on the supplied repository, manifest, and README, this is an independent MIT-licensed Anki integration that exposes 42 MCP tools through AnkiConnect. The manifest lists version 0.18.4, while the README's current-status section states 0.22.0, so the version information is inconsistent.

Strongest · Documentation 15/20 Weakest · Reliability 9/20

Reliability
9/20
Security and permissions
14/20
Maintenance
11/20
Documentation
15/20
Setup experience
13/20
Why each score
Reliability 9/20
The supplied material describes clear STDIO, HTTP, and Tunnel entry points, dependencies, and failure protections, so the MCP initialization and tool-list flow is plausible. However, no actual source files, CI workflows, or committed tests are supplied, so startup, handshake, and consistency between the 42 declared tools and implementation cannot be verified. The manifest says 0.18.4 while the README later calls the current version 0.22.0, creating an auditable contradiction. Under static calibration the score is therefore capped below 12 and reduced for unverifiable key paths.
Security and permissions 14/20
The material documents localhost-by-default binding, Host/Origin checks, media-path and URL SSRF/path-traversal protections, OAuth for the tunnel, 0600 credential permissions, and explicit confirmation for several destructive operations; it also states that data remains local by default. Points are deducted because HTTP currently has no authentication, ngrok is explicitly unauthenticated and can expose Anki, and the server has broad write capabilities. The read-only description also permits sync, answerCards, suspend, and unsuspend, so the least-privilege boundary is not fully read-only. No source or security-test evidence is provided, so full marks are not justified.
Maintenance 11/20
The project is not archived, and the README provides an MIT license, beta status, a GitHub Actions test badge, an npm release path, vulnerability-report links, and a support email, indicating maintenance and feedback channels. Points are deducted because the supplied material cannot verify commit cadence, sustained releases, dependency updates, or issue response. The 0.22.0 README claim conflicts with the 0.18.4 manifest/npm package, indicating a version-governance gap.
Documentation 15/20
The README covers installation, client configuration, three transports, environment variables, tool inventory, examples, permissions and security boundaries, known limitations, troubleshooting, development, and test commands. Points are deducted because complete tool schemas, actual test results, runtime behavior, and cost information are not supplied; the README contains a version contradiction, and several external documents are only linked and cannot be reviewed from the provided material.
Setup experience 13/20
Multiple npm/npx, global-install, source, and MCPB paths are provided, along with Claude Desktop configuration, STDIO/HTTP/Tunnel examples, and AnkiConnect and Node.js prerequisites. The mainstream local setup path is reasonably clear. Points are deducted because Anki and AnkiConnect must be installed and configured first, remote use involves OAuth, tunneling, or the explicitly unauthenticated ngrok option, and no installation or end-to-end connection evidence is supplied. The version mismatch further reduces reproducibility; under static calibration the score remains at or below 15.

Static review · not runListed 2026-07-29

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesWrites / deletes local filesUses the networkConnects to a database

Best for

  • Individual learners already using Anki and AnkiConnect.
  • Users who want AI-guided review, explanations, and dynamic card creation.
  • Users connecting local Anki to Claude Desktop, Cursor, Cline, or Zed.

Not for

  • Users without the Anki desktop application or AnkiConnect.
  • Organizations requiring official Anki support or an official integration.
  • Remote users seeking only review workflows; GUI tools are intended for editing and creation, not review sessions.

Required permissions

  • Requires access to the configured AnkiConnect URL, which defaults to local http://localhost:8765.
  • Write operations can create, modify, move, and delete Anki content; deletion tools require explicit confirmation.
  • Media imports may read specified file paths or URLs, subject to media security settings.
  • If AnkiWeb sync is enabled, the Anki application synchronizes directly with AnkiWeb.

Risks and side effects

  • The project is explicitly in beta, and APIs and features may change.
  • Deleting notes permanently removes associated cards; clearing tags, deleting media, and removing fields can also cause data loss.
  • updateNoteFields may silently fail while the note is being viewed in Anki's browser.
  • ngrok mode is unauthenticated, so anyone with the URL may reach Anki; the managed Tunnel requires login authentication.
  • Remote HTTP exposure requires correct ALLOWED_HOSTS configuration; misconfiguration can cause rejected requests or broader exposure.

Setup

Before you start

Runtime:Node.js 22.12.0+

ANKI_CONNECT_API_KEY optionalsecret Set only if you configured an API key in AnkiConnect.
TUNNEL_AUTH_CLIENT_ID optionalsecret OAuth client ID for the device flow; only needed for self-hosted tunnel/auth services.
Other optional settings (13)
ANKI_CONNECT_URL optional URL of the AnkiConnect plugin, default http://localhost:8765; usually no change needed.
ANKI_CONNECT_API_VERSION optional AnkiConnect API version, defaults to 6.
ANKI_CONNECT_TIMEOUT optional Request timeout in ms, default 5000.
READ_ONLY optional Set to true or 1 to block all write operations.
ALLOWED_HOSTS optional Extra Host header values accepted in HTTP mode; required when binding to a LAN/public address.
ALLOWED_ORIGINS optional Comma-separated allowlist of browser Origin/Referer patterns for HTTP mode; wildcards supported.
TUNNEL_SERVER_URL optional Tunnel service WebSocket URL for tunnel mode, default wss://tunnel.ankimcp.ai.
MEDIA_ALLOWED_TYPES optional Extra MIME types allowed for file path imports, e.g. application/pdf.
MEDIA_IMPORT_DIR optional Restricts file path imports to this directory.
MEDIA_ALLOWED_HOSTS optional Private network hosts allowed for URL imports.
PORT optional HTTP server port, default 3000.
HOST optional HTTP bind address, default 127.0.0.1.
LOG_LEVEL optional Logging level, default info.

Install Anki and the AnkiConnect plugin, and confirm that AnkiConnect uses http://localhost:8765. Install Node.js 22.12.0 or newer. Run the server with npx and add the configuration above to an MCP client that supports STDIO; Claude Desktop can also install the project's MCPB bundle.

claude_desktop_config.json
{"mcpServers":{"anki-mcp":{"command":"npx","args":["-y","@ankimcp/anki-mcp-server","--stdio"],"env":{"ANKI_CONNECT_URL":"http://localhost:8765"}}}}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "anki-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ankimcp/anki-mcp-server",
        "--stdio"
      ],
      "env": {
        "ANKI_CONNECT_URL": "http://localhost:8765"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add anki-mcp -e ANKI_CONNECT_URL=http://localhost:8765 -- npx -y @ankimcp/anki-mcp-server --stdio

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After starting the server, tools like sync, listDecks, and get_due_cards should appear in your MCP client's tool list; asking 'List my Anki decks' and getting real deck data back confirms the AnkiConnect connection works.

Troubleshooting

  1. Confirm that Anki is running and AnkiConnect is installed.
  2. Check ANKI_CONNECT_URL, API version, API key, and the default 5000 ms timeout.
  3. Confirm that Node.js is at least 22.12.0.
  4. Use --stdio for STDIO clients; HTTP mode defaults to 127.0.0.1:3000.
  5. Close the note in Anki's browser or switch to another note before updating it.
  6. For remote or non-loopback access, check ALLOWED_HOSTS, ALLOWED_ORIGINS, and tunnel settings.

Things to try

Once connected, you can ask your AI assistant things like:

  • Help me review my Spanish deck.
  • Create 10 Arabic vocab cards with RTL styling.
  • Import this image from my Downloads folder into the front of the selected note.
  • Show me statistics for all my decks.

Tools 48

sync writes
Synchronize data with AnkiWeb.
get_due_cards read-only
Get cards due for review, optionally filtered by deck.
get_cards read-only
Filter cards by state and deck.
present_card read-only
Present a card's question or front side.
rate_card writes
Record a review rating and schedule the next review.
listDecks read-only
List decks, optionally with card statistics.
deckStats read-only
Get comprehensive statistics for one deck.
createDeck writes
Create an empty deck with up to two hierarchy levels.
Show 40 more tools
changeDeck writes
Move cards to another deck, creating it if needed.
addNote writes
Create one note with fields and tags.
addNotes writes
Batch-create up to 100 notes sharing a deck and model.
findNotes read-only
Search notes using Anki query syntax.
notesInfo read-only
Get detailed note fields, tags, and styling information.
updateNoteFields writes
Update note fields with HTML support while preserving styling.
deleteNotes destructive
Delete notes and associated cards; confirmation is required.
getTags read-only
Get all tags in the collection.
addTags writes
Add tags to specified notes.
removeTags writes
Remove tags from specified notes.
replaceTags writes
Rename a tag across specified notes.
clearUnusedTags destructive
Remove orphaned tags unused by notes.
getMediaFilesNames read-only
List media filenames, optionally filtered by pattern.
retrieveMediaFile read-only
Read a media file as Base64 content.
storeMediaFile writes
Upload media from Base64 data, an absolute path, or a URL.
deleteMediaFile destructive
Delete a media file from the media collection.
modelNames read-only
List available note types.
modelFieldNames read-only
Get field names for a note type.
modelStyling read-only
Get CSS styling for a note type.
modelTemplates read-only
Get card templates for a note type.
createModel writes
Create a note type with custom fields, templates, and CSS.
updateModelStyling writes
Update note-type CSS for all its cards.
updateModelTemplates writes
Update card templates for all cards of a note type.
addModelField writes
Add a field to a note type.
removeModelField destructive
Remove a note-type field; explicit confirmation is required.
renameModelField writes
Rename a note-type field.
repositionModelField writes
Change a field's position in a note type.
collection_stats read-only
Get aggregate statistics with per-deck details.
review_stats read-only
Analyze review history, retention, and study streaks.
guiBrowse read-only
Open the Card Browser and search for cards.
guiSelectCard read-only
Select a card in the Card Browser.
guiSelectedNotes read-only
Get IDs of currently selected notes.
guiAddCards writes
Open the Add Cards dialog with preset note details.
guiEditNote writes
Open the editor for a specific note.
guiDeckOverview read-only
Open the overview dialog for a deck.
guiDeckBrowser read-only
Open the Deck Browser dialog.
guiCurrentCard read-only
Get current-card information in review mode.
guiShowQuestion read-only
Show the current card's question.
guiShowAnswer read-only
Show the current card's answer.
guiUndo writes
Undo the last Anki action.

Use cases

Review a selected deck conversationally and record Again, Hard, Good, or Easy ratings.
Batch-create vocabulary cards with custom fields, templates, and RTL styling.
Search and edit notes while managing tags and media files.
Inspect deck, collection, and review-history statistics.

Supported clients

Claude Desktop
Cursor
Cline
Zed

Listed from the project's documentation, not tested by this site.

Overview

Anki MCP Server connects AI assistants to Anki flashcards through AnkiConnect. It supports reviews, decks, notes, media, tags, models, templates, statistics, and selected Anki desktop GUI workflows. The project is in active beta development, so APIs and features may change.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 659 · Tools 11 Compare with this →

Source revision e0e347f7f399 Data synced 2026-10-19 Read the FMRS scoring method