← Back to directory
A

Anki MCP Server Addon

Community
Seamlessly integrate Anki with AI assistants via a local MCP server.
Category
Other #106 of 230
Stars
★ 85 Popular
Transport
Streamable HTTP
Runtime
Node.js · Python 3.10+
Credentials
No credential needed
License
Other / unspecified
Last commit
Tools
41
55FMRS · C

AnkiMCP Server is a powerful Anki addon that connects Anki with AI assistants via the MCP protocol, offering a rich set of tools and security measures. It suits users who want to leverage AI to enhance learning but requires some technical configuration.

Strongest · Documentation 16/20 Weakest · Reliability 6/20

Reliability
6/20
Security and permissions
11/20
Maintenance
9/20
Documentation
16/20
Setup experience
13/20
Why each score
Reliability 6/20
The supplied material contains no source code, tests, or CI workflow files, so runtime behavior, the MCP init/tool-list handshake, and tool-to-implementation fidelity cannot be verified. The README describes a coherent architecture and a large tool inventory, but per evidence rules it is untrusted for behavior claims. Deductions: first-run downloads pydantic_core from PyPI (external dependency in the start path), the Anki ≥25.07 requirement narrows the runtime matrix, and a version inconsistency (manifest 0.19.0 vs README Nix example 0.20.0) hints at version drift. The happy path is plausible, but no verifiable execution evidence exists.
Security and permissions 11/20
No red-line issues are visible: install examples contain no real tokens, no credential theft or covert exfiltration is described, and the disclosed data flow (WebSocket relay to tunnel.ankimcp.ai, credentials in user_files/credentials.json) is explicit and opt-in. The README describes a thoughtful posture: loopback-only default binding, DNS-rebinding allowlist, optional Bearer API key, CORS as a separate layer, opt-in destructive tools, and media SSRF/path-traversal validation with disclosed vulnerability reports. Deductions: none of this is verifiable without source; delete_notes and other state-changing tools are exposed to AI clients by default with no documented confirmation prompt; the API key is HTTP-only and tunnel auth is delegated to a third-party relay. Score reflects 'main risks visible, implementation unverifiable'.
Maintenance 9/20
The repository is not archived and has a low open-issue count, but the provided material contains no commit history, release cadence, issue-response logs, or CI definitions. Stars are discovery signals only and add no points. Deductions: the manifest license is NOASSERTION (README claims AGPL-3.0-or-later but repository metadata does not confirm it), the server version in the manifest (0.19.0) disagrees with the README Nix example (0.20.0), and there is no documented security-response channel beyond incidental vulnerability acknowledgements. Active-looking but with governance/versioning gaps.
Documentation 16/20
The README is the artifact under review and it is strong: layered install paths (AnkiWeb, GitHub releases, NixOS with flakes), mainstream client configs (Claude Desktop, Claude Code, opencode), a full configuration reference with examples, a security-hardening section, tool/resource/prompt inventories, requirements, and an architecture note. Limitations are disclosed (Python 3.9 unsupported, first-run pydantic_core download, DNS-rebinding behavior change for upgrades, tunnel data flow). Deductions: no dedicated troubleshooting/FAQ section, tool parameter detail is at table level rather than full schema or worked examples, and the version mismatch with the manifest is a correctness blemish in otherwise careful docs.
Setup experience 13/20
The mainstream path is clear and few-step: install the addon by code, restart Anki, server auto-starts, then register the HTTP endpoint in a client — with exact config JSON provided. Static calibration caps setup at 15 without committed CI/tests, and none are in the supplied material. Deductions: Claude Desktop requires the npx mcp-remote stdio bridge rather than native HTTP support; first run downloads pydantic_core from PyPI, which can fail offline; Anki ≥25.07 narrows compatibility; and the NixOS path is comparatively complex with an unresolved hash placeholder.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesUses the networkConnects to a database

Best for

  • Users who use Anki for spaced repetition and want to leverage AI to automate study workflows
  • Advanced users who need to manage cards, notes, and tags in bulk
  • Developers who want to integrate Anki data into AI workflows

Not for

  • Casual users who don't need AI interaction and only want basic Anki features
  • Users uncomfortable with technical configuration who want plug-and-play
  • Users needing official support or enterprise-grade security guarantees

Required permissions

  • Read and modify Anki collection data (cards, notes, decks, tags)
  • Perform sync operations, communicating with AnkiWeb
  • Access and modify media files (import, delete)
  • Perform UI operations in Anki interface (e.g., open dialogs, browse)

Risks and side effects

  • Exposing via tunnel may increase unauthorized access risk, but built-in DNS-rebinding protection and optional API key mitigate it
  • Destructive tools (like field deletion) are hidden by default, but users can enable them, potentially causing data loss
  • Media file import has path traversal and SSRF risks, which are built-in validated, but loose configuration could lead to security issues
  • Automatic sync may unexpectedly overwrite or modify collection; regular backups recommended

Setup

Before you start

