Anki
STDIOMCP server enabling LLMs to interact with Anki flashcard software through AnkiConnect integration
MCP server enabling LLMs to interact with Anki flashcard software through AnkiConnect integration
A Model Context Protocol (MCP) server that enables LLMs to interact with Anki flashcard software through AnkiConnect.
![]()
list_decks - List all available Anki deckscreate_deck - Create a new Anki deckcreate_note - Create a new note (Basic or Cloze)batch_create_notes - Create multiple notes at oncesearch_notes - Search for notes using Anki query syntaxget_note_info - Get detailed information about a noteupdate_note - Update an existing notedelete_note - Delete a notelist_note_types - List all available note typescreate_note_type - Create a new note typeget_note_type_info - Get detailed structure of a note typeanki://decks/all - Complete list of available decksanki://note-types/all - List of all available note typesanki://note-types/all-with-schemas - Detailed structure information for all note typesanki://note-types/{modelName} - Detailed structure information for a specific note typeThis repository supports Anthropic Desktop Extensions (MCPB). The easiest way to use this server in Claude Desktop is by installing the packaged .mcpb bundle.
.mcpb file locally using the provided script:npm run pack
.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"] } } }
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"] } } }
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"] } } }
For Cline, you can also specify a custom port:
{ "mcpServers": { "anki": { "command": "npx", "args": ["--yes", "anki-mcp-server", "--port", "8080"] } } }
Create a distributable Desktop Extension bundle for Claude Desktop:
npm run pack
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.
This server is automatically published to the MCP Registry when a new version is released. The publishing process includes:
server.json file is validated against the MCP schema before publishingpackage.json, manifest.json, and server.jsonYou can validate the MCP server configuration locally:
npm run validate-mcp
This will download the latest MCP schema and validate your server.json file.
If you need to publish manually, you can use the MCP Publisher CLI:
# Install MCP Publisher 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/ # Login to MCP Registry mcp-publisher login github-oidc # Publish to MCP Registry mcp-publisher publish
npm install
npm run build
npm run watch
Run the test suite:
npm test
This executes tests for:
Since MCP servers communicate over stdio, we recommend using the MCP Inspector:
npm run inspector
This provides a browser-based interface for:
Create a new Anki deck called "Programming"
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.
Create a cloze card in the "Programming" deck with:
Text: In JavaScript, {{c1::const}} declares a block-scoped variable that cannot be {{c2::reassigned}}.
npm testIcon courtesy of macOS Icons
MIT License - see LICENSE file for details