使用说明
Anki MCP服务器
一种模型上下文协议(MCP)服务器,提供通过AnkiConnect管理Anki闪存卡的工具。该服务器允许AI助手以编程方式创建、搜索和管理Anki卡和牌组。
特性
- 卡片管理:创建带有正面/背面内容的新抽认卡
- 甲板操作:列出、创建和管理Anki牌组
- 搜索功能:使用Anki强大的搜索语法搜索卡片
- 媒体支持:将图像和音频文件添加到卡中
- 模型支撑:使用不同的钞票类型/型号
- 同步集成:触发AnkiWeb同步
- 可配置的:可定制的AnkiConnect URL
先决条件
- Anki桌面:安装 安基 桌面应用程序
- AnkiConnect:安装 AnkiConnect Anki中的插件
- 去:使用1.21或更高版本从源代码构建
安装
来源
git clone https://github.com/ezynda3/anki-mcp.git
cd anki-mcp
go build -o anki-mcp .
使用Go安装
go install github.com/ezynda3/anki-mcp@latest
配置
可以使用环境变量配置服务器:
ANKI_CONNECT_URL:AnkiConnect服务器URL(默认值:http://localhost:8765)
用法
使用克劳德桌面
将以下内容添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"anki": {
"command": "/path/to/anki-mcp",
"env": {
"ANKI_CONNECT_URL": "http://localhost:8765"
}
}
}
}
与MCP检查员一起
对于开发和测试:
# Install MCP Inspector
npm install -g @modelcontextprotocol/inspector
# Run with inspector
mcp-inspector /path/to/anki-mcp
直接使用
# Start the server
./anki-mcp
# The server communicates via stdio using the MCP protocol
可用工具
ping
检查AnkiConnect是否可用并响应。
参数:无
示例:
Use the ping tool to check if Anki is running.
list_decks
列出所有可用的Anki甲板。
参数:无
示例:
Show me all my Anki decks.
create_deck
创建一个新的Anki牌组。
参数:
deck_name(必填):要创建的甲板名称
示例:
Create a new deck called "Spanish Vocabulary".
create_card
在指定的卡片组中创建新的抽认卡。
参数:
deck_name(必填):要添加卡片的牌组名称front(必填):卡片正面内容back(必填):卡片背面内容model_name(可选):要使用的注释类型(默认:“基本”)tags(可选):要添加到卡中的标签数组
示例:
Create a card in my "Spanish Vocabulary" deck with front "Hola" and back "Hello" with tags "greetings" and "basic".
search_cards
使用Anki的搜索语法搜索卡片。
参数:
query(必填):使用Anki搜索语法搜索查询limit(可选):返回的最大结果数(默认值:10)
例子:
Search for cards in the "Spanish Vocabulary" deck.
Find cards tagged with "difficult".
Search for cards containing "hello" in any field.
搜索语法示例:
deck:"Spanish Vocabulary"-特定牌组中的卡片tag:difficult-带有特定标签的卡片front:hello-前面有“你好”的卡片is:due-应审核的卡片added:1-最后一天添加的卡
add_media
将媒体文件添加到Anki的媒体收藏中。
参数:
filename(必填):媒体文件的名称data(必填):Base64编码媒体文件数据
示例:
Add an audio file "pronunciation.mp3" to Anki's media collection.
create_card_with_media
创建带有媒体附件的新闪存卡。
参数:
deck_name(必填):要添加卡片的牌组名称front(必填):卡片正面内容back(必填):卡片背面内容model_name(可选):要使用的注释类型(默认:“基本”)tags(可选):要添加到卡中的标签数组audio_filename(可选):要附加的音频文件名audio_data(可选):Base64编码音频数据image_filename(可选):要附加的图像文件名image_data(可选):Base64编码图像数据
示例:
Create a card with an image showing a Spanish flag and audio pronunciation.
get_models
获取Anki中所有可用的纸币类型/型号。
参数:无
示例:
Show me all available note types in Anki.
get_model_fields
获取特定笔记类型/型号的字段名称。
参数:
model_name(必填):要获取字段的模型名称
示例:
What fields are available for the "Cloze" note type?
sync
触发Anki与AnkiWeb同步。
参数:无
示例:
Sync my Anki collection with AnkiWeb.
错误处理
服务器为常见问题提供详细的错误消息:
- AnkiConnect不可用:确保Anki正在运行并且安装了AnkiConnect插件
- 未找到甲板:检查甲板名称拼写和是否存在
- 无效参数:验证是否提供了所需的参数
- 媒体编码错误:确保媒体数据正确进行base64编码
发展
建筑
go build -v .
测试
go test -v ./...
编码结构
main.go:MCP服务器实现和工具处理程序ankiconnect.go:AnkiConnect客户端包装器go.mod:Go模块依赖关系
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
致谢
- 使用 MCP Go
- 与集成 AnkiConnect
- 灵感来自 去安吉甲板 图书馆
故障排除
常见问题
“AnkiConnect不可用”
- 确保Anki桌面正在运行
- 验证AnkiConnect插件是否已安装并启用
- 检查AnkiConnect是否在正确的端口上侦听(默认值:8765)
“创建牌组/卡失败”
- 验证甲板名称不包含无效字符
- 检查是否提供了必填字段
- 确保AnkiConnect权限允许该操作
媒体文件无法正常工作
- 验证媒体数据是否正确进行base64编码
- 检查Anki是否支持文件扩展名
- 确保媒体文件不太大
调试模式
设置详细日志记录的环境变量:
export MCP_DEBUG=1
./anki-mcp
api参考
有关模型上下文协议的详细信息,请参阅:
有关AnkiConnect API的详细信息,请参阅: