Anki Model Context Protocol (MCP) Server
Anki Model Context Protocol (MCP) Server
一个高性能的 Model Context Protocol (MCP) 服务器,使 Claude Desktop、Claude Code、Antigravity、Codex、Cursor 等 AI 助手能够直接管理 Anki 卡片、牌组、笔记、笔记类型、标签、媒体和搜索。
⚡ 通用基于文件的 I/O 架构
现代卡片(尤其是带有 HTML 标记、语法高亮代码块和 LaTeX 数学公式的卡片)?实际上应为:,这些卡片的负载很大. 通过 JSON-RPC 工具参数流式传输这些内容,或将完整卡片内容直接返回给模型,会导致 token 耗尽、输出被截断以及上下文窗口饱和。
本服务器实现了 通用基于文件的输入和输出(File-Based I/O):
零带内 Token 膨胀: 卡片变更、查询、搜索和架构自省均接受输入 JSON 文件路径,并将完整的结构化输出写入磁盘。
紧凑的遥测响应: 每次工具调用都会返回小型的元数据摘要($< 150$ 个 token),其中包含状态、ID、受影响数量和已解析的
output_file路径。原子批量导入: 可将数百张卡片写入单个 JSON 负载,并在一个原子的 SQLite 事务中毫秒级导入。
跨平台临时存储: 输出默认写入操作系统临时目录(Windows 为
%TEMP%\anki_mcp,Linux/macOS 为/tmp/anki_mcp),可通过ANKI_MCP_OUTPUT_DIR进行覆盖。
Related MCP server: Anki MCP Server
功能
⚡ 快速直连桥接: 通过官方
ankiPython 引擎直接与 Anki 的收藏数据库(collection.anki2)交互,零 HTTP 开销。🔒 非阻塞连接生命周期: 使用按请求的打开/关闭上下文机制(
~2.7ms),因此数据库锁会被立即释放,且不会锁住 Anki Desktop。🪟 跨平台: 原生支持 Windows、macOS 和 Linux,并自动发现标准操作系统位置的收藏集合。
🗂️ 分层牌组: 全面支持嵌套牌组创建(例如
Computer Science::Algorithms::Trees)。📝 丰富的卡片格式: 支持标准/基础卡片、挖空题(
{{c1::...}})、自定义字段以及 LaTeX 数学公式($...$和$$...$$)。🔍 查询引擎: 完全支持 Anki 的搜索语法(
deck:Languages tag:grammar、is:due、added:7、"Recursion")。🏷️ 标签管理: 支持分层标签及批量添加/移除标签。
📦 批量创建: 通过 JSON 负载在单个原子操作中高吞吐量批量添加卡片。
💾 牌组导出: 原生打包为
.apkg、.colpkg和.json。💡 MCP 提示词与资源: 内置资源(
anki://decks、anki://stats)和结构化卡片生成提示词(flashcard_generator)。
安装与设置
本项目使用 uv 来管理快速且可复现的 Python 环境。
克隆并安装
git clone https://github.com/debnath-d/anki-mcp-server.git
cd anki-mcp-server
uv sync运行服务器
uv run anki-mcp-server客户端配置
1. Claude Desktop
将服务器添加到你的 Claude Desktop 配置文件中:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Windows 配置
{
"mcpServers": {
"anki": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\anki-mcp-server",
"run",
"anki-mcp-server"
]
}
}
}macOS / Linux 配置
{
"mcpServers": {
"anki": {
"command": "uv",
"args": [
"--directory",
"/path/to/anki-mcp-server",
"run",
"anki-mcp-server"
]
}
}
}2. Google Antigravity
移除 Antigravity 的 MCP 时,请先进入 Google Antigravity,并打开 MCP 配置文件(~/.gemini/config/mcp_config.json):
{
"mcpServers": {
"anki": {
"command": "uv",
"args": [
"--directory",
"/path/to/anki-mcp-server",
"run",
"anki-mcp-server"
]
}
}
}3. Claude Code / Codex / CLI 客户端
通过 MCP 服务器启动 Claude Code:
claude --mcp-server "uv --directory '/path/to/anki-mcp-server' run anki-mcp-server"可用的 MCP 工具
1. 牌组管理
工具 | 参数 | 说明 |
|
| 列出所有牌组(包括名称、ID 和卡片数量)。将层级写入磁盘并返回摘要。 |
|
| 创建新牌组或子牌组(例如 |
|
| 重命名现有牌组,并更新所有嵌套子牌组的前缀。 |
|
| 删除牌组及其卡片。 |
|
| 按 ID、查询或输入文件将卡片移动到其他牌组。 |
2. 笔记类型(模型)
工具 | 参数 | 说明 |
|
| 将所有可用的笔记类型(例如 |
|
| 将一个笔记类型的详细 schema、字段和模板写入磁盘。 |
3. 卡片与笔记管理(基于文件)
工具 | 参数 | 说明 |
|
| 从 JSON 文件负载创建标准笔记( |
|
| 从 JSON 文件负载创建挖空题卡片( |
|
| 从 JSON 数组文件在单个原子批次中添加多张卡片。 |
|
| 按 ID 获取笔记,并将字段、标签、笔记类型和卡片写入磁盘。 |
|
| 根据 JSON 负载更新现有笔记的字段或标签。 |
|
| 按 ID 列表或 JSON 文件删除笔记及其卡片。 |
4. 媒体、状态控制与导出
工具 | 参数 | 说明 |
|
| 将图片/图表直接复制到 Anki 的媒体存储中,并返回嵌入标签。 |
|
| 按 ID、查询或文件从活动复习队列中挂起卡片。 |
|
| 按 ID、查询或文件恢复被挂起的卡片。 |
|
| 将牌组导出到磁盘上的 |
5. 搜索与发现
工具 | 参数 | 说明 |
|
| 使用 Anki 搜索语法( |
|
| 搜索卡片,并将复习队列、间隔和到期日期写入磁盘。 |
6. 标签管理与统计
工具 | 参数 | 说明 |
|
| 将所有唯一标签写入磁盘。 |
|
| 向指定笔记批量添加标签。 |
|
| 从指定笔记批量移除标签。 |
|
| 返回汇总统计信息(总笔记数、总卡片数、新增/到期卡片、牌组分布)。 |
测试
运行自动化测试套件和 linter:
ruff check .
uv run python -m unittest discover -s tests重要说明与故障排除
SQLite 数据库锁: Anki 使用排他文件锁。在 MCP 服务器执行写入操作期间,必须关闭 Anki 桌面 GUI 应用程序,以防止出现
anki.errors.DBError锁错误。集合路径自动发现:
Windows: 自动在
~/.local/share/Anki2/<Profile>/collection.anki2或~/.local/share/Anki2/<Profile>/collection.anki2中检测。macOS: 自动在
~/Library/Application Support/Anki2/<Profile>/collection.anki2中检测。Linux: 自动在
~/.local/share/Anki2/<Profile>/collection.anki2中检测。如需使用自定义位置,请设置
ANKI_COLLECTION_PATH环境变量。
输出缓存: 默认情况下,工具输出存储在操作系统的临时目录(
%TEMP%\anki_mcp或/tmp/anki_mcp)中。如需使用自定义目录,请设置ANKI_MCP_OUTPUT_DIR环境变量。
Wait, I made an error in the Windows line — I accidentally duplicated the Linux path. Let me correct that:
SQLite 数据库锁: Anki 使用排他文件锁。在 MCP 服务器执行写入操作期间,必须关闭 Anki 桌面 GUI 应用程序,以防止出现
anki.errors.DBError锁错误。集合路径自动发现:
Windows: 自动在
%APPDATA%\Anki2\<Profile>\collection.anki2或%LOCALAPPDATA%\Anki2\<Profile>\collection.anki2中检测。macOS: 自动在
~/Library/Application Support/Anki2/<Profile>/collection.anki2中检测。Linux: 自动在
~/.local/share/Anki2/<Profile>/collection.anki2中检测。如需使用自定义位置,请设置
ANKI_COLLECTION_PATH环境变量。
输出缓存: 默认情况下,工具输出存储在操作系统的临时目录(
%TEMP%\anki_mcp或/tmp/anki_mcp)中。如需使用自定义目录,请设置ANKI_MCP_OUTPUT_DIR环境变量。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables AI assistants to manage Anki flashcard decks and cards through natural language, supporting deck creation, card additions (basic and cloze types), and review queue management.682MIT
- AlicenseNot gradedqualityCmaintenanceEnables interaction with the Anki desktop flashcard application through the Anki-Connect plugin. Supports managing decks, cards, notes, and models, allowing AI assistants to create and query flashcards through natural language.101ISC
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Anki flashcard collections by creating, searching, and updating cards through a standardized interface. It supports media handling, batch operations, and review scheduling via the AnkiConnect add-on.62MIT
- AlicenseAqualityDmaintenanceEnables AI tools to manage Anki flashcards, including deck management, card search, creation, editing, deletion, and statistics.10353Apache 2.0
Related MCP Connectors
AI access to your aNotepad online notes: read, search, write, and organize via 22 tools.
Free: turn your AI chats into spaced-repetition vocabulary. 13 tools, reads and writes.
AI-powered YouTube to flashcards with spaced repetition and Anki export
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/debnath-d/anki-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server