mcpField
F
flashdeck

flashdeck

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

关于 flashdeck

flashdeck 是用于通过本地 Anki 和 AnkiConnect 学习及管理闪卡的 MCP 服务和命令行工具。它涵盖复习操作,以及牌组、笔记、标签和集合统计管理。

主要功能

  1. 01复习到期卡片并评分
  2. 02列出和创建牌组
  3. 03创建、搜索、更新和删除笔记
  4. 04管理笔记标签和类型
  5. 05查看牌组及集合统计
  6. 06与 AnkiWeb 同步

适用场景

  1. 01复习指定牌组中的到期卡片
  2. 02在 Anki 中添加或批量创建笔记
  3. 03查找笔记并更新字段
  4. 04查看学习和集合统计

MCP 相关

MCP 服务提供卡片复习、牌组、笔记、标签、笔记类型、同步和统计工具。它需要 Anki 与 AnkiConnect 插件正在运行。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-flashdeck": {
"command": "npx",
"args": [
"-y",
"@reneturcios/flashdeck"
]
}
}
}
启动命令npx -y @reneturcios/flashdeck

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/flashdeck0.1.0
ocighcr.io/cloudcorprecords/flashdeck:0.1.0

工具

20

收录的工具列表 · 更新于 1 周前

此工具无需参数。

详细介绍

flashdeck

flashdeck 让 Agent 通过运行 AnkiConnect 的本地 Anki 实例学习和管理 Anki 闪卡。它涵盖复习流程(到期卡片、展示卡片、评分)、牌组、笔记、标签、笔记类型和集合统计信息——这是原始 Anki MCP 规范中记录的 53 个工具里带标签的核心子集,共 20 个工具。

必须运行 Anki,并安装 AnkiConnect 插件。默认情况下,flashdeck 会连接到 http://127.0.0.1:8765;设置 ANKICONNECT_URL 可指定其他地址。

安装

npx @reneturcios/flashdeck check

或者运行容器镜像:

docker run -i ghcr.io/cloudcorprecords/flashdeck

容器默认启动 MCP 服务。传入 CLI 参数即可将其用作命令行工具。请注意,容器仍需能够通过网络访问主机上的 AnkiConnect 端点。

命令行工具

flashdeck check           # probe AnkiConnect (deck list on success)
flashdeck decks           # list decks
flashdeck due [deck]      # due cards, optionally for one deck
flashdeck stats [deck]    # deck stats, or collection stats with no deck
flashdeck tags            # all tags
flashdeck models          # all note types
flashdeck sync            # sync with AnkiWeb
flashdeck --version

大多数命令都接受 --json。退出代码:0 表示成功,1 表示错误(消息会指出 AnkiConnect 或验证问题),2 表示用法错误。

MCP 服务

npx -y @reneturcios/flashdeck mcp

MCP 客户端配置:

{
  "mcpServers": {
    "flashdeck": {
      "command": "npx",
      "args": ["-y", "@reneturcios/flashdeck", "mcp"]
    }
  }
}
工具
工具输入功能
sync—与 AnkiWeb 同步。
get_due_cardsdeck?、include_answer?获取到期卡片,可选按牌组筛选;除非请求,否则不返回答案。
get_cardsdeck?、state?、include_answer?按状态(到期/新卡/学习中/已暂停/已埋藏)和牌组筛选卡片。
present_cardcard_id展示卡片的问题/正面。
rate_cardcard_id、ease (1-4)对卡片评分为 Again/Hard/Good/Easy,并安排下一次复习。
listDecksinclude_stats?列出牌组,可选包含各牌组的统计信息。
deckStatsdeck查看一个牌组的统计信息。
createDeckdeck创建牌组(Parent::Child,最多 2 层)。
addNotedeck_name、model_name、fields、tags?创建一条笔记。
addNotesdeck_name、model_name、notes批量创建笔记,最多 100 条。
findNotesquery使用 Anki 查询语法搜索笔记。
notesInfonotes获取笔记详情。
updateNoteFieldsnote_id、fields更新笔记字段。
deleteNotesnotes、confirm?删除笔记;未设置 confirm: true 时会拒绝操作。
getTags—获取所有标签。
addTagsnotes、tags为笔记添加标签。
removeTagsnotes、tags移除笔记上的标签。
modelNames—列出笔记类型。
modelFieldNamesmodel_name获取笔记类型的字段名称。
collection_stats—集合汇总统计信息。

牌组统计信息在本地根据各状态的卡片搜索结果计算;不假定存在统计信息端点。Anki 未运行时,工具会返回错误,并指出失败的 AnkiConnect 请求,而不是返回空结果。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, fake fetch only, no live Anki
npm run dev     # run the CLI from source via tsx

许可证

MIT — 详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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