Anki MCP Server

by nietus
Integrations
  • Provides tools for managing Anki flashcards and decks, including creating and updating cards, managing note types, searching for cards, retrieving due and new cards, and handling card reviews programmatically through the AnkiConnect plugin.

anki-mcp

Anki 的 MCP 服务器。该服务器允许通过模型上下文协议 (MCP) 与 Anki 进行交互。它允许用户以编程方式管理抽认卡、卡片组和复习流程。

先决条件

  • 已安装 Node.js 和 npm。
  • AnkiConnect 插件已安装并在 Anki 中运行。

设置和执行

强烈建议在本地运行,因为 anki connect 只能在本地运行

要在本地运行:

  1. 克隆存储库:
    git clone https://github.com/nietus/anki-mcp
  2. 安装依赖项:
    npm install
  3. 构建项目: package.json中的prepare脚本会在安装后自动运行构建。如果您需要手动构建:
    npm run build
    此命令编译 TypeScript 代码并使客户端脚本可执行。
  4. 与 Windows 的光标设置集成
    "anki": { "command": "cmd", "args": [ "/c", "node", "c:/Users/-/Downloads/anki-mcp/build/client.js" ] }

可用工具

要调试工具,请使用

npm run inspector

服务器提供以下与 Anki 交互的工具:

  • update_cards
    • 描述:在用户回答您向他们提问的卡片后,使用此工具将其标记为已回答并更新其难度。
    • 输入:一个答案数组,每个答案都有cardId (数字)和ease (数字,1-4)。
  • add_card
    • 描述:在 Anki 中创建一张新的抽认卡。注意内容使用 HTML 格式。
      • 换行符: <br>
      • 代码: <pre style="background-color: transparent; padding: 10px; border-radius: 5px;">
      • 列表: <ol><li>
      • 粗体: <strong>
      • 斜体: <em>
    • 输入:
      • fields :(对象)一个对象,其中键是字段名称(例如“汉字”,“拼音”),值是其 HTML 内容。
      • modelName :(字符串)要使用的 Anki 笔记类型(模型)的名称。
      • deckName :(可选字符串)要添加卡片的牌组名称。默认为当前牌组或“默认”。
      • tags :(可选字符串数组)要添加到注释的标签列表。
  • get_due_cards
    • 描述:返回给定数量的待审查卡片。
    • 输入: num (数字)。
  • get_new_cards
    • 描述:返回给定数量的新卡和未见过的卡。
    • 输入: num (数字)。
  • get-deck-names
    • 描述:获取所有 Anki 卡片组名称的列表。
    • 输入:无。
  • find-cards
    • 描述:使用原始 Anki 搜索查询查找卡片。返回包含字段在内的卡片详细信息。
    • 输入: query (字符串,例如'deck:Default -tag:test''"deck:My Deck" tag:important' )。要过滤空字段,请使用'-FieldName:_*' (例如'-Hanzi:_*' )。
  • update-note-fields
    • 描述:更新给定 Anki 笔记的特定字段。
    • 输入: noteId (数字), fields (对象,例如, {"Front": "New Q", "Back": "New A"} )。
  • create_deck
    • 描述:创建一个新的 Anki 卡片组。
    • 输入: deckName (字符串)。
  • bulk_update_notes
    • 描述:更新多个 Anki 笔记的特定字段。
    • 输入:一个notes数组,其中每个注释都有noteId (数字)和fields (对象)。
  • get_model_names
    • 描述:列出所有可用的 Anki 笔记类型/模型名称。
    • 输入:无。
  • get_model_details
    • 描述:检索指定注释类型的字段、卡片模板和 CSS 样式。
    • 输入: modelName (字符串)。
  • get_deck_model_info
    • 描述:检索指定卡组中所使用的音符类型(模型)的信息。用于判断卡组是否使用了单个、多个模型,或者卡组是否为空或不存在。
    • 输入: deckName (字符串)。
    • 输出:具有deckNamestatus (例如“single_model_found”、“multiple_models_found”、“no_notes_found”、“deck_not_found”)以及条件modelName (字符串)或modelNames (字符串数组)的对象。
  • add_note_type_field
    • 描述:向注释类型添加新字段。
    • 输入: modelName (字符串), fieldName (字符串)。
  • remove_note_type_field
    • 描述:从注释类型中删除现有字段。
    • 输入: modelName (字符串), fieldName (字符串)。
  • rename_note_type_field
    • 描述:重命名注释类型中的字段。
    • 输入: modelName (字符串)、 oldFieldName (字符串)、 newFieldName (字符串)。
  • reposition_note_type_field
    • 描述:更改注释类型中字段的顺序(索引)。
    • 输入: modelName (字符串)、 fieldName (字符串)、 index (数字)。
  • update_note_type_templates
    • 描述:更新笔记类型卡片的 HTML 模板(例如正面和背面)。
    • 输入: modelName (字符串)、 templates (对象,例如, {"Card 1": {"Front": "html", "Back": "html"}} )。
  • update_note_type_styling
    • 描述:更新注释类型的 CSS 样式。
    • 输入: modelName (字符串), css (字符串)。
  • create_model
    • 描述:创建一个新的 Anki 笔记类型(模型)。
    • 输入: modelName (字符串)、 fieldNames (字符串数组)、 cardTemplates (对象数组,每个对象包含NameFrontBack HTML 字符串)、 css (可选字符串)、 isCloze (可选布尔值,默认为 false)、 modelType (可选字符串,默认为“标准”)。
  • add_bulk
    • 描述:一次性将多张抽认卡添加到 Anki。注释内容使用 HTML 格式。此工具用于一次性添加多张注释(卡片)。
    • 输入:一个notes数组,其中每个注释对象具有:
      • fields :(对象)一个对象,其中键是字段名称,值是其 HTML 内容。
      • modelName :(字符串)此注释使用的 Anki 注释类型(模型)的名称。
      • deckName :(可选字符串)此笔记对应的 deck 名称。默认为“Default”。
      • tags :(可选字符串数组)此注释的标签列表。

更多信息可以在这里找到Anki Integration | Smithery

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

通过模型上下文协议实现与 Anki 进行编程交互的服务器,允许用户管理抽认卡、卡片组和审查过程。

  1. 先决条件
    1. 设置和执行
      1. 要在本地运行:
    2. 可用工具

      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 TypeScript-based server that integrates with Anki via the AnkiConnect plugin, allowing you to manage flashcard decks, note models, and create Anki notes using natural language.
        Last updated -
        22
        JavaScript
        MIT License
        • Apple
      • -
        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/nietus/anki-mcp'

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