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
MCP-сервер для Anki. Этот сервер позволяет взаимодействовать с Anki через Model Context Protocol (MCP). Он позволяет пользователям программно управлять карточками, колодами и процессами обзора.
Предпосылки
- Установлены Node.js и npm.
- Плагин AnkiConnect установлен и работает в Anki.
Настройка и выполнение
Настоятельно рекомендуется запускать локально, так как anki connect работает только локально.
Для локального запуска:
- Клонируйте репозиторий:
- Установить зависимости:
- Сборка проекта: скрипт
prepare
вpackage.json
должен автоматически запустить сборку при установке. Если вам нужно выполнить сборку вручную:Эта команда компилирует код TypeScript и делает клиентский скрипт исполняемым. - Интеграция с настройками курсора для Windows
Доступные инструменты
Для отладки инструментов используйте
Сервер предоставляет следующие инструменты для взаимодействия с 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
: (объект) Объект, где ключами являются имена полей (например, «Hanzi», «Pinyin»), а значениями — их HTML-содержимое.modelName
: (строка) Имя типа заметки Anki (модели), который будет использоваться.deckName
: (необязательная строка) Имя колоды, в которую нужно добавить карту. По умолчанию — текущая колода или «По умолчанию».tags
: (необязательный массив строк) Список тегов для добавления в заметку.
- Описание: Создайте новую карточку в Anki. Примечание: содержимое использует HTML.
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
(строка). - Вывод: объект с
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
:- Описание: Обновляет HTML-шаблоны (например, лицевую и оборотную стороны) для карточек типа заметки.
- Ввод:
modelName
(строка),templates
(объект, например,{"Card 1": {"Front": "html", "Back": "html"}}
).
update_note_type_styling
:- Описание: Обновляет стиль CSS для типа заметки.
- Ввод:
modelName
(строка),css
(строка).
create_model
:- Описание: Создает новый тип заметки Anki (модель).
- Ввод:
modelName
(строка),fieldNames
(массив строк),cardTemplates
(массив объектов, каждый со строками HTMLName
,Front
,Back
),css
(необязательная строка),isCloze
(необязательная логическая переменная, по умолчанию false),modelType
(необязательная строка, по умолчанию «Standard»).
add_bulk
:- Описание: Добавляет несколько карточек в Anki за одну операцию. Содержимое заметок использует HTML. Этот инструмент предназначен для добавления нескольких заметок (карточек) одновременно.
- Входные данные: Массив
notes
, где каждый объект заметки имеет:fields
: (объект) Объект, где ключи — это имена полей, а значения — их HTML-содержимое.modelName
: (строка) Имя типа заметки Anki (модели), используемого для этой заметки.deckName
: (необязательная строка) Имя колоды для этой заметки. По умолчанию «Default».tags
: (необязательный массив строк) Список тегов для этой заметки.
Более подробную информацию можно найти здесь Интеграция Anki | Smithery
You must be authenticated.
Сервер, который обеспечивает программное взаимодействие с Anki через протокол контекста модели, позволяя пользователям управлять карточками, колодами и процессами обзора.
Related MCP Servers
- AsecurityAlicenseAqualityA server implementation that connects to a locally running Anki, enabling card review and creation through the Model Context Protocol.Last updated -440JavaScriptMIT License
- AsecurityFlicenseAqualityA 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 -1020630TypeScript
- -securityAlicense-qualityA 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 -22JavaScriptMIT License
- -securityAlicense-qualityA 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 -2061JavaScriptMIT License