Skip to main content
Glama

anki-mcp

一个模型上下文协议 (MCP) 服务器,用于通过 AnkiConnect 插件与 Anki 抽认卡进行交互。该服务器将 AnkiConnect 操作以 MCP 工具的形式公开,并组织成逻辑服务。

先决条件

  • Anki 桌面应用程序

  • 在 Anki 中安装并配置 AnkiConnect 插件

  • Python 3.8+

  • uv (用于运行和安装依赖项,可选但推荐)

Related MCP server: Anki MCP Server

安装

# 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上的 AnkiConnect 交互。

检查服务器

您可以使用 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 工具

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ujisati/anki-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server