关于 flashdeck
flashdeck 是用于通过本地 Anki 和 AnkiConnect 学习及管理闪卡的 MCP 服务和命令行工具。它涵盖复习操作,以及牌组、笔记、标签和集合统计管理。
主要功能
- 01复习到期卡片并评分
- 02列出和创建牌组
- 03创建、搜索、更新和删除笔记
- 04管理笔记标签和类型
- 05查看牌组及集合统计
- 06与 AnkiWeb 同步
适用场景
- 01复习指定牌组中的到期卡片
- 02在 Anki 中添加或批量创建笔记
- 03查找笔记并更新字段
- 04查看学习和集合统计
MCP 相关
MCP 服务提供卡片复习、牌组、笔记、标签、笔记类型、同步和统计工具。它需要 Anki 与 AnkiConnect 插件正在运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
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_cards | deck?、include_answer? | 获取到期卡片,可选按牌组筛选;除非请求,否则不返回答案。 |
get_cards | deck?、state?、include_answer? | 按状态(到期/新卡/学习中/已暂停/已埋藏)和牌组筛选卡片。 |
present_card | card_id | 展示卡片的问题/正面。 |
rate_card | card_id、ease (1-4) | 对卡片评分为 Again/Hard/Good/Easy,并安排下一次复习。 |
listDecks | include_stats? | 列出牌组,可选包含各牌组的统计信息。 |
deckStats | deck | 查看一个牌组的统计信息。 |
createDeck | deck | 创建牌组(Parent::Child,最多 2 层)。 |
addNote | deck_name、model_name、fields、tags? | 创建一条笔记。 |
addNotes | deck_name、model_name、notes | 批量创建笔记,最多 100 条。 |
findNotes | query | 使用 Anki 查询语法搜索笔记。 |
notesInfo | notes | 获取笔记详情。 |
updateNoteFields | note_id、fields | 更新笔记字段。 |
deleteNotes | notes、confirm? | 删除笔记;未设置 confirm: true 时会拒绝操作。 |
getTags | — | 获取所有标签。 |
addTags | notes、tags | 为笔记添加标签。 |
removeTags | notes、tags | 移除笔记上的标签。 |
modelNames | — | 列出笔记类型。 |
modelFieldNames | model_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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。