关于 Yanki MCP Server ( Yet Another Anki MCP Server )
Yanki 通过 Anki-Connect 将 MCP 客户端连接到本地 Anki 桌面应用,支持复习和创建卡片,并按日期整理新卡片。
主要功能
- 01获取待复习和新卡片
- 02搜索当前牌组中的卡片
- 03记录复习答案和难度评分
- 04在按日期划分的牌组中创建卡片
- 05配置基础牌组名称
适用场景
- 01获取待学习的卡片
- 02复习后提交答案
- 03按创建日期整理新卡片
MCP 相关
向 MCP 客户端提供 Anki 卡片搜索资源以及复习和创建工具,并通过 Anki-Connect 访问本地 Anki 应用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| answers | array | 否 |
详细介绍
Yanki MCP Server(又一个 Anki MCP Server)
一个 Model Context Protocol 服务实现,可连接到本地运行的 Anki,提供卡片复习和创建功能。此项目是 scorzeth/anki-mcp-server 的分支版本,增加了按日期组织的功能。
可作为 npm 包使用:yanki-mcp-server
此服务旨在与 Anki 桌面应用和 Anki-Connect 插件配合使用。
使用前请确保已安装该插件。
资源
- anki://search/deckcurrent
- 返回当前牌组中的所有卡片
- 等同于 Anki 中的
deck:current
- anki://search/isdue
- 返回等待学习的复习和学习中的卡片
- 等同于 Anki 中的
is:due
- anki://search/isnew
- 返回所有未见过的卡片
- 等同于 Anki 中的
is:new
工具
-
update_cards
- 将指定卡片 ID 的卡片标记为已作答,并为其设置 1(重来)到 4(简单)的难度评分
- 输入:
answers(数组):包含对象的数组,对象包含cardId(数字)和ease(数字)字段
-
add_card
- 在按日期组织的牌组中创建新卡片(格式:
DECK::YYYY::MM::DD) - 输入:
front(字符串):卡片正面back(字符串):卡片背面
- 在按日期组织的牌组中创建新卡片(格式:
-
get_due_cards
- 返回当前到期复习的 n 张卡片
- 输入:
num(数字):卡片数量
-
get_new_cards
- 返回 n 张新卡片
- 输入:
num(数字):卡片数量
安装与使用
无需安装即可通过 npx 使用此包:
npx yanki-mcp-server
也可以全局安装:
npm install -g yanki-mcp-server
yanki-server
开发
克隆代码仓库并安装依赖:
git clone https://github.com/htlin222/yanki-mcp-server.git
cd yanki-mcp-server
npm install
构建服务:
npm run build
在开发过程中启用自动重新构建:
npm run watch
在开发过程中直接运行服务:
npm run dev
配置
要在 Claude Desktop 中使用,请添加服务配置:
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"yanki-mcp-server": {
"command": "npx",
"args": ["yanki-mcp-server"],
"env": {
"DECK": "Default"
}
}
}
}
调试
由于 MCP 服务通过 stdio 通信,调试可能会比较困难。我们建议使用 MCP Inspector,它可通过包脚本运行:
npm run inspector
Inspector 会提供一个 URL,可在浏览器中访问调试工具。
按日期组织卡片
此服务会自动按日期结构组织新卡片,而不是采用传统的按主题组织方式。创建新卡片时,卡片会添加到以下格式的牌组中:
DECK::YYYY::MM::DD
其中:
DECK是基础牌组名称(默认值为 "00_Inbox",也可通过环境变量配置)YYYY是 4 位年份MM是 2 位月份DD是 2 位日期
按日期组织的优势
- 轻松整理:卡片会按创建日期自动整理,无需手动分类
- 时间背景:复习特定时间段内创建的卡片(例如,在课程或项目期间)
- 自然的间隔重复:卡片会自然地按你学习概念的时间分组
- 节省时间:无需花时间决定每张卡片属于哪个类别
- 历史记录:查看自己的学习历程
配置
你可以在 MCP 服务配置中设置 DECK 环境变量,自定义基础牌组名称:
"env": {
"DECK": "YourCustomDeckName"
}
如果未指定,默认值为 "00_Inbox"。
更新日志
1.0.5 (2025-05-31)
- 完全移除所有控制台输出和日志记录功能
- 通过移除所有非必要输出简化代码库
- 确保 MCP 协议通信完全干净,没有多余输出
- 移除所有与日志记录相关的文件系统操作
1.0.4 (2025-05-31)
- 修复日志目录路径被创建在文件系统根目录的严重问题
- 改进日志系统,加入稳健的错误处理和回退机制
- 确保日志始终相对于当前工作目录创建
- 为日志记录添加静默失败机制,防止日志记录失败时破坏 MCP 协议
1.0.3 (2025-05-31)
- 通过将所有控制台输出重定向到日志文件,修复 MCP 通信协议问题
- 添加基于文件的日志记录系统,以保留所有调试和状态信息
- 日志存储在
logs目录中,文件名按日期命名 - 确保 stdout 通信干净,以符合 MCP JSON-RPC 协议规范
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。