c

captain-blue210

@captain-blue210/anki-mcp-server
0 Stars 305 次浏览 captain-blue210 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "anki": {
      "args": [
        "path/to/anki-mcp-server/dist/index.js"
      ],
      "command": "node"
    }
  }
}

服务介绍

Anki MCP 服务器

一个用于 Claude Desktop 的 MCP(Model Context Protocol)服务器,通过 AnkiConnect 连接到 Anki 并检索带有 leech 标签的卡片。

功能

  • 通过 AnkiConnect API 连接到 Anki
  • 检索带有 "leech" 标签的卡片
  • 为卡片添加带有日期戳的复习标签
  • 为 Claude 提供全面的卡片数据以进行分析
  • 可与 Claude Desktop 一起使用

前提条件

  • Anki 已安装并运行
  • 在 Anki 中安装了 AnkiConnect 插件
  • Node.js 和 npm

安装

  1. 克隆此仓库:

    git clone https://github.com/yourusername/anki-mcp-server.git
    cd anki-mcp-server

  2. 安装依赖项:

    npm install

  3. 构建项目:

    npm run build

配置

服务器可以通过环境变量进行配置。复制提供的示例文件来创建您自己的配置:

cp .env.example .env

然后编辑 .env 文件来自定义您的设置:

环境变量 描述 默认值
ANKI_CONNECT_URL Anki Connect API 的 URL http://localhost:8765
ANKI_CONNECT_VERSION 要使用的 Anki Connect API 版本 6
ANKI_MOCK_MODE 启用模拟模式进行测试 (true/false) false

如果未设置环境变量,服务器将使用默认值。

查找本地 IP 地址以用于 AnkiConnect

如果连接到 localhost 不起作用,您需要使用计算机的本地 IP 地址。在 .env 文件中配置如下:

ANKI_CONNECT_URL=http://YOUR_LOCAL_IP:8765

要查找本地 IP 地址:

  • macOS: 打开终端并运行 ifconfigipconfig getifaddr en0(对于 WiFi)
  • Windows: 打开命令提示符并运行 ipconfig
  • Linux: 打开终端并运行 ip addr showhostname -I

在输出中查找类似于 192.168.x.x10.x.x.x 的 IPv4 地址。

测试配置

为了测试,提供了一个单独的配置文件 .env.test

cp .env.example .env.test

编辑 .env.test 以设置特定于测试的值:

ANKI_CONNECT_URL=http://localhost:8765
ANKI_CONNECT_VERSION=6
ANKI_MOCK_MODE=true

要在测试模式下运行:

npm run start:test

使用

  1. 确保已安装 AnkiConnect 的 Anki 正在运行

  2. 运行 MCP 服务器:

    npm start

配置 Claude Desktop

要将此 MCP 服务器与 Claude Desktop 一起使用:

  1. 打开 Claude Desktop

  2. 编辑位于以下位置的 Claude Desktop 配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%Claudeclaude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  3. mcpServers 部分添加以下配置:

json
{
"mcpServers": {
"anki": {
"command": "node",
"args": ["path/to/anki-mcp-server/dist/index.js"]
}
}
}

"path/to/anki-mcp-server" 替换为您克隆此仓库的实际路径。

MCP 工具使用

配置完成后,您可以在 Claude 中使用以下工具:

示例用法

Could you analyze my Anki leech cards and suggest ways to improve my study?

Claude 将使用 MCP 服务器检索您的 leech 卡片并对其进行分析。

可用工具

get_leech_cards

从 Anki 检索标记为 leech 的卡片。

参数:

  • detailed (可选, 布尔值, 默认: true): 是否返回全面的卡片数据或仅返回 ID
  • count (可选, 数字): 要返回的随机卡片数量(默认为所有卡片)

tag_reviewed_cards

为指定的卡片添加带有日期戳的 "reviewed" 标签。这允许您跟踪哪些卡片已经使用 Claude 复习过。

参数:- card_ids (required, 数组 of 数字): 要标记为已复习的卡片ID数组

  • custom_tag_prefix (optional, 字符串, 默认: "見直し"): 标签的自定义前缀

标签的格式将为 見直し_YYYYMMDD(如果您指定了自定义前缀,则使用您的自定义前缀)。

在Claude中的示例用法:

我已经复习了这些卡片,请将它们标记为已复习: [1234567890, 1234567891]

故障排除

  • "无法连接到Anki" - 确保Anki正在运行并且AnkiConnect已正确安装
  • "未找到任何leech卡片" - 您在Anki中没有任何被标记为"leech"的卡片
  • 与localhost的连接问题 - 如果您无法使用localhost进行连接:
    1. 如配置部分所述,找到您的本地IP地址
    2. 更新您的.env文件以使用 ANKI_CONNECT_URL=http://YOUR_LOCAL_IP:8765
    3. 确保AnkiConnect配置允许从您的IP地址进行连接
    4. 在进行这些更改后重新启动MCP服务器
  • 标签未出现 - 确保您向tag_reviewed_cards工具提供了有效的卡片ID

测试模式

为了在不影响实际Anki数据的情况下进行测试,您可以使用模拟模式:

  1. 在您的.env文件中设置 ANKI_MOCK_MODE=true 或使用提供的 .env.test 文件
  2. 使用 npm run start:test 运行服务器

在模拟模式下,服务器将模拟所有Anki操作而不会实际连接到Anki。这对于测试Claude集成非常有用,而不会导致数据更改的风险。

开发

要在开发模式下运行服务器并启用热重载:

npm run dev

对于启用模拟模式的开发:

npm run dev:test

许可证

MIT

相关 MCP 服务