modelscope·@nietus/anki-mcp
暂无描述。
用于 Anki 的 MCP 服务器。此服务器允许通过 Model Context Protocol (MCP) 与 Anki 进行交互。它使用户能够以编程方式管理闪卡、牌组和复习过程。
.env 文件中设置为 AZURE_API_KEY)和 Anki 媒体目录(设置为 ANKI_MEDIA_DIR)。强烈建议本地运行,因为 AnkiConnect 只能在本地工作。
仅在 Windows 上进行了测试。
克隆仓库:
bash git clone https://github.com/nietus/anki-mcp
安装依赖项:
bash npm install
构建项目
bash npm run build
设置音频功能(如果您想使用音频工具):
在根目录下创建一个 .env 文件,并添加您的 Azure API 密钥和 Anki 媒体目录路径:
AZURE_API_KEY=your_azure_api_key_here ANKI_MEDIA_DIR=path/to/your/anki/media/directory
对于 Anki 媒体目录,请使用指向您的 Anki collection.media 文件夹的路径。这是存储音频文件的地方。如果遇到问题,请直接将路径粘贴到代码中。
C:UsersusernameAppDataRoamingAnki2User 1collection.media/Users/username/Library/Application Support/Anki2/User 1/collection.media/home/username/.local/share/Anki2/User 1/collection.media注意: ANKI_MEDIA_DIR 是音频生成正常工作的必需项,因为 Anki 需要在其媒体集合中找到音频文件。
与 Cursor 设置集成(用于本地执行):
要使用 Cursor 运行您本地构建的 anki-mcp,您需要告诉 Cursor 如何启动服务器。以下是一些示例配置,您可以在 Cursor 设置中访问这些配置。替换 YOUR_USERNAME 并根据需要调整路径(如果您将 anki-mcp 克隆到了不同于 Downloads 的位置)。
Windows:
json "anki": { "command": "cmd", "args": [ "/c", "node", "c:/Users/YOUR_USERNAME/Downloads/anki-mcp/build/client.js" ] }
macOS / Linux:
json "anki": { "command": "bash", "args": [ "-c", "node /Users/YOUR_USERNAME/Downloads/anki-mcp/build/client.js" ] }
要调试工具,请使用
npm run inspector
服务器提供了以下工具来与 Anki 交互:
update_cards:
cardId(数字)和 ease(数字,1-4)。add_card:
update_note_fields 并提供 noteId。笔记内容使用 HTML。
<br><pre style="background-color: transparent; padding: 10px; border-radius: 5px;"><ol> 和 <li><strong><em>fields: (对象) 一个对象,其中键是字段名称(例如,“Hanzi”,“Pinyin”),值是它们的 HTML 内容。modelName: (字符串) 要使用的 Anki 笔记类型(模型)的名称。deckName: (可选字符串) 要将卡片添加到的牌组名称。默认为当前牌组或“Default”。tags: (可选字符串数组) 要添加到笔记的一组标签。add_card_with_audio:- 描述:在 Anki 中创建一张新的闪卡,并使用 Azure TTS 自动生成音频。仅用于创建新卡片,不应用于更新现有卡片(如果卡片已存在将抛出错误)。对于更新现有卡片上的音频,请使用 update_card_with_audio 并提供 noteId。
fields, modelName, deckName, tags:与 add_card 相同。sourceField:(字符串) 包含要生成音频的文本的字段名称。audioField:(字符串) 生成的音频将存储在该字段中。language:(可选字符串) TTS 的语言代码(例如,en, es, fr)。默认为 en。update_card_with_audio:
add_card_with_audio。noteId:(数字) 要更新的 Anki 笔记的 ID。sourceField:(字符串) 包含要生成音频的文本的字段名称。audioField:(字符串) 生成的音频将存储在该字段中。language:(可选字符串) TTS 的语言代码。默认为 en。get_due_cards:
num (数字)。get_new_cards:
num (数字)。get_deck_names:
find_cards:
query (字符串,例如 deck:Default -tag:test 或 "deck:My Deck" tag:important)。要筛选空字段,请使用 -FieldName:_*(例如 -Hanzi:_*)。update_note_fields:
add_card。noteId (数字),fields (对象,例如 {"Front": "New Q", "Back": "New A"})。create_deck:
deckName (字符串)。bulk_update_notes:
add_bulk。尽可能在单个操作中完成所有更新。notes 数组,每个笔记包含 noteId (数字) 和 fields (对象)。get_model_names:
get_model_details:
modelName (字符串)。get_deck_model_info:
deckName (字符串)。deckName,status(例如 "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:
modelName (字符串), templates (对象,例如 {"Card 1": {"Front": "html", "Back": "html"}})。update_note_type_styling:
modelName (字符串), css (字符串)。create_model:
modelName (字符串), fieldNames (字符串数组), cardTemplates (对象数组,每个对象包含 Name, Front, Back HTML 字符串), css (可选字符串), isCloze (可选布尔值,默认为 false), modelType (可选字符串,默认为 Standard)。add_bulk:
bulk_update_notes。尽可能在单次操作中完成所有添加。必须使用 HTML 格式化卡片内容。notes 数组,其中每个笔记对象包含:
fields: (对象) 一个键为字段名、值为其 HTML 内容的对象。modelName: (字符串) 该笔记使用的 Anki 笔记类型(模型)名称。deckName: (可选字符串) 该笔记的牌组名称。默认为 Default。tags: (可选字符串数组) 该笔记的标签列表。更多详细信息请参见这里 [Anki Integration | Smithery](https://smithery.ai/server…
一种模型上下文协议服务器,通过与Canvas和Gradescope集成,帮助学生管理学术工作流程,以获取截止日期、下载课程材料以及与macOS日历或提醒事项同步。
一种模型上下文协议服务器,使大型语言模型(LLMs)能够通过AnkiConnect与Anki闪卡软件交互,从而实现对闪卡、卡组和笔记类型的创建与管理。
启用 Claude Desktop 与 Gauntlet Incept 系统交互,通过自然语言直接为 K-8 学生生成、标记和评估教育内容。
一个模型上下文协议服务器,允许克劳德为Rember创建闪卡,通过间隔重复复习帮助用户学习和记忆信息。
一种专用的模型上下文协议(MCP)服务器,它能够提供由人工智能驱动的面试角色扮演场景,用于练习,并给予逼真的对话反馈。
暂无描述。