AnkiConnect连接服务

通过MCP协议将Claude对话与AnkiConnect连接,实现间隔重复学习功能,包括获取到期卡片、提交复习结果等。

  • by samefarrar
  • Python
  • 本地部署
  • 13 星标
  • 更新于
在 GitHub 查看 samefarrar/mcp-ankiconnect

使用说明

mcp连接mcp服务器

通过MCP将Claude对话与AnkiConnect连接起来,使间隔重复变得像“让我们浏览一下今天的抽认卡”或“为此制作抽认卡“一样简单

组件

工具

服务器实现了以下工具:

  • num_cards_due_today:获取今天到期的卡片数量

    • 可选的 deck 按特定甲板过滤的参数
    • 返回所有牌组或指定牌组的到期卡计数
  • get_due_cards:获取到期待审核的卡片

    • 可选的 limit 参数(默认值:5)用于控制卡片数量
    • 可选的 deck 按特定甲板过滤的参数
    • 可选的 today_only 参数(默认值:true)仅显示今天的卡片
    • 返回XML格式的卡片,其中包含问题和答案
  • submit_reviews:提交已审核卡片的答案

    • 获取列表 reviews 随着 card_id 和 rating
    • 评分:“错误”、“困难”、“良好”、“容易”
    • 返回已提交评论的确认
  • inspect_cards:查看给定卡ID或钞票ID的每张卡状态(暂停、缓解、间隔、日程安排、可选审核历史)。

  • update_note_fields:修改一个注释字段的文本内容。使用与相同的MathJax/代码转换 add_note.

  • update_note_tags:在一个或多个笔记上添加和/或删除标签。

  • set_suspended:暂停或取消暂停一张或多张卡。

  • change_deck:将卡片(按卡片ID)移动到另一副牌中。

  • reschedule_cards:设置到期日,忘记或重新学习一张或多张卡片。

配置

先决条件

  • Anki一定在跑步 AnkiConnect插件 已安装(插件id 2055492159) 由于AppSleep功能,AnkiConnect在Mac上可能会很慢,因此请为Anki禁用它。为此,请在终端中运行以下命令。
    defaults write net.ankiweb.dtop NSAppSleepDisabled -bool true
    defaults write net.ichi2.anki NSAppSleepDisabled -bool true
    defaults write org.qt-project.Qt.QtWebEngineCore NSAppSleepDisabled -bool true
    

安装

快速入门

  1. 在Anki中安装AnkiConnect插件:

    • 工具>附加组件>获取附加组件。..
    • 输入代码: 2055492159
    • 重新启动Anki
  2. 配置Claude桌面:

    在MacOS上: ~/Library/Application\ Support/Claude/claude_desktop_config.json 在Windows上: %APPDATA%/Claude/claude_desktop_config.json

    添加此配置:

    {
      "mcpServers": {
        "mcp-ankiconnect": {
          "command": "uv",
          "args": ["run", "--with", "mcp-ankiconnect", "mcp-ankiconnect"]
        }
      }
    }
    
  3. 重新启动Anki和Claude桌面

调试

由于MCP服务器在stdio上运行,调试可能具有挑战性。为了达到最佳调试效果 经验,我们强烈建议使用 MCP检查员. 首先,克隆存储库并安装依赖项:

git clone https://github.com/samefarrar/mcp-ankiconnect.git
cd mcp-ankiconnect
uv sync

您可以通过MCP CLI启动MCP检查器:

uv run mcp dev mcp_ankiconnect/server.py

启动后,检查器将显示一个URL,您可以在浏览器中访问该URL以开始调试。