mcpField
A
anki

anki

github.com/nailuogg生产力25241 次安装2 天前更新
代码仓库

关于 anki

这是一个通过 `anki-mcp-server` 集成创建和管理 Anki 抽认卡的技能,涵盖牌组、笔记、标签与搜索工作流。

主要功能

  1. 01创建单条或批量笔记
  2. 02管理牌组和标签
  3. 03搜索并查看笔记
  4. 04检查笔记类型和字段
  5. 05更新或删除笔记

适用场景

  1. 01将学习材料整理成抽认卡
  2. 02按层级组织笔记牌组
  3. 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 闪卡。

前提条件

  1. Anki 桌面应用正在运行
  2. 已安装 AnkiConnect 插件(默认端口 8765)
  3. 已在 Claude 中配置 MCP 服务:
{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["-y", "anki-mcp-server"]
    }
  }
}

**注意:**不要使用 .mcpb 打包版本——它会向 stdout 输出 Electron 元数据,从而破坏 MCP stdio 协议。

快速参考

目标工具关键参数
检查连接anki_check_connection—
列出所有牌组anki_list_decks—
创建牌组anki_create_deckname
列出所有标签anki_list_tags—
添加笔记标签anki_add_note_tagsnoteId 或 noteIds、tags
移除笔记标签anki_remove_note_tagsnoteId 或 noteIds、tags
创建一条笔记anki_create_notetype、deck、fields
批量创建笔记anki_batch_create_notesnotes[](每批 10–20 条)
搜索笔记anki_search_notesquery(Anki 语法)、limit、offset
获取笔记详情anki_get_note_infonoteId
更新笔记anki_update_noteid、fields、tags
删除笔记anki_delete_notenoteId 或 noteIds
列出笔记类型anki_list_note_types—
获取字段名称anki_get_note_type_infomodelName

旧版不带前缀的工具名称仍然可用,但在新工作流中优先使用 anki_* 工具。

核心工作流

从文本/笔记 → 闪卡
  1. 调用 anki_list_decks 确认目标牌组(如有需要则创建)
  2. 调用 anki_get_note_type_info 确认所选类型的字段名称
  3. 提取知识点——每张卡片对应一个概念
  4. 调用 anki_batch_create_notes(每次调用创建 10–20 条笔记,最多 50 条)

**最少信息原则:**每张卡片只测试一个知识点。

笔记类型
类型字段用途
BasicFront、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