Anki-MCP服务器

一个连接Claude和Anki的模型上下文协议(MCP)服务器,允许通过自然语言创建、管理和丰富Anki闪卡组,无需打开Anki用户界面。

  • by dhkim0124
  • Python
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 dhkim0124/anki-mcp-server

使用说明

anki mcp服务器

用其他语言阅读: 英语, 韩语

一个连接Claude和Anki的模型上下文协议(MCP)服务器,允许您通过自然语言创建、管理和丰富抽认卡组,而无需打开Anki UI。

需求

  • Python 3.9或更高版本
  • Anki 2.1.x或更高版本
  • AnkiConnect 附加装置
  • Claude Desktop(或任何兼容MCP的客户端)

安装

1.设置Anki和AnkiConnect

  1. 安装 Anki.
  2. 安装AnkiConnect插件:
    • 在安基,去 Tools > Add-ons > Get Add-ons
    • 输入代码 2055492159 然后单击“确定”
    • 重新启动Anki
  3. 通过访问验证其是否有效 http://localhost:8765 --你应该看看 AnkiConnect v.6.

2.安装anki-mcp服务器

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

python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

pip install -r requirements.txt

3.配置克劳德桌面

编辑您的Claude Desktop配置文件:

  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "anki-mcp": {
      "command": "python",
      "args": ["/absolute/path/to/anki_server.py"]
    }
  }
}

用法

当Anki在后台运行时,你可以问Claude一些事情,比如:

  • “创建一个具有代码风格的Python套牌,并添加10张关于装饰器的卡片”
  • “给我看看我的甲板和它们的统计数据”
  • “搜索标记为‘sql’的卡片,并更新关于索引的卡片”
  • 使用以下字段创建自定义暗模式面板:单词、定义、示例、音频
  • “上传此图像并将其附加到我的生物牌中的新卡上”
  • “将我的收藏与AnkiWeb同步”

服务器引导对话——在创建任何内容之前,它会询问有关牌组、风格和卡片类型的澄清问题,并在破坏性操作之前始终要求确认。

可用工具

甲板管理

工具 说明
list_decks 列出所有带有统计数据的牌组(总数、新牌、到期牌、学习卡)
create_deck 创建新甲板(支持嵌套甲板 ::)
delete_deck 删除甲板——需要明确确认

卡操作

工具 说明
create_card 创建一张基本卡(正面/背面)
create_card_batch 在一次通话中创建多张卡
create_card_custom 使用自定义笔记类型创建卡片,并可选择音频/图像附件
search_cards 使用Anki的查询语法(标签、文本、甲板过滤器)进行搜索
update_card 编辑现有卡片的字段和标签
delete_cards 删除一张或多张卡片——需要明确确认

注释类型和样式

工具 说明
create_note_type 使用所选字段、CSS样式和HTML模板创建自定义注释类型
get_note_types 列出所有可用的笔记类型及其字段
update_note_type_style 更新现有注释类型的CSS
update_note_type_template 更新现有笔记类型的HTML模板

媒体与同步

工具 说明
add_media 将图像或音频文件(base64)上传到Anki的媒体文件夹
sync_anki 将您的本地收藏与AnkiWeb同步

样式模板

四种内置样式可通过 style 参数在 create_note_type:

风格 关键 最适合
默认值 "default" 一般用途
Duolingo "duolingo" 语言学习,游戏化的感觉
暗模式 "dark" 夜间学习,减轻眼睛疲劳
代码 "code" 编程、算法
自定义 "custom" 完全控制——你提供CSS

对于 自定义风格,用自然语言描述你想要什么,Claude生成CSS:

深蓝色背景,薄荷绿色调,动画平滑渐变

所有自定义CSS都经过验证以阻止 javascript: URL, <script> 在发送到Anki之前。

项目结构

anki-mcp-server/
├── anki_server.py      # MCP tool definitions and AnkiConnect client
├── config.py           # Constants: URL, API version, media limits
├── instructions.py     # LLM system instructions for conversational behavior
├── templates.py        # Built-in CSS themes, CSS validation, HTML generators
└── tests/
    ├── test_anki_server.py   # Tests for all tools (mocked AnkiConnect)
    └── test_templates.py     # Tests for template logic and CSS validation

运行测试

pip install pytest pytest-asyncio
pytest tests/ -v

所有测试均模拟AnkiConnect httpx --不需要运行Anki实例。

故障排除

  • Anki必须打开: MCP服务器要求Anki正在运行。
  • AnkiConnect没有响应: 访问 http://localhost:8765 以确认其处于活动状态。
  • Windows防火墙: 您可能需要允许Anki通过防火墙才能使AnkiConnect工作。
  • 重新启动所有内容: 如果问题仍然存在,请重新启动Anki、Claude Desktop,并重新检查配置文件路径。

贡献

分叉存储库并打开拉取请求。欢迎在以下方面捐款:

  • 新卡类型或模板样式
  • 附加语言支持
  • 界面和用户体验改进
  • 文档

许可证

MIT许可证——见 许可证 了解详情。