mcpField
A
Anki MCP

Anki MCP

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

关于 Anki MCP

Anki MCP 将 Anki 收藏集接入 AI 助手,适合希望通过对话学习和管理闪卡的用户。它支持测验、卡片维护、学习分析及媒体处理。

主要功能

  1. 01创建、搜索和批量编辑闪卡
  2. 02开展测验并管理复习安排
  3. 03查看学习统计与复习记录
  4. 04管理牌组、笔记类型和模板
  5. 05检索卡片中的图像与音频

适用场景

  1. 01按复习间隔进行词汇测验
  2. 02从讲义内容制作间隔重复卡片
  3. 03分析牌组中的薄弱主题
  4. 04批量整理标签并移动卡片

MCP 相关

该 MCP 服务通过 AnkiConnect 连接 Anki,向兼容客户端提供闪卡、牌组、学习分析及媒体等操作工具。

配置

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

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

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

安装包
npm@arielbk/anki-mcp0.3.2

工具

25

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

参数类型必填说明
operationenum是要执行的闪卡操作create | create_batch | update | delete | find | get_info | add_tags | remove_tags | clear_empty
deckNamestring否牌组名称(用于创建操作)
modelNamestring否笔记类型/模型名称(用于创建操作)
fieldsobject否用于创建/更新的字段名-值对
tagsarray否要添加、移除或设置的标签
notesarray否要创建的备注数组(用于 create_batch)
noteIdnumber否备注 ID(用于更新/删除单条备注)
noteIdsarray否备注 ID(用于批量删除)
querystring否Anki 搜索查询(用于 find 操作)
includeDetailsboolean否包含备注详细信息(用于 find)
limitnumber否返回结果的最大数量(默认值:50,建议设置以防止上下文溢出)
offsetnumber否分页时要跳过的结果数量(默认值:0)
cardIdsarray否要获取信息的卡片 ID

详细介绍

🧠 Anki MCP

NPM Package anki-mcp License: MIT
Anki MCP server

借助 AI,焕新你的 Anki 闪卡体验!这个 MCP(Model Context Protocol) 服务将你的 Anki 闪卡收藏与 Claude 等 AI 助手连接起来,让你能围绕学习材料进行自然对话。

🚀 你可以做什么?

想象一下,拥有一位了解你全部闪卡收藏的 AI 家教,它可以:

📚 互动式学习
  • “考考我 3 天没见过的日语词汇。”
  • “测试我医学牌组中的难题卡片。”
  • “展示我最近一直难以掌握的卡片。”
✨ 智能内容创作
  • “制作关于光合作用并带有图示的闪卡。”
  • “将这份 PDF 章节转换成间隔重复卡片。”
  • “根据我的讲义笔记生成填空删除卡片。”
🔍 强大的分析功能
  • “我最难掌握哪些主题?”
  • “展示我上个月的学习规律。”
  • “不同卡片类型的记忆保留率是多少?”
🎯 批量操作
  • “为我所有的化学卡片添加 ‘exam-prep’ 标签。”
  • “将记忆保留率较低的卡片移到强化复习牌组。”
  • “查找并修复不同牌组中的重复卡片。”

🎯 功能特性

  • 🎯 智能工具设计:专为 AI Agent 打造的直观、高层级工具
  • 💬 自然对话:像和学习伙伴聊天一样,与 Claude 讨论你的闪卡
  • ⚡ 极速响应:高效操作,不会拖慢你的 AI 助手
  • 📦 批量操作:通过简单命令一次更新数千张卡片
  • 📊 学习洞察:深入分析你的学习进度和规律
  • 🎨 丰富媒体:全面支持卡片中的图像、音频及其他媒体
  • 🔍 强大的搜索功能:通过自然语言使用 Anki 的高级搜索语法
  • 🔒 稳定可靠:使用完整类型的 TypeScript,并提供全面的错误处理

🛠 技术栈

  • Node.js:运行时环境(需要 18+)
  • TypeScript:类型安全和开发体验
  • MCP SDK:Model Context Protocol 实现
  • yanki-connect:🙏 类型完整、同构的 AnkiConnect API 客户端
  • tsup:快速的 TypeScript 打包工具
  • PNPM:高效的包管理器

特别感谢 yanki-connect 库提供强大的 AnkiConnect 接口,为此集成提供支持!

📋 前置条件

1. 安装 Anki

如果你尚未安装,请下载并安装 Anki。

2. 安装 AnkiConnect 插件
  1. 打开 Anki
  2. 前往 工具 → 插件
  3. 点击 获取插件...
  4. 输入代码:2055492159
  5. 重启 Anki

**📋 版本要求:**此服务需要 AnkiConnect 版本 25.2.25.0 或更高版本(于 2025-02-25 发布),才能完全兼容。大多数功能可在较旧版本中使用,但我们建议更新以获得最佳体验。

3. 配置 AnkiConnect(可选)

AnkiConnect 开箱即用,但你可以自定义设置:

  1. 前往 工具 → 插件
  2. 选择 AnkiConnect 并点击 配置
  3. 默认设置通常适用于大多数用户

🚀 快速开始