Runtime:Node.js · Python 3.10+

  1. Open Anki and go to Tools → Add-ons → Get Add-ons..., enter code 124672614, and restart.
  2. Alternatively, download anki_mcp_server.ankiaddon from GitHub Releases and install by double-clicking.
  3. For Claude Desktop, add an MCP server config in your config file (e.g., ~/Library/Application Support/Claude/claude_desktop_config.json on macOS) using npx mcp-remote to connect to http://127.0.0.1:3141.
  4. For Claude Code, run: claude mcp add anki --transport http http://127.0.0.1:3141/.
claude_desktop_config.json
{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://127.0.0.1:3141"
      ]
    }
  }
}

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": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://127.0.0.1:3141"
      ]
    }
  }
}

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

Terminal
claude mcp add anki -- npx mcp-remote http://127.0.0.1:3141

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

Check that it works

After installing the addon and restarting Anki, your AI client's tool list should include tools like sync, list_decks, and add_note; calling list_decks and getting your real deck names confirms the connection works.

Troubleshooting

  1. First run downloads pydantic_core; if it fails, check network connection and retry
  2. If HTTP server doesn't start, check Anki version >= 25.07 and ensure http_enabled is true in config
  3. If client connection fails, confirm HTTP port is not in use and Host/Origin are in allowlist (when using tunnel)
  4. Check log file (if log_to_file enabled) or use Copy Diagnostics button to gather info for troubleshooting

Things to try

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

  • List all my decks and tell me how many cards are due today in each one.
  • Add a card to my Default deck with front 'What is MCP?' and back 'The Model Context Protocol, a standard for connecting AI assistants to tools.'
  • Find all notes tagged 'history' and add the tag 'review-later' to them.
  • Show me the current card's question and then rate it as Good.

Tools 41

sync writes
Synchronize collection with AnkiWeb, with async status and full-sync conflict resolution
list_decks read-only
List all decks in the collection
create_deck writes
Create a new deck
find_notes read-only
Search for notes using Anki's search syntax
notes_info read-only
Get detailed information about notes
add_note writes
Add a new note to a deck
add_notes writes
Batch-add notes up to max_notes_per_batch
card_management writes
Manage cards including reposition, change deck, bury/unbury, suspend/unsuspend, flag, due date, and forget
Show 33 more tools
tag_management writes
Manage tags including add, remove, replace, get, clear unused, and batch operations
filtered_deck writes
Manage filtered decks: create/update, rebuild, empty, delete
update_note_fields writes
Update fields of existing notes
update_notes writes
Batch-update fields of multiple notes with partial success
delete_notes destructive
Delete notes from the collection
get_due_cards read-only
Get next due card for review, optionally skip images/audio
cards_stats read-only
Bulk per-card scheduling stats for a deck (including subdecks)
present_card read-only
Get card content for review
rate_card writes
Rate a card after review (Again/Hard/Good/Easy)
model_names read-only
List available note types
model_field_names read-only
Get field names and descriptions for a note type
model_styling read-only
Get CSS styling for a note type
update_model_styling writes
Update CSS styling for a note type
model_templates read-only
Read Front/Back HTML templates for each card type in a note type
update_model_templates writes
Update Front/Back template HTML
model_fields writes
Manage fields on a note type: add, rename, reposition, and remove (destructive)
create_model writes
Create a new note type
store_media_file writes
Store a media file via base64, file path, or URL, with path traversal and SSRF prevention
get_media_files_names read-only
List media files matching a pattern
delete_media_file destructive
Move a media file to Anki's trash
get_fsrs_params read-only
Get FSRS scheduler parameters for deck presets
set_fsrs_params writes
Update FSRS parameters (weights, desired retention, max interval)
get_card_memory_state read-only
Get FSRS memory state (stability, difficulty, retrievability) for cards
optimize_fsrs_params writes
Run FSRS parameter optimization using Anki's built-in optimizer
gui_browse writes
Open the card browser with a search query
gui_add_cards writes
Open the Add Cards dialog
gui_edit_note writes
Open the note editor for a specific note
gui_current_card read-only
Get info about the currently displayed card
gui_show_question writes
Show the question side of current card
gui_show_answer writes
Show the answer side of current card
gui_select_card writes
Select a specific card in the reviewer
gui_deck_browser writes
Navigate to deck browser
gui_undo writes
Undo the last operation

Use cases

AI-guided review sessions with interactive, quick, or voice modes
Batch create and edit cards, notes, and tags
Analyze card statistics and FSRS scheduling parameters
Control Anki interface via GUI tools like browse, add, and edit cards
Access your collection from anywhere via remote tunnel

Supported clients

Claude Desktop
Claude Code
OpenCode

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

Overview

AnkiMCP Server is an Anki addon that runs a local MCP server inside Anki, allowing AI assistants like Claude to interact with your flashcard collection through the Model Context Protocol (MCP). It supports a local HTTP server and remote tunnel, offering tools to manage cards, notes, tags, models, and media, as well as FSRS scheduling parameters and GUI interactions.

Similar servers

BioMCP 75 · B

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

★ 654 · Tools 11 Compare with this →

Source revision b67c914b4560 Data synced 2026-10-12 Read the FMRS scoring method