mcpField
A
Anki

Anki

本地服务
github.com/nietus科研与教育443 周前更新

关于 Anki

anki-mcp 是通过 AnkiConnect 管理 Anki 记忆卡组的 MCP 服务,提供 35 个工具。用户可在对话中复习、查看学习统计、找出反复遗忘的卡片,并批量创建、编辑或暂停卡片。

主要功能

  1. 01通过对话进行卡片测验,结果写回 Anki
  2. 02查看到期数量、连续学习天数与复习统计
  3. 03查找 leech 卡片并查看复习历史
  4. 04批量添加笔记,并跳过重复项
  5. 05按标签或牌组暂停卡片,之后可精确恢复
  6. 06可选的 Azure 文本转语音音频生成

适用场景

  1. 01每天查看待复习卡片并开始一轮测验
  2. 02整理反复答错的卡片并批量修正内容
  3. 03将文章转换为填空卡片并加入指定牌组

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 Anki 的学习、卡片、笔记、牌组与笔记类型相关的工具、资源和提示词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbanki-mcp.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

anki-mcp

tests License: MIT

通过与 Claude(或任何 MCP 客户端)对话,学习和管理你的 Anki 集合。借助 AnkiConnect,使用 35 个工具:在聊天中进行测验,查看待复习内容和记忆情况,找出总是忘记的卡片,批量创建和清理笔记,以及暂停整组卡片,直到你想恢复它们。

观看视频

你可以这样提问

  • “我今天要学习什么?”→ 按牌组统计待复习数量、连续学习天数和本周复习次数。
  • “用我的西班牙语牌组里的 10 张待复习卡片考考我。”→ 一次一道题,自动评分,并将结果和下次复习间隔记录到 Anki。
  • “我总是答错哪些卡片?帮我改进一下。”→ 找出难记卡片及其复习记录,并提供你确认后采用的改写内容。
  • “暂停所有带有 HSK5 标签的内容,直到我考试,并让我之后能轻松恢复。”→ 创建命名暂停,精确恢复这些卡片,同时保留原有排程。
  • “把这篇文章转换成我生物学牌组里的填空卡片。”→ 批量添加前检查重复项。
  • “给这个牌组里所有没有音频的卡片添加音频。”→ 批量使用 Azure TTS。
  • “把带有 grammar 标签的卡片移到新的子牌组”/“将 todo 标签重命名为 review”/“把积压的复习内容分摊到接下来两周”。

批量更改可以先通过试运行预览;删除操作始终需要确认;如果 Anki 已关闭,助手会提示你打开 Anki,而不是默默失败。

安装

你需要 Node.js 18+、正在运行的 Anki,以及 AnkiConnect 插件(代码 2055492159)。

Claude Desktop

从最新版本下载 anki-mcp.mcpb,并将其拖到设置 → 扩展中。就这么简单。

Claude Code
claude mcp add anki --scope user -- npx -y github:nietus/anki-mcp
Cursor 和其他 MCP 客户端

将以下内容添加到客户端的 MCP 配置中:

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["-y", "github:nietus/anki-mcp"]
    }
  }
}

在 Windows 上,如果客户端无法直接启动 npx,请使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "github:nietus/anki-mcp"]。

从源代码安装
git clone https://github.com/nietus/anki-mcp
cd anki-mcp
npm install
npm run build

然后将客户端指向 node /path/to/anki-mcp/build/client.js。要自行构建 Claude Desktop 安装包,请运行 npm run pack:mcpb(输出位于 dist/anki-mcp.mcpb)。

配置

所有环境变量均为可选项。将它们放入项目文件夹中的 .env 文件,或通过 MCP 客户端传入。

变量默认值用途
AZURE_API_KEY–启用音频工具(Azure Text-to-Speech)。
AZURE_REGIONeastusAzure Speech 区域。
ANKI_CONNECT_HOSThttp://127.0.0.1AnkiConnect 主机。
ANKI_CONNECT_PORT8765AnkiConnect 端口。
ANKI_CONNECT_KEY–AnkiConnect API 密钥(如果你在插件配置中设置了密钥)。

开发

npm test           # unit + in-memory MCP server tests (no Anki needed)
npm run inspector  # try the tools interactively

可用工具