选项 1:与 Claude Desktop 配合使用(推荐)
  1. 安装软件包

    npm install -g @arielbk/anki-mcp
    
  2. 配置 Claude Desktop

    编辑 Claude Desktop 配置文件:

    macOS:~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%\Claude\claude_desktop_config.json

    添加以下配置:

    {
      "mcpServers": {
        "anki": {
          "command": "anki-mcp",
          "args": []
        }
      }
    }
    
  3. 重启 Claude Desktop

  4. 开始使用!

    • 确保 Anki 正在运行,并已启用 AnkiConnect
    • 向 Claude 提问:“Show me my Anki decks” 或 “Quiz me with 5 cards”

💡 专业提示: 你可以向 Claude 提出简单问题来测试设置,例如 “How many Anki decks do I have?” 或 “What's in my largest deck?”

选项 2:开发环境设置
  1. 克隆代码库

    git clone https://github.com/arielbk/anki-mcp.git
    cd anki-mcp
    
  2. 安装依赖项

    pnpm install
    
  3. 构建项目

    pnpm build
    
  4. 测试服务

    # Use the MCP inspector to test functionality
    pnpm inspect
    
选项 3:与其他 MCP 客户端配合使用

此服务适用于任何兼容 MCP 的客户端。你也可以将其用于:

  • MCP Inspector:交互式调试工具
  • Cline:用于 AI 编码的 VS Code 扩展
  • 自定义 MCP 客户端:使用 MCP SDK 构建自己的客户端

对于 stdio 传输,运行:

node dist/index.js

对于 localhost HTTP(Streamable HTTP)传输,运行:

node dist/index.js --http --host=127.0.0.1 --port=3000
# The MCP endpoint will be at http://127.0.0.1:3000/mcp

支持 Streamable HTTP 的客户端可以直接连接。旧版 SSE 客户端仍可能通过客户端回退机制正常工作。

🎮 使用示例

在 Claude Desktop 中完成配置后,你可以进行如下自然对话:

📖 学习会话
You: "I have a Japanese exam tomorrow. Can you quiz me on Hiragana cards I haven't reviewed in a week?"

Claude: I'll find your Hiragana cards that need review and start a quiz session...
📝 内容创建
You: "Create flashcards for the major battles of World War II with dates and significance"

Claude: I'll create comprehensive flashcards covering the key WWII battles...
📊 学习分析
You: "How am I doing with my medical terminology deck? Show me my weak areas."

Claude: Let me analyze your performance on the medical terminology deck...
🏷️ 整理
You: "Tag all cards about cardiovascular system with 'cardiology' and move them to my MCAT prep deck"

Claude: I'll help you organize those cards...

🔧 可用工具

此服务提供 7 个直观的工具,涵盖你所需的一切:

📝 管理闪卡

创建、更新、删除和搜索闪卡。非常适合内容创建、批量更新和整理。

🎯 学习会话

开展交互式测验、管理卡片的复习计划,并跟踪需要复习的卡片。

📚 管理牌组

创建和整理牌组、移动卡片以及配置牌组设置。

📊 获取分析数据

深入了解学习统计数据、复习历史和学习模式。

🎨 管理模型

自定义笔记类型、添加字段、修改模板以及设置卡片样式。

🔧 Anki 操作

处理同步、媒体文件、导入/导出及其他实用操作。

🖼️ 获取媒体文件

从 Anki 收藏中获取媒体文件(图片、音频等)。AI 助手可以直接分析图片(但图片不会显示在 UI 中)。

💡 专业提示: 许多操作都支持分页,以避免占用过多上下文窗口。处理大量结果时,请使用 limit 和 offset 参数。

🛠 开发

# Run in development mode with auto-reloading
pnpm dev

# Lint the code
pnpm lint

# Format the code
pnpm format

# Test with MCP inspector
pnpm inspect

🔧 配置

AnkiConnect 设置

此服务默认连接到 localhost:8765 上的 AnkiConnect。如果你自定义了 AnkiConnect 配置,可能需要调整连接设置。

重要:使用 MCP 服务前,请确保 Anki 正在运行且已安装 AnkiConnect。如果无法访问 AnkiConnect,服务将无法连接。

💡 注意: 底层的 yanki-connect 库支持在 macOS 上自动启动 Anki,但此功能目前未在 MCP 服务配置中开放。你需要手动启动 Anki。

Claude Desktop 高级配置

对于高级用户,可以传入其他参数:

{
  "mcpServers": {
    "anki": {
      "command": "anki-mcp",
      "args": ["--verbose"],
      "env": {
        "ANKI_CONNECT_HOST": "localhost",
        "ANKI_CONNECT_PORT": "8765"
      }
    }
  }
}
故障排除

常见问题:

  • “Failed to connect to AnkiConnect”:确保 Anki 正在运行且已安装 AnkiConnect 插件
  • “No decks found”:确保 Anki 中至少有一个牌组
  • Claude 没有响应:更改配置后重启 Claude Desktop
  • 权限错误:使用 npm list -g @arielbk/anki-mcp 检查全局 npm 安装是否成功

🤝 贡献

欢迎参与贡献!请:

  1. Fork 此代码库
  2. 创建功能分支
  3. 进行更改
  4. 视情况添加测试
  5. 提交拉取请求

📜 许可证

MIT - 详情请参见 LICENSE 文件。

🙏 致谢


借助 AI 驱动的对话,焕新你的闪卡体验!🚀

评论

支持 Markdown

第一次接触 MCP?

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

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