Anki卡片管理服务

一个通过AnkiConnect连接Anki并检索'leech'标签卡片的MCP服务器,为Claude Desktop提供卡片数据分析功能。

  • by captain-blue210
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 captain-blue210/anki-mcp-server

使用说明

Anki MCP服务器

Claude Desktop的MCP(模型上下文协议)服务器,通过AnkiConnect连接到Anki并检索水蛭标记的卡。

特性

  • 通过AnkiConnect API连接到Anki
  • 检索带有“水蛭”标签的卡片
  • 在卡片上添加带有日期戳的审核标签
  • 提供全面的卡片数据供Claude分析
  • 可与Claude Desktop配合使用

先决条件

安装

  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 启用模拟模式进行测试(真/假) false

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

查找AnkiConnect的本地IP地址

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

ANKI_CONNECT_URL=http://YOUR_LOCAL_IP:8765

要查找您的本地IP地址:

  • macOS:打开终端并运行 ifconfig 或 ipconfig getifaddr en0 (适用于WiFi)
  • 视窗:打开命令提示符并运行 ipconfig
  • Linux:打开终端并运行 ip addr show 或 hostname -I

查找IPv4地址,如 192.168.x.x 或 10.x.x.x 在输出中。

测试配置

为了进行测试,需要一个单独的配置文件 .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. 确保Anki在安装了AnkiConnect的情况下运行
  2. 运行MCP服务器:
    npm start
    

配置Claude桌面

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

  1. 打开克劳德桌面

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

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  3. 将以下配置添加到 mcpServers 章节:

{
  "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服务器检索您的水蛭卡并对其进行分析。

可用工具

get_leach_cards

从Anki检索标记为水蛭的卡片。

参数:

  • detailed (可选,布尔值,默认值:true):是返回综合卡数据还是仅返回ID
  • count (可选,数字):要返回的随机卡数(默认为所有卡)

tag_reviewed_cards

在指定卡片上添加带有日期戳的“已审核”标签。这允许您跟踪您与Claude一起审核的卡片。

参数:

  • card_ids (必填,数字数组):根据审查结果标记的卡ID数组
  • custom_tag_prefix (可选,字符串,默认值:“垂直”):标签的自定义前缀

标签将采用以下格式 見直し::YYYYMMDD (或指定您的自定义前缀)。

Claude中的示例用法:

I've reviewed these cards, please tag them as reviewed: [1234567890, 1234567891]

故障排除

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

测试模式

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

  1. 集 ANKI_MOCK_MODE=true 在你的 .env 文件或使用提供的 .env.test 文件
  2. 使用以下命令运行服务器 npm run start:test

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

发展

要在热重新加载的开发模式下运行服务器,请执行以下操作:

npm run dev

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

npm run dev:test

许可证

麻省理工学院