关于 anki
这是一个通过 `anki-mcp-server` 集成创建和管理 Anki 抽认卡的技能,涵盖牌组、笔记、标签与搜索工作流。
主要功能
- 01创建单条或批量笔记
- 02管理牌组和标签
- 03搜索并查看笔记
- 04检查笔记类型和字段
- 05更新或删除笔记
适用场景
- 01将学习材料整理成抽认卡
- 02按层级组织笔记牌组
- 03查找并修改已有卡片
MCP 相关
通过 `anki-mcp-server` MCP 集成访问 Anki,并提供创建、搜索和管理牌组及笔记的工具。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nailuogg/ anki-mcp-server --skill anki安装后在 Claude Code 中输入/anki确认已加载。
详细介绍
Anki MCP Server Skill
通过 anki-mcp-server MCP 集成创建和管理 Anki 闪卡。
前提条件
- Anki 桌面应用正在运行
- 已安装 AnkiConnect 插件(默认端口 8765)
- 已在 Claude 中配置 MCP 服务:
{
"mcpServers": {
"anki": {
"command": "npx",
"args": ["-y", "anki-mcp-server"]
}
}
}
**注意:**不要使用
.mcpb打包版本——它会向 stdout 输出 Electron 元数据,从而破坏 MCP stdio 协议。
快速参考
| 目标 | 工具 | 关键参数 |
|---|---|---|
| 检查连接 | anki_check_connection | — |
| 列出所有牌组 | anki_list_decks | — |
| 创建牌组 | anki_create_deck | name |
| 列出所有标签 | anki_list_tags | — |
| 添加笔记标签 | anki_add_note_tags | noteId 或 noteIds、tags |
| 移除笔记标签 | anki_remove_note_tags | noteId 或 noteIds、tags |
| 创建一条笔记 | anki_create_note | type、deck、fields |
| 批量创建笔记 | anki_batch_create_notes | notes[](每批 10–20 条) |
| 搜索笔记 | anki_search_notes | query(Anki 语法)、limit、offset |
| 获取笔记详情 | anki_get_note_info | noteId |
| 更新笔记 | anki_update_note | id、fields、tags |
| 删除笔记 | anki_delete_note | noteId 或 noteIds |
| 列出笔记类型 | anki_list_note_types | — |
| 获取字段名称 | anki_get_note_type_info | modelName |
旧版不带前缀的工具名称仍然可用,但在新工作流中优先使用 anki_* 工具。
核心工作流
从文本/笔记 → 闪卡
- 调用
anki_list_decks确认目标牌组(如有需要则创建) - 调用
anki_get_note_type_info确认所选类型的字段名称 - 提取知识点——每张卡片对应一个概念
- 调用
anki_batch_create_notes(每次调用创建 10–20 条笔记,最多 50 条)
**最少信息原则:**每张卡片只测试一个知识点。
笔记类型
| 类型 | 字段 | 用途 |
|---|---|---|
Basic | Front、Back | 定义、事实、问答 |
Cloze | 使用 {{c1::deletion}} 的 Text | 填空、序列 |
使用自定义笔记类型时,务必先调用 anki_get_note_type_info——字段名称可能不同。
批量创建示例
{
"notes": [
{
"type": "Basic",
"deck": "Programming::Python",
"fields": {
"Front": "What does list comprehension look like in Python?",
"Back": "[expr for item in iterable if condition]"
},
"tags": ["python", "syntax"]
},
{
"type": "Cloze",
"deck": "Programming::Python",
"fields": {
"Text": "In Python, {{c1::def}} defines a function and {{c2::return}} sends back a value."
},
"tags": ["python", "basics"]
}
],
"allowDuplicate": false,
"stopOnError": false
}
搜索语法
deck:Python # Cards in Python deck
tag:重要 is:due # Due cards tagged "重要"
is:new # Unseen cards
note:Basic # Cards using Basic note type
"exact phrase" # Exact text match
标签
使用 anki_list_tags 查看现有标签。对于仅修改元数据的操作,优先使用 anki_add_note_tags 和 anki_remove_note_tags;只有在要替换完整标签列表时才使用 anki_update_note。
牌组命名
使用 :: 表示层级:Language::English::Vocabulary、CS::Algorithms::Sorting
常见错误
| 错误 | 修正方法 |
|---|---|
未先调用 anki_get_note_type_info | 使用自定义类型创建笔记前,务必检查字段名称 |
| 每批超过 50 条笔记 | 拆分为多次调用,每次 10–20 条 |
使用 .mcpb 文件 | 改用 npx -y anki-mcp-server |
| Anki 未运行 | 启动 Anki,并确认 AnkiConnect 已激活 |
| 字段名称错误 | 字段名称区分大小写——使用 anki_get_note_type_info 进行确认 |
评论
支持 Markdown