返回市场
ANKI-MCP-服务器

ANKI-MCP-服务器

作者:nailuoGG186 星标更新:2025-11-18

项目介绍

Anki MCP 服务器

这是一个模型上下文协议(MCP)服务器,它使大型语言模型(LLMs)能够通过 AnkiConnect 与 Anki 闪卡软件进行交互。

Anki 图标

特性

工具

  • list_decks - 列出所有可用的 Anki 卡组
  • create_deck - 创建一个新的 Anki 卡组
  • create_note - 创建一个新的笔记(基本或填空)
  • batch_create_notes - 一次创建多个笔记
  • search_notes - 使用 Anki 查询语法搜索笔记
  • get_note_info - 获取关于笔记的详细信息
  • update_note - 更新现有的笔记
  • delete_note - 删除笔记
  • list_note_types - 列出所有可用的笔记类型
  • create_note_type - 创建新的笔记类型
  • get_note_type_info - 获取笔记类型的详细结构

资源

  • anki://decks/all - 完整的可用卡组列表
  • anki://note-types/all - 所有可用笔记类型的列表
  • anki://note-types/all-with-schemas - 所有笔记类型的详细结构信息
  • anki://note-types/{modelName} - 某一特定笔记类型的详细结构信息

预备条件

  1. 在您的系统上安装了 Anki
  2. 在 Anki 中安装了 AnkiConnect 插件

配置

通过桌面扩展(.mcpb)安装

此仓库支持 Anthropic 桌面扩展(MCPB)。在 Claude Desktop 中使用此服务器最简单的方法是安装打包好的 .mcpb 包。

  1. 使用提供的脚本本地生成 .mcpb 文件:
npm run pack
  1. 打开 Claude Desktop 设置 → 扩展,并将生成的 .mcpb 文件拖入,然后点击安装。

这会验证 manifest.json 并输出一个可以按上述方式安装的 .mcpb 归档。更多关于桌面扩展的信息,请参阅 Anthropic 的公告:桌面扩展:一键式 MCP 服务器安装用于 Claude Desktop

在 Claude Desktop 中使用

将服务器添加到您的 claude_desktop_config.json

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["--yes", "anki-mcp-server"]
    }
  }
}

使用自定义 AnkiConnect 端口

如果您的 AnkiConnect 运行在不同的端口上,您可以使用 --port 参数指定它:

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["--yes", "anki-mcp-server", "--port", "8080"]
    }
  }
}

在 Cline 中配置

将服务器添加到 VSCode 设置中的 Cline MCP 设置文件 cline_mcp_settings.json 内:

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["--yes", "anki-mcp-server"]
    }
  }
}

使用自定义 AnkiConnect 端口

对于 Cline,您也可以指定一个自定义端口:

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["--yes", "anki-mcp-server", "--port", "8080"]
    }
  }
}

开发

打包桌面扩展(.mcpb)

为 Claude Desktop 创建可分发的桌面扩展包:

npm run pack

这将构建项目并从当前仓库生成一个 .mcpb 归档,验证 manifest.json。通过将其拖入 Claude Desktop 的扩展设置中来测试。参考:桌面扩展:一键式 MCP 服务器安装用于 Claude Desktop

发布到 MCP 注册表

当发布新版本时,此服务器会自动发布到 MCP 注册表。发布过程包括:

  1. 自动化 CI/CD:GitHub Actions 自动在成功发布后将内容发布到 NPM 和 MCP 注册表
  2. 模式验证:在发布前对 server.json 文件进行 MCP 模式的验证
  3. 版本同步:在 package.jsonmanifest.jsonserver.json 之间保持版本同步
  4. 全面测试:在发布前进行多版本 Node.js 测试、代码检查和验证
  5. Beta 支持:为测试新功能提供自动 Beta 发布

手动验证

您可以在本地验证 MCP 服务器配置:

npm run validate-mcp

这将下载最新的 MCP 模式并验证您的 server.json 文件。

手动发布

如果您需要手动发布,可以使用 MCP 发布器 CLI:

# 安装 MCP 发布器
curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.1.0/mcp-publisher_1.1.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
chmod +x mcp-publisher
sudo mv mcp-publisher /usr/local/bin/

# 登录 MCP 注册表
mcp-publisher login github-oidc

# 发布到 MCP 注册表
mcp-publisher publish

设置

  1. 安装依赖项:
npm install
  1. 构建服务器:
npm run build
  1. 开发时自动重建:
npm run watch

测试

运行测试套件:

npm test

这将执行以下测试:

  • 服务器初始化
  • AnkiConnect 通信
  • 笔记操作(创建/读取/更新/删除)
  • 卡组管理
  • 错误处理

调试

由于 MCP 服务器通过标准 I/O 通信,我们建议使用 MCP Inspector

npm run inspector

这提供了基于浏览器的界面,用于:

  • 监控 MCP 消息
  • 测试工具调用
  • 查看服务器日志
  • 调试通信问题

示例用法

  1. 创建一个新的卡组:
创建一个名为“编程”的新 Anki 卡组
  1. 添加一张基本卡片:
在“编程”卡组中创建一个 Anki 卡片,内容如下:
正面:JavaScript 中的闭包是什么?
背面:闭包是函数与其声明时所在的词法环境的组合。
  1. 添加一张填空卡片:
在“编程”卡组中创建一个填空卡片,内容如下:
文本:在 JavaScript 中,{{c1::const}} 声明了一个不能被 {{c2::重新赋值}} 的块作用域变量。

贡献

  1. 分叉仓库
  2. 创建您的功能分支
  3. 运行测试:npm test
  4. 提交拉取请求

星星历史

星星历史图表

致谢

图标由 macOS Icons 提供

许可证

MIT 许可证 - 详情见 LICENSE 文件