项目简介

这是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为支持 MCP 的 LLM 客户端(如某些 AI 编程助手或智能代理)提供与流行的间隔重复记忆系统 Anki 交互的能力。它通过连接 Anki 的 AnkiConnect 插件,将 Anki 的闪卡和牌组管理功能以标准化的 MCP 资源和工具形式暴露出来,使 LLM 能够读取 Anki 数据、创建/修改闪卡等。

主要功能点

  • 获取闪卡: 可以通过预定义的资源 URI(如获取到期闪卡、获取新闪卡)或自定义 Anki 查询来检索闪卡信息,包括卡片 ID、问题、答案、到期日期等。
  • 闪卡操作: 支持对闪卡进行多种操作,包括回答闪卡(更新 ease)、添加新闪卡、批量添加闪卡、查找闪卡、更新笔记字段、批量更新笔记字段等。
  • 牌组管理: 可以获取所有牌组的名称、创建新牌组。
  • 笔记类型 (Model) 管理: 支持获取所有笔记类型的名称、获取笔记类型的详细信息(字段、模板、样式)、添加/移除/重命名字段、调整字段顺序、更新模板和样式、创建新的笔记类型。
  • 牌组与笔记类型信息: 提供查询指定牌组使用了哪些笔记类型的信息工具。

安装步骤

该服务器需要 Node.js 环境和 Anki Connect 插件。

  1. 确保你的电脑上已安装 Node.js 和 npm。
  2. 确保你的 Anki 应用已安装并正在运行 AnkiConnect 插件。
  3. 从 GitHub 仓库下载或克隆本代码。
  4. 打开终端或命令提示符,进入项目根目录。
  5. 运行以下命令安装依赖:
    npm install
  6. 项目构建(通常 'npm install' 后会自动执行,如需手动执行):
    npm run build
    这会将 TypeScript 代码编译成 JavaScript。

服务器配置 (供 MCP 客户端使用)

本 MCP 服务器通过标准输入输出 (Stdio) 进行通信。要让 MCP 客户端(如 Cursor 编辑器或其他支持 MCP 的 AI 工具)使用此服务器,你需要在客户端的设置中配置服务器的启动命令。

典型的客户端 MCP 服务器配置(例如在 JSON 格式的设置文件中)可能如下所示:

"servers": {
  "anki": {
    // "name" 字段通常与 MCP 服务器自身宣称的名称(如 "anki-server")对应,用于客户端识别
    "name": "anki-server", 
    // "command" 字段指定启动 MCP 服务器进程的可执行文件或命令
    "command": "node",
    // "args" 字段指定传递给启动命令的参数列表。这里是 Node.js 运行编译后的客户端入口文件
    "args": [
      "/c", // (可选,取决于操作系统和 Node.js 版本,Windows 可能需要 /c)
      "node", // (可选,重复 node 命令,具体取决于客户端如何执行 command 和 args)
      "你的/anki-mcp/仓库路径/build/client.js" // 替换为实际的 client.js 文件路径
    ],
    // "capabilities" 字段声明客户端希望从该服务器获取哪些能力,通常设置为 true
    "capabilities": {
        "resources": true,
        "tools": true
    },
    // "transport" 字段指定通信协议,此处为 stdio
    "transport": "stdio"
  }
}

请注意,实际的配置结构和字段名称可能因 MCP 客户端的不同而略有差异,但核心是提供启动 'build/client.js' 脚本的命令和参数。

基本使用方法

配置完成后,支持 MCP 的 LLM 客户端将能够自动发现并连接到 Anki MCP 服务器。用户(或 LLM 代理)可以通过客户端界面或指令调用服务器暴露的工具(如创建闪卡、查找牌组)或读取资源(如获取到期闪卡列表),从而与 Anki 数据和功能进行交互。具体如何调用取决于你使用的 MCP 客户端的实现方式。

信息

分类

生产力应用