Skip to main content
Glama

anki-mcp

铁匠徽章

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

先决条件

  • 已安装 Node.js 和 npm。

  • AnkiConnect 插件已安装并在 Anki 中运行。

Related MCP server: Anki MCP Server

设置和执行

强烈建议在本地运行,因为 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

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

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/nietus/anki-mcp'

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