Anki MCP服务器

Mousetail是一个简单可靠的Anki MCP服务器,无需插件即可连接Anki和LLM,支持核心Anki操作和同步功能。

  • by listfold
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 listfold/mousetail

使用说明

Anki最简单、最稳定的MCP服务器

Mousetail的目标是成为将Anki连接到LLM的最简单、最可靠的方法。它不需要任何插件,只需安装anki和您想连接到甲板的LLM即可。

运行服务器很简单:

uvx mousetail

有关与Claude Code、Claude Desktop和其他LLM工具集成的详细说明:

使用指南

api参考

特性

  • 最小化 -支持核心anki操作:创建、读取、更新和删除
  • 稳定 -直接使用anki的稳定pylibapi,无需插件或deps
  • 简单 -无需配置,自动发现您的Anki收藏

用例

有选择地将你在与法学硕士的对话中学到的东西牢记在心

“根据我们的谈话创建一个平台,这样我就不会忘记关键细节”

使用LLM与您的甲板互动

“创建一张牌-什么是系数?创建一张卡-id这个多项式中的第一个系数”

使用LLM清理甲板

“检查我的法语发音板是否正确,并纠正任何错误、拼写错误或错误”

同步中

Mousetail支持将您的Anki收藏与AnkiWeb或自托管同步服务器同步。这允许您在不同设备之间保持收藏同步。

快速开始

与AnkiWeb同步(保存凭据以备将来同步):

> "Save my AnkiWeb credentials: username is myuser@example.com and password is mypassword"
> "Sync my collection with AnkiWeb"

凭证管理

Mousetail将凭据安全地存储在系统的凭据管理器中:

  • macOS: 钥匙串
  • 窗户: 凭据管理器
  • Linux: 特勤局(GNOME钥匙圈、KWallet等)

可用的凭证工具:

  • save_sync_credentials -安全保存用户名/密码
  • load_sync_credentials -加载已保存的凭据
  • delete_sync_credentials -删除已保存的凭据

同步选项

这 sync_collection 工具支持:

  • AnkiWeb同步 (默认)-将端点留空
  • 自托管服务器 -提供自定义端点URL(例如。, https://sync.example.com)
  • 媒体同步 -默认启用,包括图像和音频文件
  • 仅收藏同步 -设置 sync_media: false 跳过媒体

例子

首次使用AnkiWeb进行设置:

> "Save my sync credentials for AnkiWeb - username: user@example.com, password: mypass123"
> "Sync my collection"

使用自托管服务器:

> "Save my sync credentials - username: john, password: secret, endpoint: https://sync.myserver.com"
> "Sync my collection"

不保存凭据的一次性同步:

> "Sync my collection with AnkiWeb using username user@example.com and password mypass123"

仅收藏同步(跳过媒体):

> "Sync my collection but don't sync media files"

配置

您可以在中设置默认同步端点 config.json:

{
  "sync": {
    "endpoint": "https://sync.example.com"
  }
}

离开 endpoint 作为 null 默认情况下使用AnkiWeb。

重要说明

  • 先关闭Anki: 如果Anki应用程序正在运行,同步将失败
  • 媒体同步: 媒体同步速度较慢,使用更多带宽,但可确保图像/音频同步
  • 冲突: 如果发生冲突,请先尝试从Anki桌面同步以解决冲突
  • 安全: 凭据从不以纯文本形式存储,而是保存在系统的安全凭据存储中

自托管同步服务器设置

要与自己的服务器同步,请执行以下操作:

  1. 设置一个 Anki同步服务器
  2. 在服务器上配置凭据(使用环境变量,如 SYNC_USER1=user:password)
  3. 将您的凭据与服务器端点一起保存在Mousetail中
  4. 同步正常

有关同步服务器的详细设置,请参阅 Anki官方文件.

重要说明

如何访问收藏

MCP服务器在其标准位置找到Anki集合:

  • macOS: ~/Library/Application Support/Anki2/[Profile]/collection.anki2
  • Linux: ~/.local/share/Anki2/[Profile]/collection.anki2
  • 窗户: %APPDATA%\Anki2\[Profile]\collection.anki2

您不需要配置路径-服务器会自动发现可用的集合,这可以使用配置进行自定义。

配置

服务器可以通过以下方式进行定制 config.json 文件。请参阅 使用指南 用于配置选项。

发展

地方发展设置

使用Claude Code在本地开发和测试Mousetail:

  1. 克隆存储库:

    git clone https://github.com/listfold/mousetail.git
    cd mousetail
    
  2. 安装依赖项:

    uv sync
    
  3. 配置克劳德代码: 该项目包括 .mcp.json 配置MCP服务器以进行本地开发的文件:

    {
      "mcpServers": {
        "mousetail": {
          "type": "stdio",
          "command": "uv",
          "args": ["run", "python", "-m", "mousetail.mcp.stdio_server"],
          "env": {
            "PYTHONUNBUFFERED": "1"
          }
        }
      }
    }
    
  4. 重新启动Claude代码: 配置就绪后,重新启动Claude Code以加载MCP服务器。

  5. 验证服务器:

    • 使用 /context 在Claude Code中查看可用的MCP工具
    • mousetail服务器应与所有可用工具(list_collections、create_note、sync_collection等)一起出现
  6. 测试同步功能:

    • 测试前关闭Anki桌面应用程序
    • 测试证书管理: save_sync_credentials, load_sync_credentials, delete_sync_credentials
    • 测试同步: sync_collection 使用您的AnkiWeb凭据或自托管服务器

核心目标

编写Mousetail是因为所有现有的MCP Anki工具都依赖于 AnkiConnect 插件。

AnkiConnect是Anki的HTTP服务器,它最初是为了支持连接浏览器扩展而创建的,比如 约米坎 安基。对于MCP开发,这是不必要的,并且会带来问题:

  • 引入了复杂性,例如Anki的专用HTTP服务器占用了一个端口
  • 引入风险,例如,如果AnkiConnect API发生变化或出现错误,MCP工具将中断
  • 引入了一个额外的步骤,例如,所有当前的MCP工具都需要安装AnkiConnect插件

Mousetail有一个更简单的方法。它直接与Anki的 pylib这是一个稳定的API,是Anki核心的一部分,因此它不受任意或频繁更改的影响,也不需要任何第三方插件。

因为它优先考虑简单性,所以mousetail将比其他替代品更稳定。权衡的是,Mousetail永远不会与Anki UI集成。也可以合理地假设Mousetail只适用于托管(同一系统)LLM工具和Anki平台。

建筑文件

该项目使用Sphinx和Furo主题从Python文档字符串生成文档。

  1. 安装文档依赖项:

    uv pip install ".[docs]"
    
  2. 构建文档:

    uv run python -m sphinx -b html docs docs/_build/html
    
  3. 查看文档: 打开 docs/_build/html/index.html 在您的浏览器中。

每次向主分支推送时,文档都会自动构建并部署到GitHub Pages。

许可证

MIT许可证-有关详细信息,请参阅许可证文件。