使用说明
安基mcp
一个模型上下文协议(MCP)服务器,用于通过AnkiConnect插件与Anki闪卡交互。该服务器将AnkiConnect操作作为MCP工具公开,并组织成逻辑服务。
先决条件
- Anki桌面应用程序
- 在Anki中安装和配置AnkiConnect插件
- Python 3.8+
uv(用于运行和安装依赖项,可选但推荐)
安装
# Clone the repository
git clone https://github.com/ujisati/anki-mcp.git
cd anki-mcp
# Install dependencies (using uv)
uv pip install -e .
用法
要运行MCP服务器,请执行以下操作:
uv run anki-mcp
服务器将启动并监听MCP请求,通常在 http://127.0.0.1:8765.
检查服务器
您可以使用MCP检查器查看可用工具:
npx @modelcontextprotocol/inspector uv run anki-mcp
MCP客户端的配置
如果您将其与MCP客户端(如AI助手框架)集成,则需要对其进行配置以找到此服务器。以下是一个示例配置片段:
{
"mcpServers": {
"anki": {
"command": "uv",
"args": [
"run", // uv will find anki-mcp if run from project root
"anki-mcp"
],
// If running from outside the project directory, specify the path:
// "args": [
// "--directory",
// "/ABSOLUTE/PATH/TO/anki-mcp", // Replace with actual path
// "run",
// "anki-mcp"
// ]
}
}
}
可用的MCP工具
此MCP服务器通过按服务分组的工具提供对Anki功能的访问。工具名称直接对应于AnkiConnect操作。
甲板服务(deck.*)
deck.deckNamesAndIds:获取甲板名称及其各自ID的完整列表。deck.getDeckConfig:获取给定甲板名称的配置组对象。deck.deckNames:获取当前用户的甲板名称的完整列表。deck.createDeck:创建新的空甲板。deck.deleteDecks:删除指定的甲板。deck.changeDeck:将卡片移动到不同的牌组。deck.saveDeckConfig:保存甲板配置组。
纸币服务(note.*)
note.findNotes:返回给定Anki搜索查询的注释ID。note.notesInfo:返回指定钞票ID的信息。note.getNoteTags:获取特定笔记ID的标记。note.addNote:创建新注释。note.updateNoteFields:修改现有注释的字段。note.deleteNotes:删除指定的注释。note.addNotes:创建多个笔记。note.addTags:向指定注释添加标记。note.removeTags:从指定注释中删除标记。note.updateNote:修改现有注释的字段和/或标记。
卡服务(card.*)
card.findCards:返回给定Anki搜索查询的卡ID。card.cardsInfo:返回指定卡ID的信息。card.cardsToNotes:返回给定卡ID的钞票ID。card.areSuspended:检查指定的卡是否已暂停。card.cardsModTime:返回指定卡ID的修改时间。card.suspended:检查是否有一张卡被暂停。card.suspend:暂停指定的卡。card.unsuspend:取消使用指定的卡。card.setSpecificValueOfCard:设置单个卡的特定值(谨慎使用)。
模型服务(model.*)(注释类型)
model.modelNamesAndIds:获取模型(注释类型)名称及其ID的完整列表。model.findModelsByName:获取所提供模型名称的模型定义。model.modelFieldNames:获取给定模型名称的字段名。model.modelTemplates:获取指定型号的每张卡片的模板内容。model.modelStyling:获取给定模型名称的CSS样式。model.createModel:创建新模型(注释类型)。model.updateModelTemplates:修改现有模型的模板。model.updateModelStyling:修改现有模型的CSS样式。model.modelFieldAdd:向现有模型添加新字段。model.modelFieldRemove:从现有模型中删除字段。
媒体服务(media.*)
media.retrieveMediaFile:检索媒体文件的base64编码内容。media.getMediaFilesNames:获取与glob模式匹配的媒体文件的名称。media.storeMediaFile:存储媒体文件(来自base64、路径或URL)。media.deleteMediaFile:删除指定的媒体文件。
发展
为发展而设立:
uv sync
source .venv/bin/activate
uv pip install -e .
运行测试
pytest
全部
- []完成添加所有AnkiConnect工具