每个工具都标注为只读、写入或破坏性操作,因此 Claude Desktop 等客户端可以自动批准读取操作,并在进行破坏性更改前询问。错误(包括“Anki 未运行”)都会以易读的工具结果返回。

大多数批量工具都以相同方式选择卡片或笔记:deckName(包括子牌组)、tags(匹配任意标签)、query(任意 Anki 搜索,条件之间使用 AND),或明确指定 cardIds/noteIds。写入工具支持 dryRun: true,可先预览更改。

学习
工具功能
get_study_overview各牌组今天的新卡、学习卡和复习卡数量、今天已复习的卡片数、连续学习天数,以及 7 天/30 天总计。
get_due_cards / get_new_cards获取 num 张待学习卡片(可选指定一个 deckName),并显示每个按钮会设置的间隔。
answer_cards记录答案(cardId、ease 1-4),并获取每张卡片的新间隔。(之前名为 update_cards。)
find_leeches找出最薄弱的卡片(带有 leech 标签或多次遗忘),并按遗忘次数和难度排序。
get_card_history最多 20 张卡片的完整复习记录。
get_retention_stats统计某个牌组在 N 天内的真实记忆保留率(新卡/成熟卡)、每日复习次数和耗时。
undo撤销 Anki 中的上一个操作。
选择和安排卡片
工具功能
find_cards分页搜索(query、limit、offset);使用 include 选择要返回的部分:question、answer、fields、stats。
suspend_cards / unsuspend_cards停用/重新启用卡片,例如停用牌组 Y 中所有带有标签 X 的卡片。保留卡片的排期。停用时传入 label(笔记会添加标签 paused::<label>),之后调用 unsuspend_cards { label } 可准确恢复该组卡片,不会影响因其他原因而停用的卡片。
move_cards将卡片移至 targetDeck(若不存在则创建)。
reschedule_cardsset_due_date(days:0、1!、3-7)、forget(重置为新卡)或 relearn。
创建和编辑笔记
工具功能
add_card创建一条笔记。
add_bulk创建多条笔记;跳过重复或无效的笔记,并说明原因。
add_cloze_cards根据文本和要隐藏的 terms 创建填空笔记,或根据带有 {{c1::...}} 标记的文本创建。
update_note_fields / bulk_update_notes编辑现有笔记的字段。
find_and_replace在笔记中进行普通文本或正则表达式替换,可选限制在某些 fields 中。
manage_tagslist(带筛选条件:标签计数)、add、remove、rename、clear_unused。
add_image从 url、本地 path 或 base64 data 向字段添加图片。
delete_notes两步删除:首次调用会预览并返回 confirmToken,第二次调用时传入该令牌即可删除。
音频(需要 AZURE_API_KEY)
工具功能
add_card_with_audio创建一条笔记,并将根据 sourceField 生成的音频写入 audioField。
update_card_with_audio为一条现有笔记生成音频。
bulk_generate_audio为多条笔记生成音频(默认仅处理音频字段为空的笔记),每次调用最多处理 limit 条。

支持的语言:en、es、fr、de、it、ja、ko、pt、pt-PT、ru、zh、ar、nl、hi、tr、pl、sv、fi、da、no、cs、hu、el、he、th、vi、id、ms、ro。

牌组和笔记类型
工具功能
get_deck_names / create_deck列出或创建牌组。
get_deck_model_info查看牌组使用的笔记类型(向该牌组添加卡片前调用)。
get_model_names / get_model_details列出笔记类型/字段,查看单个笔记类型的模板和 CSS。
edit_note_type_fieldadd、remove、rename 或 reposition 字段。
update_note_type_templates / update_note_type_styling替换模板或 CSS。
create_model创建笔记类型。
sync与 AnkiWeb 同步。

提示词

提示词功能
quiz_me学习环节:一次一道题,评分后记录到 Anki。
make_cards将文本转换为独立的闪卡(添加前可预览)。
leech_review找出你总是记不住的卡片并加以改进。

资源

  • anki://collection/overview – 学习概览。
  • anki://search/isdue、anki://search/isnew、anki://search/deckcurrent – 每项最多 50 张卡片。
  • anki://deck/{deckName}/overview – 单个牌组的待复习数量。
  • anki://model/{modelName} – 笔记类型的字段、模板和 CSS。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。