Skip to main content
Glama

anki-mcp

by ujisati

anki-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上的 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 工具

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

模型上下文协议服务器,可通过 AnkiConnect 与 Anki 抽认卡进行交互,提供用于管理卡片组、笔记、卡片、模型和媒体文件的有组织的工具。

  1. 先决条件
    1. 安装
      1. 用法
        1. 检查服务器
      2. MCP 客户端配置
        1. 可用的 MCP 工具
          1. 甲板服务( deck.* )
          2. 注释服务( note.* )
          3. 卡服务( card.* )
          4. 模型服务( model.* )(注释类型)
          5. 媒体服务( media.* )
        2. 发展
          1. 运行测试
        3. 待办事项

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            A server implementation that connects to a locally running Anki, enabling card review and creation through the Model Context Protocol.
            Last updated -
            4
            40
            JavaScript
            MIT License
            • Apple
          • A
            security
            F
            license
            A
            quality
            A Model Context Protocol server that enables LLMs to interact with Anki flashcard software through AnkiConnect, allowing for creation and management of flashcards, decks, and note types.
            Last updated -
            10
            206
            30
            TypeScript
            • Apple
          • -
            security
            A
            license
            -
            quality
            A Model Context Protocol server that allows Claude to create flashcards for Rember, helping users study and remember information through spaced repetition reviews.
            Last updated -
            88
            16
            TypeScript
            MIT License
          • -
            security
            A
            license
            -
            quality
            A Model Context Protocol server that allows LLMs to interact with Anki flashcard software, enabling functions like creating decks, adding notes, searching cards, and managing flashcard content through natural language.
            Last updated -
            206
            1
            JavaScript
            MIT License

          View all related MCP servers

          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