使用说明
MCP服务器 Anki
中文文档 | 英语
一个模型上下文协议(MCP)服务器,它作为Anki与AI工具之间的桥梁,实现智能卡片管理和学习辅助。
💡(灯泡图标,常用于表示想法、创意或灵感) 兼容性这台服务器与……一起工作 任何兼容MCP的人工智能工具 包括Claude Code、Cline、Zed AI等。在本文档中,我们以Claude Code为例进行说明,但其他工具的设置过程类似。
🌟 特点
- 📚 书籍或书本的符号,可直接翻译为“书”或“书籍”,在具体语境中也可保持符号形式以表示书籍的概念。 甲板管理获取牌组列表,查看牌组统计数据
- 🔍(放大镜图标,常用于表示搜索、查看细节等动作) 卡片搜索使用Anki的高级查询语法搜索卡片
- 加号 智能创作利用AI辅助创建和管理Anki卡片
- ✏️ 一支笔 卡片编辑更新现有卡片的字段和内容
- 🗑️(垃圾桶) 卡片删除删除不需要的卡片和便签
- 📊(表格/数据图表) 数据分析获取学习统计数据和进度信息
- 🔧 修理工具、螺丝刀等工具的符号,常用于表示需要修理或维护的物品或场景。 模板管理查看和使用不同的笔记类型
📋 前提条件
- Anki 桌面版 - 下载Anki
- AnkiConnect 插件 - 在Anki中安装(代码:
2055492159) - Node.js - 版本16或更高
- 与MCP兼容的AI工具 - 例如:
- 克劳德·科德
- 克林(Cline,人名,具体翻译可能因语境而异,此处为音译)
- Zed AI(泽德人工智能)
- 任何其他支持MCP的工具
🚀 快速入门
1. 安装AnkiConnect
在Anki中:
- 工具 → 插件 → 获取插件
- 输入代码:
2055492159 - 重启Anki
2. 配置您的MCP客户端
以下示例使用的是Claude Code,但其他MCP兼容工具的配置方式类似。
选项A:使用命令行
# For Claude Code
claude mcp add anki -- npx mcp-server-anki
# For other tools, consult their documentation for the equivalent command
选项B:手动配置
将服务器添加到您的MCP客户端配置文件中:
{
"mcp": {
"servers": {
"anki": {
"command": "npx",
"args": ["mcp-server-anki"]
}
}
}
}
📖 使用指南
基本工作流程
- 启动Anki - 确保Anki已启用AnkiConnect并正在运行
- 启动MCP服务器 - 由Claude Code自动启动
- 使用AI工具 - 通过Claude代码与Anki进行交互
示例对话
User: Show me the learning progress for my "English Vocabulary" deck
Claude: I'll check the statistics for your "English Vocabulary" deck...
[Calls get_deck_stats tool]
User: Create a new English word card for "ephemeral"
Claude: I'll create this word card for you...
[Calls add_note tool]
🛠️ 可用工具
| 工具名称 | 描述 | 参数 |
|---|---|---|
get_deck_names |
获取所有牌组名称 | 无 |
get_cards_in_deck |
从特定牌组中获取卡片 | deckName |
get_deck_stats |
获取牌组统计数据 | deckName |
search_cards |
搜索卡片 | query |
add_note |
添加新笔记 | deckName, modelName, fields, tags |
update_note |
更新现有备注字段 | noteId, fields |
get_note_info |
获取详细的笔记信息 | noteId |
delete_notes |
删除一个或多个备注 | noteIds |
get_models |
获取所有笔记类型 | 无 |
get_model_fields |
获取笔记类型字段 | modelName |
🏗️ 项目结构
mcp-server-anki/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── ankiConnect.ts # AnkiConnect API client
│ └── tools/ # MCP tool definitions
│ ├── deckTools.ts # Deck-related tools
│ ├── cardTools.ts # Card-related tools
│ └── noteTools.ts # Note-related tools
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md
🔧 开发
构建命令
# Development mode (watch for changes)
npm run dev
# Production build
npm run build
建筑学
Claude Code (MCP Client) ←→ Anki MCP Server ←→ AnkiConnect ←→ Anki Desktop
API 文档
获取牌组名称
获取所有牌组名称的列表。
返回值:
["Default", "English Vocabulary", "Programming"]
搜索卡片(query)
使用Anki查询语法搜索卡片。
参数:
queryAnki查询字符串(例如。,deck:English is:due)
查询语法示例:
deck:DeckName- 特定甲板tag:TagName- 按标签is:due- 两张牌is:new- 新卡片added:7- 最近7天内添加的卡片
添加备注
在Anki中添加一个新的笔记。
参数:
deckName目标牌组名称modelName笔记类型(例如,“基础”、“填空”)fields字段内容对象tags标签数组(可选)
示例:
{
"deckName": "English Vocabulary",
"modelName": "Basic",
"fields": {
"Front": "ephemeral",
"Back": "lasting for a very short time"
},
"tags": ["vocabulary", "adjective"]
}
更新说明
更新现有笔记中的字段。
参数:
noteId要更新的笔记的IDfields具有字段名和新值的对象
示例:
{
"noteId": 1234567890,
"fields": {
"Back": "lasting for an extremely short time"
}
}
获取笔记信息
获取特定笔记的详细信息。
参数:
noteId要查询的笔记的ID
返回值:
{
"noteId": 1234567890,
"modelName": "Basic",
"fields": {
"Front": "ephemeral",
"Back": "lasting for a very short time"
},
"tags": ["vocabulary", "adjective"]
}
删除笔记
删除一个或多个备注。
参数:
noteIds要删除的笔记ID数组
示例:
{
"noteIds": [1234567890, 9876543210]
}
🔧 从源代码构建
如果您想为服务器做贡献或进行自定义:
# Clone the repository
git clone https://github.com/here-tunan/mcp-server-anki.git
cd mcp-server-anki
# Install dependencies
npm install
# Build TypeScript
npm run build
要使用本地构建的Claude Code,请进行以下配置:
{
"mcp": {
"servers": {
"anki": {
"command": "node",
"args": ["/path/to/mcp-server-anki/dist/index.js"]
}
}
}
}
🤝 贡献(或“参与贡献”)
欢迎提出问题和提交拉取请求!
📄 许可证
Apache许可证
🔗 链接
❓ 常见问题解答(FAQ)
问:AnkiConnect 连接失败了?
A: 确保Anki正在运行,并且已安装并启用了AnkiConnect插件。默认端口是8765。
问:如何自定义笔记类型?
A: 在Anki中创建自定义笔记类型后,使用 get_models 并且 get_model_fields 查看可用字段的工具。
问:支持移动设备吗?
A: 目前仅支持桌面版Anki,因为依赖于AnkiConnect。
用心打造,献给Anki学习者和AI爱好者
