anki-mcp
Сервер Model Context Protocol (MCP) для взаимодействия с карточками Anki через дополнение AnkiConnect. Этот сервер представляет действия AnkiConnect как инструменты MCP, организованные в логические службы.
Предпосылки
Приложение Anki для ПК
Дополнение AnkiConnect установлено и настроено в Anki
Питон 3.8+
uv(для запуска и установки зависимостей, необязательно, но рекомендуется)
Related MCP server: Anki MCP Server
Установка
Использование
Чтобы запустить сервер MCP:
Сервер запустится и будет прослушивать запросы MCP, обычно взаимодействуя с AnkiConnect по адресу http://127.0.0.1:8765 .
Проверка сервера
Для просмотра доступных инструментов можно использовать MCP Inspector:
Конфигурация для клиентов MCP
Если вы интегрируете это с клиентом MCP (например, фреймворком помощника AI), вам нужно будет настроить его для поиска этого сервера. Вот пример фрагмента конфигурации:
Доступные инструменты MCP
Этот сервер MCP обеспечивает доступ к функционалу Anki через инструменты, сгруппированные по службам. Названия инструментов напрямую соответствуют действиям AnkiConnect.
Обслуживание на палубе ( deck.* )
deck.deckNamesAndIds: получает полный список названий колод и их соответствующих идентификаторов.deck.getDeckConfig: получает объект группы конфигурации для заданного имени колоды.deck.deckNames: Получает полный список названий колод для текущего пользователя.deck.createDeck: Создает новую пустую колоду.deck.deleteDecks: Удаляет указанные колоды.deck.changeDeck: Перемещает карты в другую колоду.deck.saveDeckConfig: сохраняет группу конфигурации колоды.
Примечание. Услуга ( note.* )
note.findNotes: возвращает идентификаторы заметок для заданного поискового запроса Anki.note.notesInfo: возвращает информацию для указанных идентификаторов заметок.note.getNoteTags: Получает теги для определенного идентификатора заметки.note.addNote: Создает новую заметку.note.updateNoteFields: изменяет поля существующей заметки.note.deleteNotes: Удаляет указанные заметки.note.addNotes: создает несколько заметок.note.addTags: добавляет теги к указанным заметкам.note.removeTags: Удаляет теги из указанных заметок.note.updateNote: изменяет поля и/или теги существующей заметки.
Обслуживание карт ( card.* )
card.findCards: возвращает идентификаторы карт для заданного поискового запроса Anki.card.cardsInfo: возвращает информацию для указанных идентификаторов карт.card.cardsToNotes: возвращает идентификаторы заметок для заданных идентификаторов карт.card.areSuspended: проверяет, приостановлены ли указанные карты.card.cardsModTime: Возвращает время модификации для указанных идентификаторов карт.card.suspended: проверяет, приостановлена ли одна карта.card.suspend: приостанавливает действие указанных карт.card.unsuspend: Отменяет блокировку указанных карт.card.setSpecificValueOfCard: устанавливает определенные значения для одной карты (используйте с осторожностью).
Модель обслуживания ( model.* ) (Типы примечаний)
model.modelNamesAndIds: получает полный список названий моделей (типов заметок) и их идентификаторов.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: Удаляет указанный медиафайл.
Разработка
Для настройки на разработку:
Проведение тестов
Тодо
[ ] Завершить добавление всех инструментов AnkiConnect