Anki MCP Server
Create Anki flashcards using natural language by connecting to the AnkiConnect add-on.
anki-mcp-server
Read this in other languages: English, 한국어
A Model Context Protocol (MCP) server that connects Claude and Anki, allowing you to create, manage, and enrich flashcard decks through natural language — without ever opening the Anki UI.
Requirements
- Python 3.9 or higher
- Anki 2.1.x or higher
- AnkiConnect add-on
- Claude Desktop (or any MCP-compatible client)
Installation
1. Set up Anki and AnkiConnect
- Install Anki.
- Install the AnkiConnect add-on:
- In Anki, go to
Tools > Add-ons > Get Add-ons - Enter code
2055492159and click OK - Restart Anki
- In Anki, go to
- Verify it works by visiting
http://localhost:8765— you should seeAnkiConnect v.6.
2. Install anki-mcp-server
git clone https://github.com/dhkim0124/anki-mcp-server.git
cd anki-mcp-server
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
3. Configure Claude Desktop
Edit your Claude Desktop config file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"anki-mcp": {
"command": "python",
"args": ["/absolute/path/to/anki_server.py"]
}
}
}
Usage
With Anki running in the background, you can ask Claude things like:
- "Create a Python deck with Code style and add 10 cards about decorators"
- "Show me my decks and their stats"
- "Search for cards tagged 'sql' and update the one about indexes"
- "Create a custom dark-mode deck with fields: Word, Definition, Example, Audio"
- "Upload this image and attach it to a new card in my Biology deck"
- "Sync my collection with AnkiWeb"
The server guides the conversation — it asks clarifying questions about deck, style, and card type before creating anything, and always asks for confirmation before destructive operations.
Available Tools
Deck Management
| Tool | Description |
|---|---|
list_decks | List all decks with stats (total, new, due, learning cards) |
create_deck | Create a new deck (supports nested decks with ::) |
delete_deck | Delete a deck — requires explicit confirmation |
Card Operations
| Tool | Description |
|---|---|
create_card | Create a single Basic card (front/back) |
create_card_batch | Create multiple cards in one call |
create_card_custom | Create a card using a custom note type, with optional audio/image attachments |
search_cards | Search using Anki's query syntax (tags, text, deck filters) |
update_card | Edit fields and tags of an existing card |
delete_cards | Delete one or more cards — requires explicit confirmation |
Note Types & Styling
| Tool | Description |
|---|---|
create_note_type | Create a custom note type with chosen fields, CSS style, and HTML templates |
get_note_types | List all available note types and their fields |
update_note_type_style | Update the CSS of an existing note type |
update_note_type_template | Update the HTML templates of an existing note type |
Media & Sync
| Tool | Description |
|---|---|
add_media | Upload an image or audio file (base64) to Anki's media folder |
sync_anki | Sync your local collection with AnkiWeb |
Style Templates
Four built-in styles are available via the style parameter in create_note_type:
| Style | Key | Best for |
|---|---|---|
| Default | "default" | General use |
| Duolingo | "duolingo" | Language learning, gamified feel |
| Dark Mode | "dark" | Night studying, reduced eye strain |
| Code | "code" | Programming, algorithms |
| Custom | "custom" | Full control — you provide the CSS |
For custom style, describe what you want in natural language and Claude generates the CSS:
"Dark blue background, mint green accents, smooth fade-in animation"
All custom CSS is validated to block javascript: URLs, <script> tags, and inline event handlers before being sent to Anki.
Project Structure
anki-mcp-server/
├── anki_server.py # MCP tool definitions and AnkiConnect client
├── config.py # Constants: URL, API version, media limits
├── instructions.py # LLM system instructions for conversational behavior
├── templates.py # Built-in CSS themes, CSS validation, HTML generators
└── tests/
├── test_anki_server.py # Tests for all tools (mocked AnkiConnect)
└── test_templates.py # Tests for template logic and CSS validation
Running Tests
pip install pytest pytest-asyncio
pytest tests/ -v
All tests mock AnkiConnect via httpx — no running Anki instance required.
Troubleshooting
- Anki must be open: The MCP server requires Anki to be running.
- AnkiConnect not responding: Visit
http://localhost:8765to confirm it's active. - Windows firewall: You may need to allow Anki through the firewall for AnkiConnect to work.
- Restart everything: If issues persist, restart Anki, Claude Desktop, and re-check the config file path.
Contributing
Fork the repository and open a pull request. Contributions are welcome in:
- New card types or template styles
- Additional language support
- Interface and UX improvements
- Documentation
License
MIT License — see LICENSE for details.
相关服务器
Kone.vc
赞助Monetize your AI agent with contextual product recommendations
LinkMCP
Hosted MCP server for LinkedIn. 25 tools: profiles, messages, search, post engagement, company data, enrichment.
OSHA Compliance Assistant
Check workplace safety compliance against OSHA General Industry standards (29 CFR 1910) with cited regulation sections and corrective actions.
Mila MCP
Create, read, update docs, spreadsheets, and presentations via AI — 23 MCP tools for a full office suite with 74K+ users.
medical-denial-codes
Reference lookup for medical claim denial codes and standard resubmission strategies.
GenieACS MCP
MCP server that exposes GenieACS TR-069 ACS instances to LLMs for device management, firmware downloads, and parameter reads
ZenHub
Access the ZenHub GraphQL API to manage project workflows and enhance productivity.
Feishu/Lark OpenAPI
Connect AI agents with the Feishu/Lark platform for automation, including document processing, conversation management, and calendar scheduling.
Blender AI MCP
Modular MCP Server + Blender Addon for AI-Driven 3D Modeling.
mpesa-mcp
MCP server for M-Pesa (Safaricom Daraja) and Africa's Talking APIs. Gives AI coding assistants — Claude Code, Cursor, GitHub Copilot — direct access to East African payment and SMS infrastructure from a single server. What it does: STK Push payments via Safaricom Daraja (triggers M-Pesa prompt on user's phone) Transaction status queries SMS to 20+ African telecom networks via Africa's Talking Airtime top-up across East and West Africa Safety: All 5 tools are annotated per MCP 2025-03-26 spec — payment and SMS tools declare destructiveHint: true, so Claude Desktop and other clients show confirmation dialogs before executing. Query tools declare readOnlyHint: true for auto-approval. Install: pip install mpesa-mcp Who it's for: Developers building AI agents for East African markets. M-Pesa handles ~$50B/year in transactions and reaches 50M+ users. Africa's Talking reaches 300M+ phones across 20+ telecoms.
Breezing
Breezing MCP server providing access to the Breezing API: read and update transactions, wallets, assets, and balances across 40+ blockchains and 15+ exchanges. Categorize transactions by mapping contra accounts from the chart of accounts, manage balance sheet mappings, and prepare data for syncing to Xero or QuickBooks.