A community-driven registry for the Claude Code ecosystem. Not affiliated with Anthropic.
Are you the author? Sign in to claim
A Model Context Protocol (MCP) server that enables AI assistants to interact with Anki, the spaced repetition flashcard
Seamlessly integrate Anki with AI assistants through the Model Context Protocol
Beta - This project is in active development. APIs and features may change.
A Model Context Protocol (MCP) server that enables AI assistants to interact with Anki, the spaced repetition flashcard application.
Transform your Anki experience with natural language interaction - like having a private tutor. The AI assistant doesn't just present questions and answers; it can explain concepts, make the learning process more engaging and human-like, provide context, and adapt to your learning style. It can create and edit notes on the fly, turning your study sessions into dynamic conversations. More features coming soon!
For comprehensive guides, real-world examples, and step-by-step tutorials on using this MCP server with Claude Desktop, visit:
ankimcp.ai - Complete documentation with practical examples and use cases
See docs/ for supplementary documentation, including the reviewer setup guide and the sample Anki deck.
Three representative prompts showing the tool flows this server enables:
"Help me review my Spanish deck." — The assistant syncs with AnkiWeb (sync), fetches due cards (get_due_cards with deck filter), presents each card (present_card), and records your rating (rate_card). Natural study conversation with explanations tailored to you.
"Create 10 Arabic vocab cards with RTL styling." — The assistant lists note types (modelNames), creates a custom RTL model if needed (createModel + updateModelStyling for right-to-left CSS), then batch-creates the cards (addNotes).
"Import this image from my Downloads folder into the front of the selected note." — The assistant uploads the local file (storeMediaFile with a file path), reads the currently-selected note from the browser (guiSelectedNotes + notesInfo), and updates the front field with an <img> tag (updateNoteFields).
The server exposes 42 MCP tools — 31 essential tools for everyday Anki operations and 11 GUI tools that drive the Anki desktop interface for note editing/creation workflows.
sync - Sync with AnkiWeb to pull latest data and push changesget_due_cards - Get cards that are due for review, optionally filtered by deckget_cards - Get cards with flexible filtering by state (due, new, learning, suspended, buried) and deckpresent_card - Show a card for review with its question/front siderate_card - Rate card performance (Again, Hard, Good, Easy) and schedule the next reviewlistDecks - List all decks, optionally with per-deck card-count statisticsdeckStats - Get comprehensive statistics for a single deck (counts, ease/interval distributions)createDeck - Create a new empty deck (supports Parent::Child, max 2 levels)changeDeck - Move cards to a different deck (created if it doesn't exist)addNote - Create a single note with specified fields and tagsaddNotes - Batch-create up to 100 notes sharing a deck and model (partial success supported)findNotes - Search for notes using Anki query syntax (deck:, tag:, is:due, etc.)notesInfo - Get detailed information about notes (fields, tags, CSS styling)updateNoteFields - Update existing note fields (CSS-aware, supports HTML content)deleteNotes - Delete notes and all associated cards (destructive, requires confirmation)getTags - Get all tags in the collection (use first to avoid duplication)addTags - Add space-separated tags to specified notesremoveTags - Remove space-separated tags from specified notesreplaceTags - Rename a tag across specified notesclearUnusedTags - Remove orphaned tags not used by any notes (destructive)getMediaFilesNames - List media files in collection.media, optionally filtered by patternretrieveMediaFile - Download a media file as base64 contentstoreMediaFile - Upload media from base64 data, an absolute file path, or a URLdeleteMediaFile - Remove a media file from collection.media (destructive)💡 Best Practice for Images:
/Users/you/image.png) - Fast and efficienthttps://example.com/image.jpg) - Direct downloadJust tell Claude where the image is, and it will handle the upload automatically using the most efficient method.
modelNames - List all available note types/modelsmodelFieldNames - Get field names for a specific note typemodelStyling - Get CSS styling information for a note typecreateModel - Create a new note type with custom fields, card templates, and CSS (e.g., RTL models)updateModelStyling - Update the CSS styling for an existing note type (applies to all its cards)collection_stats - Aggregated statistics across all decks with per-deck breakdownreview_stats - Review history analysis (temporal patterns, retention metrics, study streaks)Tools that drive the Anki desktop interface. Intended for note editing/creation and deck-management workflows, not for review sessions.
guiBrowse - Open the Card Browser and search for cardsguiSelectCard - Select a specific card in the Card BrowserguiSelectedNotes - Get IDs of notes currently selected in the Card BrowserguiAddCards - Open the Add Cards dialog with preset note detailsguiEditNote - Open the note editor for a specific noteguiDeckOverview - Open the Deck Overview dialog for a specific deckguiDeckBrowser - Open the Deck Browser dialogguiCurrentCard - Get info about the current card in review modeguiShowQuestion - Show the question side of the current cardguiShowAnswer - Show the answer side of the current cardguiUndo - Undo the last action in AnkiThere are a few ways to get the server onto your machine. Once it's installed, head to Connecting an AI Client to wire it up to your AI assistant — locally or remotely.
The general-purpose way to install the server, suitable for any MCP client that launches it directly.
Install it globally for clients that run the ankimcp command:
npm install -g @ankimcp/anki-mcp-server
Or run it on demand with no install required:
npx @ankimcp/anki-mcp-server
The easiest way to install this MCP server for Claude Desktop:
.mcpb bundle from the Releases page.mcpb file.mcpb filehttp://localhost:8765)That's it! The bundle includes everything needed to run the server locally.
For Anthropic MCP Directory reviewers: a zero-to-integration walkthrough with a pre-populated sample deck lives in
docs/reviewer-setup.md.
For development or advanced usage:
npm install
npm run build
There are two ways an AI assistant can reach this server, depending on where the assistant runs:
The server runs on the same computer as your AI client and talks to AnkiConnect on localhost.
STDIO is the standard transport for local desktop MCP clients — Claude Desktop, Cursor IDE, Cline, Zed Editor, and others. The client launches the server as a subprocess and communicates over standard input/output.
Supported Clients:
For Claude Desktop, the MCPB bundle is the easiest path. For other clients, configure the npm package with the --stdio flag.
Configuration - Choose one method:
Method 1: Using npx (recommended - no installation needed)
{
"mcpServers": {
"anki-mcp": {
"command": "npx",
"args": ["-y", "@ankimcp/anki-mcp-server", "--stdio"],
"env": {
"ANKI_CONNECT_URL": "http://localhost:8765"
}
}
}
}
Method 2: Using global installation
First, install globally:
npm install -g @ankimcp/anki-mcp-server
Then configure:
{
"mcpServers": {
"anki-mcp": {
"command": "ankimcp",
"args": ["--stdio"],
"env": {
"ANKI_CONNECT_URL": "http://localhost:8765"
}
}
}
}
Configuration file locations:
~/.cursor/mcp.json (macOS/Linux) or %USERPROFILE%\.cursor\mcp.json (Windows)For client-specific features and troubleshooting, consult your MCP client's documentation. See also Connect to Claude Desktop for a config that points directly at a built dist/main-stdio.js.
HTTP mode runs the server as a local web server speaking the MCP Streamable HTTP protocol. It's the transport a web-based AI tool talks to when pointed at your machine, and it's also what the Remote options expose to the outside world. On its own, HTTP mode binds to localhost only.
Setup - Choose one method:
Method 1: Using npx (recommended - no installation needed)
# Quick start
npx @ankimcp/anki-mcp-server
# With custom options
npx @ankimcp/anki-mcp-server --port 8080 --host 0.0.0.0
npx @ankimcp/anki-mcp-server --anki-connect http://localhost:8765
Method 2: Using global installation
# Install once
npm install -g @ankimcp/anki-mcp-server
# Run the server
ankimcp
# With custom options
ankimcp --port 8080 --host 0.0.0.0
ankimcp --anki-connect http://localhost:8765
Method 3: Install from source (for development)
npm install
npm run build
npm run start:prod:http
To make a local HTTP server reachable by a cloud-hosted AI, use one of the Remote options below.
A hosted/remote AI (such as ChatGPT or Claude.ai running in the cloud) can't reach localhost directly. These options expose your local Anki to the internet so a remote assistant can talk to it.
Recommended remote path — authenticated & secure. Unlike a raw public port, tunnel mode requires you to log in (OAuth 2.0 device flow), so the endpoint isn't open to anyone who guesses the URL.
Tunnel mode lets web-based AI assistants reach your local Anki without running your own tunnel. The server connects out to the managed AnkiMCP tunnel service (wss://tunnel.ankimcp.ai) over a WebSocket and is assigned a public URL. Authentication is built in — no ngrok account or separate tunnel process required, and you log in once.
Log in (OAuth device flow):
Tunnel mode uses the OAuth 2.0 Device Authorization Grant. Logging in opens your browser automatically to an approval page with the code already embedded in the URL — nothing to type, just approve. (If the browser can't open, the terminal prints a verification URL and code to enter manually as a fallback.) On success, credentials are saved to ~/.ankimcp/credentials.json (file permissions 0600).
# Pre-authenticate (optional — --tunnel will trigger this automatically if needed)
ankimcp --login
npx @ankimcp/anki-mcp-server --login
# Clear saved credentials
ankimcp --logout
Start the tunnel:
# Connect to the managed tunnel service (wss://tunnel.ankimcp.ai)
ankimcp --tunnel
npx @ankimcp/anki-mcp-server --tunnel
# Override the tunnel server URL (must be ws:// or wss://) — e.g. for self-hosting
ankimcp --tunnel wss://my-tunnel.example.com
If no credentials exist, --tunnel automatically starts the login flow first, then continues to the tunnel. This auto-login requires an interactive terminal — when stdout is not a TTY (systemd, headless Docker, CI), the server fast-fails and asks you to run ankimcp --login first. Once connected, the public tunnel URL is printed; press Ctrl+C to disconnect. Share that URL with your AI assistant.
Tunnel-mode environment variables:
| Variable | Description | Default |
|---|---|---|
TUNNEL_SERVER_URL | Tunnel server WebSocket URL (the --tunnel/--login flag value overrides this) | wss://tunnel.ankimcp.ai |
TUNNEL_AUTH_CLIENT_ID | OAuth client ID for the device flow. Advanced — only needed when pointing at a self-hosted tunnel/auth service. | (built-in) |
The device-flow auth endpoints (/auth/device, /auth/token) are derived from TUNNEL_SERVER_URL, so pointing --tunnel (or TUNNEL_SERVER_URL) at a different host also moves authentication to that host.
How it works: Tunnel mode runs the MCP server in-process behind an in-memory transport (McpModule is started with no built-in transport). TunnelMcpService connects that in-memory transport to the MCP server, and TunnelClient bridges it to the remote tunnel service over a WebSocket — relaying MCP requests in and responses out. AnkiConnect is still only ever reached on your local machine.
If you'd rather expose local HTTP mode publicly without an account on the managed tunnel, the built-in --ngrok flag launches an ngrok subprocess (src/services/ngrok.service.ts) and prints the public URL in the startup banner:
# One-time ngrok setup, then:
ankimcp --ngrok
This route is unauthenticated — anyone with the URL can reach your Anki, so it's less secure than Tunnel. Prefer Tunnel unless you have a specific reason to manage your own ngrok endpoint. (Requires a global ngrok install and authtoken; the manual two-terminal ngrok http 3000 setup works too.)
ankimcp [options]
Options:
--stdio Run in STDIO mode (for MCP clients)
--tunnel [url] Connect via the managed tunnel (authenticated)
--login Authenticate for tunnel mode (OAuth device flow)
--logout Clear saved tunnel credentials
-p, --port <port> Port to listen on (HTTP mode, default: 3000)
-h, --host <host> Host to bind to (HTTP mode, default: 127.0.0.1)
-a, --anki-connect <url> AnkiConnect URL (default: http://localhost:8765)
--ngrok Start ngrok tunnel (requires global ngrok installation)
--read-only Run in read-only mode (blocks all write operations)
--help Show help message
Usage with npx (no installation needed):
npx @ankimcp/anki-mcp-server # HTTP mode
npx @ankimcp/anki-mcp-server --port 8080 # Custom port
npx @ankimcp/anki-mcp-server --stdio # STDIO mode
npx @ankimcp/anki-mcp-server --tunnel # Managed tunnel mode
npx @ankimcp/anki-mcp-server --ngrok # HTTP mode with ngrok tunnel
npx @ankimcp/anki-mcp-server --read-only # Read-only mode
Usage with global installation:
npm install -g @ankimcp/anki-mcp-server # Install once
ankimcp # HTTP mode
ankimcp --port 8080 # Custom port
ankimcp --stdio # STDIO mode
ankimcp --tunnel # Managed tunnel mode
ankimcp --ngrok # HTTP mode with ngrok tunnel
ankimcp --read-only # Read-only mode
The --read-only flag prevents any modifications to your Anki collection. When enabled:
# HTTP mode with read-only
ankimcp --read-only
# STDIO mode with read-only
ankimcp --stdio --read-only
# Can combine with other flags
ankimcp --ngrok --read-only
You can also enable read-only mode via environment variable:
READ_ONLY=true ankimcp
Or in MCP client configuration:
{
"mcpServers": {
"anki-mcp": {
"command": "npx",
"args": ["-y", "@ankimcp/anki-mcp-server", "--stdio", "--read-only"],
"env": {
"ANKI_CONNECT_URL": "http://localhost:8765"
}
}
}
}
You can configure the server in Claude Desktop by either:
Add the following to your Claude Desktop config:
{
"mcpServers": {
"anki-mcp": {
"command": "node",
"args": ["/path/to/anki-mcp-server/dist/main-stdio.js"],
"env": {
"ANKI_CONNECT_URL": "http://localhost:8765"
}
}
}
}
Replace /path/to/anki-mcp-server with your actual project path.
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonFor more details, see the official MCP documentation.
| Variable | Description | Default |
|---|---|---|
ANKI_CONNECT_URL | AnkiConnect URL | http://localhost:8765 |
ANKI_CONNECT_API_VERSION | API version | 6 |
ANKI_CONNECT_API_KEY | API key if configured in AnkiConnect | - |
ANKI_CONNECT_TIMEOUT | Request timeout in ms | 5000 |
READ_ONLY | Enable read-only mode (true or 1) | false |
TUNNEL_SERVER_URL | Tunnel server WebSocket URL (tunnel mode only) | wss://tunnel.ankimcp.ai |
MEDIA_ALLOWED_TYPES | Extra MIME types to allow for file path imports (comma-separated, e.g., application/pdf) | - |
MEDIA_IMPORT_DIR | Restrict file path imports to this directory | - |
MEDIA_ALLOWED_HOSTS | Allow specific private network hosts for URL imports (comma-separated, e.g., 192.168.1.50,my-nas) | - |
# Search for notes in a specific deck
findNotes(query: "deck:Spanish")
# Get detailed information about notes
notesInfo(notes: [1234567890, 1234567891])
# Update a note's fields (HTML content supported)
updateNoteFields(note: {
id: 1234567890,
fields: {
"Front": "<b>¿Cómo estás?</b>",
"Back": "How are you?"
}
})
# Delete notes (requires confirmation)
deleteNotes(notes: [1234567890], confirmDeletion: true)
The findNotes tool supports Anki's powerful query syntax:
"deck:DeckName" - All notes in a specific deck"tag:important" - Notes with the "important" tag"is:due" - Cards that are due for review"is:new" - New cards that haven't been studied"added:7" - Notes added in the last 7 days"front:hello" - Notes with "hello" in the front field"flag:1" - Notes with red flag"prop:due<=2" - Cards due within 2 days"deck:Spanish tag:verb" - Spanish deck notes with verb tag (AND)"deck:Spanish OR deck:French" - Notes from either decknotesInfo tool returns CSS styling information for proper rendering awarenessupdateNoteFields tool supports HTML content in fields and preserves CSS stylingmodelStyling to get model-specific CSS⚠️ IMPORTANT: When using updateNoteFields, do NOT view the note in Anki's browser while updating, or the fields will not update properly. Close the browser or switch to a different note before updating. See Known Issues for more details.
The deleteNotes tool requires explicit confirmation (confirmDeletion: true) to prevent accidental deletions. Deleting a note removes ALL associated cards permanently.
The media tools (storeMediaFile, retrieveMediaFile, deleteMediaFile) and updateNoteFields audio/picture fields include security validation to prevent misuse via prompt injection:
MEDIA_ALLOWED_TYPES to allow additional file types, or MEDIA_IMPORT_DIR to restrict imports to a specific directory.MEDIA_ALLOWED_HOSTS to allow specific private network hosts.../../ sequences are stripped).These protections apply to storeMediaFile, retrieveMediaFile, deleteMediaFile, and updateNoteFields audio/picture fields.
Path traversal vulnerability reported by Hideaki Takahashi.
This MCP server runs locally on your machine and collects no telemetry, analytics, or usage data.
Full policy: https://ankimcp.ai/privacy/
For a comprehensive list of known issues and limitations, please visit our documentation:
⚠️ IMPORTANT: When updating notes using updateNoteFields, the update will silently fail if the note is currently being viewed in Anki's browser window. This is an upstream AnkiConnect limitation.
Workaround: Always close the browser or navigate to a different note before updating.
For more details and other known issues, see the full documentation.
If you see an error like:
Error [ERR_REQUIRE_ESM]: require() of ES Module not supported
This means your Node.js version is not supported. The server requires Node.js 22.12.0+.
Note: The minimum supported runtime is Node.js 22.12.0. Node.js 20 (Iron) reached end-of-life on 2026-04-30 and is no longer supported.
Check your version:
node --version
Solution: Update Node.js to version 22.12.0+. You can download it from nodejs.org or use a version manager like nvm.
This server supports three MCP transport modes via separate entry points:
dist/main-stdio.jsnpm run start:prod:stdio or node dist/main-stdio.jsdist/main-http.jsnpm run start:prod:http or node dist/main-http.jsPORT env var)127.0.0.1 (configurable via HOST env var)http://127.0.0.1:3000/ (root path)TunnelMcpService wires it to the MCP server and TunnelClient bridges it to the tunnel service over a WebSocketdist/main-tunnel.jsnode dist/main-tunnel.js --tunnel (or ankimcp --tunnel)ankimcp --login / ankimcp --logout; credentials stored at ~/.ankimcp/credentials.json (0600)npm run start:dev:tunnel (watch mode, runs --tunnel --debug)npm run build # Builds once, creates dist/ with all three entry points
main-stdio.js, main-http.js, and main-tunnel.js are all built into the same dist/ directory. Choose which to run based on your needs.
Environment Variables:
PORT - HTTP server port (default: 3000)HOST - Bind address (default: 127.0.0.1 for localhost-only)ALLOWED_ORIGINS - Comma-separated list of allowed origins for CORS (default: localhost)LOG_LEVEL - Logging level (default: info)Security:
Example: Running Modes
# Development - STDIO mode (watch mode with auto-rebuild)
npm run start:dev:stdio
# Development - HTTP mode (watch mode with auto-rebuild)
npm run start:dev:http
# Production - STDIO mode
npm run start:prod:stdio
# or
node dist/main-stdio.js
# Production - HTTP mode
npm run start:prod:http
# or
PORT=8080 HOST=0.0.0.0 node dist/main-http.js
To create a distributable MCPB bundle:
npm run mcpb:bundle
This command will:
package.json to manifest.json.mcpb filesdist/ and node_modules/ into an .mcpb filemcpb clean to remove devDependencies (optimizes bundle from ~47MB to ~10MB)The output file will be named anki-mcp-server-X.X.X.mcpb and can be distributed for one-click installation.
The MCPB bundle includes:
dist/ directory - includes all three entry points)node_modules/ - devDependencies removed by mcpb clean)package.json)manifest.json - configured to use main-stdio.js)icon.png)Source files, tests, and development configs are automatically excluded via .mcpbignore.
When running as an MCPB extension in Claude Desktop, logs are written to:
Log Location: ~/Library/Logs/Claude/ (macOS)
The logs are split across multiple files:
Note: The pino logger output (INFO, ERROR, WARN messages from the server code) goes to stderr and appears in the MCP-specific log files. Claude Desktop determines which log file receives which messages, but generally:
To view logs in real-time:
tail -f ~/Library/Logs/Claude/mcp-server-Anki\ MCP\ Server.log
You can debug the MCP server using the MCP Inspector and attaching a debugger from your IDE (WebStorm, VS Code, etc.).
Note for HTTP Mode: When testing HTTP mode (Streamable HTTP) with MCP Inspector, use "Connection Type: Via Proxy" to avoid CORS errors.
The mcp-inspector-config.json already includes a debug server configuration:
{
"mcpServers": {
"stdio-server-debug": {
"type": "stdio",
"command": "node",
"args": ["--inspect-brk=9229", "dist/main-stdio.js"],
"env": {
"MCP_SERVER_NAME": "anki-mcp-stdio-debug",
"MCP_SERVER_VERSION": "1.0.0",
"LOG_LEVEL": "debug"
},
"note": "Anki MCP server with debugging enabled on port 9229"
}
}
}
Run the MCP Inspector with the debug server:
npm run inspector:debug
This will start the server with Node.js debugging enabled on port 9229 and pause execution at the first line.
9229Once attached, you can:
The debugger will work with source maps, allowing you to debug the original TypeScript code rather than the compiled JavaScript.
You can also debug the MCP server while it runs inside Claude Desktop by enabling the Node.js debugger and attaching your IDE.
Update your Claude Desktop config to enable debugging:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"anki-mcp": {
"command": "node",
"args": [
"--inspect=9229",
"<path_to_project>/anki-mcp-server/dist/main-stdio.js"
],
"env": {
"ANKI_CONNECT_URL": "http://localhost:8765"
}
}
}
}
Key change: Add --inspect=9229 before the path to dist/main-stdio.js
Debug options:
--inspect=9229 - Start debugger immediately, doesn't block (recommended)--inspect-brk=9229 - Pause execution until debugger attaches (for debugging startup issues)After saving the config, restart Claude Desktop. The MCP server will now run with debugging enabled on port 9229.
Attach to Anki MCP (Claude Desktop)localhost9229Node.js < 8 or Chrome or Node.js > 6.3 (depending on WebStorm version).vscode/launch.json:{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Attach to Anki MCP (Claude Desktop)",
"port": 9229,
"skipFiles": ["<node_internals>/**"],
"sourceMaps": true,
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
}
]
}
Once attached, you can:
src/mcp/primitives/essential/tools/create-model.tool.ts)Example: Set a breakpoint in create-model.tool.ts at line 119, then ask Claude to create a new model. The debugger will pause at your breakpoint!
Note: The debugger stays attached as long as Claude Desktop is running. You can detach/reattach anytime without restarting Claude Desktop.
npm run build # Build the project (compile TypeScript to JavaScript)
npm run start:dev:stdio # STDIO mode with watch (auto-rebuild)
npm run start:dev:http # HTTP mode with watch (auto-rebuild)
npm run type-check # Run TypeScript type checking
npm run lint # Run ESLint
npm run mcpb:bundle # Sync version, clean, build, and create MCPB bundle
Test the npm package locally before publishing:
# 1. Create local package
npm run pack:local # Builds and creates @ankimcp/anki-mcp-server-*.tgz
# 2. Install globally from local package
npm run install:local # Installs from ./@ankimcp/anki-mcp-server-*.tgz
# 3. Test the command
ankimcp # Runs HTTP server on port 3000
# 4. Uninstall when done testing
npm run uninstall:local # Removes global installation
How it works:
npm pack creates a .tgz file identical to what npm publish would create.tgz simulates what users get from npm install -g ankimcpnpm test # Run all tests
npm run test:unit # Run unit tests only
npm run test:tools # Run tool-specific tests
npm run test:workflows # Run workflow integration tests
npm run test:e2e # Run end-to-end tests
npm run test:cov # Run tests with coverage report
npm run test:watch # Run tests in watch mode
npm run test:debug # Run tests with debugger
npm run test:ci # Run tests for CI (silent, with coverage)
The project maintains 70% minimum coverage thresholds for:
Coverage reports are generated in the coverage/ directory.
This project follows Semantic Versioning with a pre-1.0 development approach:
0.x.x - Beta/Development versions (current phase)
1.0.0 - First stable release
Current Status: 0.19.0 - Active beta development. Recent features include batch note creation (addNotes), integrated ngrok tunneling (--ngrok flag), media file management, model/template management, and comprehensive deck statistics. APIs may change based on feedback and testing.
This project targets Anthropic's MCPB bundle specification, which is still evolving. We track the spec at https://github.com/modelcontextprotocol/mcpb and may introduce breaking changes to stay compliant. Breaking changes are permitted under the 0.x.x versioning scheme.
If you're exploring Anki MCP integrations, here are other projects in this space:
Why this project differs:
Use case: If you need a solid foundation for building advanced Anki integrations or plan to extend functionality significantly, this project's architectural approach makes it easier to maintain and scale over time.
This project is licensed under the MIT License — see LICENSE for the full text.
Copyright © 2026 Anatoly Tarnavsky.
Anki® is a registered trademark of Ankitects Pty Ltd. This project is an unofficial third-party tool and is not affiliated with, endorsed by, or sponsored by Ankitects Pty Ltd. The Anki logo is used under the alternative license for referencing Anki with a link to https://apps.ankiweb.net. For the official Anki application, visit https://apps.ankiweb.net.
Model Context Protocol (MCP) is an open standard by Anthropic. The MCP logo is from the official MCP documentation repository and is used under the MIT License. For more information about MCP, visit https://modelcontextprotocol.io.
This is an independent project that bridges Anki and MCP technologies. All trademarks, service marks, trade names, product names, and logos are the property of their respective owners.
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
English-first Korean equity intelligence MCP — DART filings, foreign-holder 5%-rule flows, activist filings, KRX news. F
Unity MCP acts as a bridge between AI assistants and your Unity Editor. Give your LLM tools to manage assets, control sc
0
via CLI