Anki MCP 服务器
一个模型上下文协议(MCP)服务器,它使大型语言模型(LLM)能够通过AnkiConnect与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}- 某种特定记账类型的具体结构信息
先决条件
- Anki(注:Anki是一个记忆卡片软件,常用于辅助记忆,这里直接保留原名,不做具体翻译) 安装在您的系统上
- AnkiConnect 在Anki中安装的插件
配置
通过桌面扩展程序(.mcpb)进行安装
这个仓库支持Anthropic Desktop扩展(MCPB)。在Claude Desktop中使用此服务器的最简单方法是安装打包好的扩展 .mcpb 捆绑包。
- 生成
.mcpb使用提供的脚本在本地文件中操作:
BASH``` 1npm run pack
1. 打开Claude桌面设置 → 扩展并拖动生成的 `.mcpb` 导入文件,然后点击安装。
这证实了 `manifest.json` 并输出一个 `.mcpb` 您可以按照上述步骤安装存档。有关Anthropic公告中桌面扩展的更多信息,请参阅: [桌面扩展:一键安装Claude桌面的MCP服务器](https://www.anthropic.com/engineering/desktop-extensions)。
### 与Claude桌面版的使用
将服务器添加到您的 claude_desktop_config.json 文件中:
JSON```
1
2
3
4
5
6
7
8{
"mcpServers": {
"anki": {
"command": "npx",
"args": ["--yes", "anki-mcp-server"]
}
}
}
使用自定义的AnkiConnect端口
如果你的AnkiConnect运行在不同的端口上,你可以通过以下方式指定它: --port 参数:
JSON``` 1 2 3 4 5 6 7 8{ “mcpServers”: { “anki”: { “command”: “npx”, “args”: [“—yes”, “anki-mcp-server”, “—port”, “8080”] } } }
### 克林(Cline)的配置
在VSCode的设置中,将服务器添加到您的Cline MCP设置文件中 `cline_mcp_settings.json`
JSON```
1
2
3
4
5
6
7
8{
"mcpServers": {
"anki": {
"command": "npx",
"args": ["--yes", "anki-mcp-server"]
}
}
}
使用自定义的AnkiConnect端口
对于Cline,你也可以指定一个自定义端口:
JSON``` 1 2 3 4 5 6 7 8{ “mcpServers”: { “anki”: { “command”: “npx”, “args”: [“—yes”, “anki-mcp-server”, “—port”, “8080”] } } }
## 发展
### 打包桌面扩展程序(.mcpb)
为Claude Desktop创建一个可分发的桌面扩展包:
BASH```
1npm run pack
这将构建项目并生成一个 .mcpb 从当前存储库中存档,进行验证 manifest.json通过将其拖入Claude桌面版的扩展设置中进行测试。参考: 桌面扩展:一键安装Claude桌面版的MCP服务器。
发布到MCP注册表
当新版本发布时,此服务器会自动发布到MCP注册表中。发布过程包括:
- **自动化持续集成/持续交付(CI/CD)**GitHub Actions 在成功发布时会自动将内容发布到 NPM 和 MCP 注册表
- 模式验证这个(或:这些)
server.json在发布之前,文件已根据MCP模式进行了验证 - 版本同步版本之间保持同步
package.json,manifest.json,和server.json - 全面测试在发布前进行多版本Node.js的测试、代码检查和验证
- Beta 支持自动化测试版发布以测试新功能
手动验证
您可以在本地验证MCP服务器配置:
BASH``` 1npm run validate-mcp
这将下载最新的MCP(消息传递中间件/多协议转换器等,具体含义根据上下文确定)模式并验证您的(配置/数据等,具体根据上下文确定) `server.json` 文件。
#### 手动发布
如果您需要手动发布,可以使用MCP发布者命令行界面(CLI):
BASH```
1
2
3
4
5
6
7
8# Install MCP Publisher
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/
# Login to MCP Registry
mcp-publisher login github-oidc
# Publish to MCP Registry
mcp-publisher publish
设置
- 安装依赖项:
BASH``` 1npm install
1. 构建服务器:
BASH```
1npm run build
- 对于需要自动重建的开发:
BASH``` 1npm run watch
### 测试
运行测试套件:
BASH```
1npm test
这执行以下测试:
- 服务器初始化
- AnkiConnect通信
- 笔记操作(创建/读取/更新/删除)
- 甲板管理
- 错误处理
调试
由于MCP服务器通过stdio进行通信,我们建议使用 MCP 检测器:
BASH``` 1npm run inspector
这提供了一个基于浏览器的界面,用于:
- 监控MCP消息
- 测试工具调用
- 查看服务器日志
- 调试通信问题
## 示例用法
1. 创建一个新的牌组:
1Create a new Anki deck called “Programming”
1. 添加一张基本卡片:
1 2 3Create an Anki card in the “Programming” deck with: Front: What is a closure in JavaScript? Back: A closure is the combination of a function and the lexical environment within which that function was declared.
1. 添加一张完形填空卡片:
1 2Create a cloze card in the “Programming” deck with: Text: In JavaScript, {{c1::const}} declares a block-scoped variable that cannot be {{c2::reassigned}}.
## 做出贡献
1. 为仓库创建分支(或:克隆仓库)
2. 创建你的特性分支
3. 运行测试: `npm test`
4. 提交拉取请求
## 明星历史
[](https://star-history.com/#nailuoGG/anki-mcp-server&Date)
## 功劳;学分;资历
图标由……提供 [macOS 图标](https://macosicons.com/#/?icon=mWDBpVXqbc)
## 许可证
MIT 许可证 - 详情请参见 LICENSE 文件