Anki MCP Server
About
Interact with Anki flashcard software using LLMs via the AnkiConnect add-on.
Explore
- 16 tools for Anki operations (deck, note, tag, sync management)
- Readable resources exposing decks, tags, and note type schemas
- Supports AnkiConnect at default or custom ports
- Legacy unprefixed tool names remain for backward compatibility
- Automated CI/CD publishing to NPM and MCP Registry
- Packaged as a Desktop Extension (.mcpb) for one-click Claude Desktop install
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Anki MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
1. Anki installed on your system
2. AnkiConnect add-on installed in Anki
3. Node.js 20.11 or newer
This repository supports Anthropic Desktop Extensions (MCPB). The easiest way to use this server in Claude Desktop is by installing the packaged .mcpb bundle.
1. Generate the .mcpb file locally using the provided script:
npm run mcpb
2. Open Claude Desktop Settings → Extensions and drag the generated .mcpb file in, then click Install.
This validates manifest.json and outputs a .mcpb archive you can install as above. Learn more about Desktop Extensions in Anthropic's announcement: Desktop Extensions: One-click MCP server installation for Claude Desktop.
Add the server to your claude_desktop_config.json:
{
"mcpServers": {
"anki": {
"command": "npx",
"args": ["--yes", "anki-mcp-server"]
}
}
}
Add the server to your Cline MCP settings file inside VSCode's settings cline_mcp_settings.json
{
"mcpServers": {
"anki": {
"command": "npx",
"args": ["--yes", "anki-mcp-server"]
}
}
}
curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.1.0/mcp-publisher_1.1.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
chmod +x mcp-publisher
sudo mv mcp-publisher /usr/local/bin/
1. Create a new deck:
Create a new Anki deck called "Programming"
2. Add a basic card:
Create an Anki card in the "Programming" deck with:
Front: What is a closure in JavaScript?
Back: A closure is the combination of a function and the lexical environment within which that function was declared.
3. Add a cloze deletion card:
Create a cloze card in the "Programming" deck with:
Text: In JavaScript, {{c1::const}} declares a block-scoped variable that cannot be {{c2::reassigned}}.
4. Delete a single note:
Delete note ID 1234567890
5. Delete multiple notes at once:
Delete note IDs 1234567890, 9876543210, and 1122334455
6. Add tags to notes:
Add tags "review" and "mcp" to note IDs 1234567890 and 9876543210
anki_check_connection
Check whether AnkiConnect is reachable
anki_list_decks
List all available Anki decks, optionally with deck IDs
anki_create_deck
Create a new Anki deck
anki_list_tags
List all tags currently used in the collection
anki_add_note_tags
Add tags to one or more notes
anki_remove_note_tags
Remove tags from one or more notes
anki_create_note
Create a new note
anki_batch_create_notes
Create multiple notes at once
anki_search_notes
Search for notes using Anki query syntax
anki_get_note_info
Get detailed information about a note
anki_update_note
Update an existing note's fields and/or tags
anki_delete_note
Delete one or multiple notes
anki_list_note_types
List all available note types
anki_create_note_type
Create a new note type
anki_get_note_type_info
Get detailed structure of a note type
anki_sync
Trigger AnkiWeb sync (fire-and-forget; success means Anki accepted the request, not that AnkiWeb received the data; a blocking dialog in Anki can silently keep the sync queued)
- anki_check_connection - Check whether AnkiConnect is reachable
- anki_list_decks - List all available Anki decks, optionally with deck IDs
- anki_create_deck - Create a new Anki deck
- anki_list_tags - List all tags currently used in the collection
- anki_add_note_tags - Add tags to one or more notes
- anki_remove_note_tags - Remove tags from one or more notes
- anki_create_note - Create a new note
- anki_batch_create_notes - Create multiple notes at once
- anki_search_notes - Search for notes using Anki query syntax
- anki_get_note_info - Get detailed information about a note
- anki_update_note - Update an existing note's fields and/or tags
- anki_delete_note - Delete one or multiple notes
- anki_list_note_types - List all available note types
- anki_create_note_type - Create a new note type
- anki_get_note_type_info - Get detailed structure of a note type
- anki_sync - Trigger AnkiWeb sync (fire-and-forget; success means Anki accepted the request, not that AnkiWeb received the data; a blocking dialog in Anki can silently keep the sync queued)
Legacy unprefixed tool names such as create_note and list_decks remain callable for existing clients, but new agent integrations should use the anki_* names.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"anki mcp server": {
"anki-mcp-server": {
"command": "npx",
"args": [
"skills",
"add",
"nailuoGG/anki-mcp-server@anki"
]
}
}
}
}
McpServers
{
"anki-mcp-server": {
"command": "npx",
"args": [
"skills",
"add",
"nailuoGG/anki-mcp-server@anki"
]
}
}
A Model Context Protocol (MCP) server that enables LLMs to interact with Anki flashcard software through AnkiConnect.
![]()
Features
Tools
- anki_check_connection - Check whether AnkiConnect is reachable
- anki_list_decks - List all available Anki decks, optionally with deck IDs
- anki_create_deck - Create a new Anki deck
- anki_list_tags - List all tags currently used in the collection
- anki_add_note_tags - Add tags to one or more notes
- anki_remove_note_tags - Remove tags from one or more notes
- anki_create_note - Create a new note
- anki_batch_create_notes - Create multiple notes at once
- anki_search_notes - Search for notes using Anki query syntax
- anki_get_note_info - Get detailed information about a note
- anki_update_note - Update an existing note's fields and/or tags
- anki_delete_note - Delete one or multiple notes
- anki_list_note_types - List all available note types
- anki_create_note_type - Create a new note type
- anki_get_note_type_info - Get detailed structure of a note type
- anki_sync - Trigger AnkiWeb sync (fire-and-forget; success means Anki accepted the request, not that AnkiWeb received the data; a blocking dialog in Anki can silently keep the sync queued)
Legacy unprefixed tool names such as create_note and list_decks remain callable for existing clients, but new agent integrations should use the anki_* names.
Resources
- anki://decks/all - Complete list of available decks with deck IDs
- anki://tags/all - Complete list of tags
- anki://note-types/all - List of all available note types
- anki://note-types/all-with-schemas - Detailed structure information for all note types
- anki://note-types/{modelName} - Detailed structure information for a specific note type
Prerequisites
1. Anki installed on your system
2. AnkiConnect add-on installed in Anki
3. Node.js 20.11 or newer
Configuration
Install via Desktop Extension (.mcpb)
This repository supports Anthropic Desktop Extensions (MCPB). The easiest way to use this server in Claude Desktop is by installing the packaged .mcpb bundle.
1. Generate the .mcpb file locally using the provided script:
npm run mcpb
2. Open Claude Desktop Settings → Extensions and drag the generated .mcpb file in, then click Install.
This validates manifest.json and outputs a .mcpb archive you can install as above. Learn more about Desktop Extensions in Anthropic's announcement: Desktop Extensions: One-click MCP server installation for Claude Desktop.
Usage with Claude Desktop
Add the server to your claude_desktop_config.json:
{
"mcpServers": {
"anki": {
"command": "npx",
"args": ["--yes", "anki-mcp-server"]
}
}
}
Using Custom AnkiConnect Port
If your AnkiConnect is running on a different port, you can specify it using the --port parameter:
{
"mcpServers": {
"anki": {
"command": "npx",
"args": ["--yes", "anki-mcp-server", "--port", "8080"]
}
}
}
Configuration for Cline
Add the server to your Cline MCP settings file inside VSCode's settings cline_mcp_settings.json
{
"mcpServers": {
"anki": {
"command": "npx",
"args": ["--yes", "anki-mcp-server"]
}
}
}
Using Custom AnkiConnect Port
For Cline, you can also specify a custom port:
{
"mcpServers": {
"anki": {
"command": "npx",
"args": ["--yes", "anki-mcp-server", "--port", "8080"]
}
}
}
Agent Skills (Claude Code)
Install the Anki skill to give Claude Code built-in knowledge of all Anki tools and workflows:
npx skills add nailuoGG/anki-mcp-server@anki
Once installed, Claude Code will automatically use the skill when you ask it to create flashcards, manage decks, or batch import notes.
> Note: Do not use the .mcpb packaged version as the MCP server — it outputs Electron metadata to stdout which breaks the MCP stdio protocol. Use npx -y anki-mcp-server instead.
Development
Packaging a Desktop Extension (.mcpb)
Create a distributable Desktop Extension bundle for Claude Desktop:
npm run mcpb
This will build the project and generate a .mcpb archive from the current repository, validating manifest.json. Test by dragging it into Claude Desktop's Extensions settings. Reference: Desktop Extensions: One-click MCP server installation for Claude Desktop.
Publishing to MCP Registry
This server is automatically published to the MCP Registry when a new version is released. The publishing process includes:
1. Automated CI/CD: GitHub Actions automatically publishes to both NPM and MCP Registry on successful releases
2. Schema Validation: The server.json file is validated against the MCP schema before publishing
3. Version Synchronization: Versions are kept in sync between package.json, manifest.json, and server.json
4. Comprehensive Testing: Multi-version Node.js testing, linting, and validation before publishing
5. Beta Support: Automated beta releases for testing new features
Manual Validation
You can validate the MCP server configuration locally:
npm run validate-mcp
This will download the latest MCP schema and validate your server.json file.
Manual Publishing
If you need to publish manually, you can use the MCP Publisher CLI:
```bash
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



