captain-blue210
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
安装
-
克隆此仓库:
git clone https://github.com/yourusername/anki-mcp-server.git
cd anki-mcp-server -
安装依赖项:
npm install
-
构建项目:
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: 打开终端并运行
ifconfig或ipconfig getifaddr en0(对于 WiFi) - Windows: 打开命令提示符并运行
ipconfig - Linux: 打开终端并运行
ip addr show或hostname -I
在输出中查找类似于 192.168.x.x 或 10.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
使用
-
确保已安装 AnkiConnect 的 Anki 正在运行
-
运行 MCP 服务器:
npm start
配置 Claude Desktop
要将此 MCP 服务器与 Claude Desktop 一起使用:
-
打开 Claude Desktop
-
编辑位于以下位置的 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%Claudeclaude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
在
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): 是否返回全面的卡片数据或仅返回 IDcount(可选, 数字): 要返回的随机卡片数量(默认为所有卡片)
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进行连接:- 如配置部分所述,找到您的本地IP地址
- 更新您的
.env文件以使用ANKI_CONNECT_URL=http://YOUR_LOCAL_IP:8765 - 确保AnkiConnect配置允许从您的IP地址进行连接
- 在进行这些更改后重新启动MCP服务器
- 标签未出现 - 确保您向
tag_reviewed_cards工具提供了有效的卡片ID
测试模式
为了在不影响实际Anki数据的情况下进行测试,您可以使用模拟模式:
- 在您的
.env文件中设置ANKI_MOCK_MODE=true或使用提供的.env.test文件 - 使用
npm run start:test运行服务器
在模拟模式下,服务器将模拟所有Anki操作而不会实际连接到Anki。这对于测试Claude集成非常有用,而不会导致数据更改的风险。
开发
要在开发模式下运行服务器并启用热重载:
npm run dev
对于启用模拟模式的开发:
npm run dev:test
许可证
MIT