Skip to main content
Glama

anki-mcp

Сервер Model Context Protocol (MCP) для взаимодействия с карточками Anki через дополнение AnkiConnect. Этот сервер представляет действия AnkiConnect как инструменты MCP, организованные в логические службы.

Предпосылки

  • Приложение Anki для ПК

  • Дополнение AnkiConnect установлено и настроено в Anki

  • Питон 3.8+

  • uv (для запуска и установки зависимостей, необязательно, но рекомендуется)

Related MCP server: Anki MCP Server

Установка

# Clone the repository
git clone https://github.com/ujisati/anki-mcp.git
cd anki-mcp

# Install dependencies (using uv)
uv pip install -e .

Использование

Чтобы запустить сервер MCP:

uv run anki-mcp

Сервер запустится и будет прослушивать запросы MCP, обычно взаимодействуя с AnkiConnect по адресу http://127.0.0.1:8765 .

Проверка сервера

Для просмотра доступных инструментов можно использовать MCP Inspector:

npx @modelcontextprotocol/inspector uv run anki-mcp

Конфигурация для клиентов MCP

Если вы интегрируете это с клиентом MCP (например, фреймворком помощника AI), вам нужно будет настроить его для поиска этого сервера. Вот пример фрагмента конфигурации:

{
    "mcpServers": {
        "anki": {
            "command": "uv",
            "args": [
                "run", // uv will find anki-mcp if run from project root
                "anki-mcp"
            ],
            // If running from outside the project directory, specify the path:
            // "args": [
            //     "--directory",
            //     "/ABSOLUTE/PATH/TO/anki-mcp", // Replace with actual path
            //     "run",
            //     "anki-mcp"
            // ]
        }
    }
}

Доступные инструменты 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 : Удаляет указанный медиафайл.

Разработка

Для настройки на разработку:

uv sync
source .venv/bin/activate

uv pip install -e .

Проведение тестов

pytest

Тодо

  • [ ] Завершить добавление всех инструментов AnkiConnect

Appeared in Searches

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

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