Skip to main content
Glama

anki-mcp

Ein Model Context Protocol (MCP)-Server für die Interaktion mit Anki-Karteikarten über das AnkiConnect-Add-on. Dieser Server stellt AnkiConnect-Aktionen als MCP-Tools bereit, die in logischen Diensten organisiert sind.

Voraussetzungen

  • Anki-Desktopanwendung

  • AnkiConnect-Add-on in Anki installiert und konfiguriert

  • Python 3.8+

  • uv (zum Ausführen und Installieren von Abhängigkeiten, optional, aber empfohlen)

Related MCP server: Anki MCP Server

Installation

# Clone the repository git clone https://github.com/ujisati/anki-mcp.git cd anki-mcp # Install dependencies (using uv) uv pip install -e .

Verwendung

So führen Sie den MCP-Server aus:

uv run anki-mcp

Der Server wird gestartet und wartet auf MCP-Anfragen. Normalerweise erfolgt die Schnittstelle zu AnkiConnect unter http://127.0.0.1:8765 .

Überprüfen des Servers

Sie können den MCP-Inspektor verwenden, um die verfügbaren Tools anzuzeigen:

npx @modelcontextprotocol/inspector uv run anki-mcp

Konfiguration für MCP-Clients

Wenn Sie dies in einen MCP-Client (z. B. ein Framework für KI-Assistenten) integrieren, müssen Sie ihn so konfigurieren, dass dieser Server gefunden wird. Hier ist ein Beispiel für eine Konfiguration:

{ "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" // ] } } }

Verfügbare MCP-Tools

Dieser MCP-Server bietet Zugriff auf Anki-Funktionen über nach Diensten gruppierte Tools. Die Toolnamen entsprechen direkt den AnkiConnect-Aktionen.

Deckservice ( deck.* )

  • deck.deckNamesAndIds : Ruft die vollständige Liste der Decknamen und ihrer jeweiligen IDs ab.

  • deck.getDeckConfig : Ruft das Konfigurationsgruppenobjekt für einen bestimmten Decknamen ab.

  • deck.deckNames : Ruft die vollständige Liste der Decknamen für den aktuellen Benutzer ab.

  • deck.createDeck : Erstellt ein neues leeres Deck.

  • deck.deleteDecks : Löscht angegebene Decks.

  • deck.changeDeck : Verschiebt Karten in ein anderes Deck.

  • deck.saveDeckConfig : Speichert eine Deckkonfigurationsgruppe.

Hinweisdienst ( note.* )

  • note.findNotes : Gibt Notiz-IDs für eine bestimmte Anki-Suchabfrage zurück.

  • note.notesInfo : Gibt Informationen für angegebene Notiz-IDs zurück.

  • note.getNoteTags : Ruft die Tags für eine bestimmte Notiz-ID ab.

  • note.addNote : Erstellt eine neue Notiz.

  • note.updateNoteFields : Ändert die Felder einer vorhandenen Notiz.

  • note.deleteNotes : Löscht angegebene Notizen.

  • note.addNotes : Erstellt mehrere Notizen.

  • note.addTags : Fügt angegebenen Notizen Tags hinzu.

  • note.removeTags : Entfernt Tags aus angegebenen Notizen.

  • note.updateNote : Ändert die Felder und/oder Tags einer vorhandenen Notiz.

Kartenservice ( card.* )

  • card.findCards : Gibt Karten-IDs für eine bestimmte Anki-Suchabfrage zurück.

  • card.cardsInfo : Gibt Informationen für angegebene Karten-IDs zurück.

  • card.cardsToNotes : Gibt Notiz-IDs für angegebene Karten-IDs zurück.

  • card.areSuspended : Überprüft, ob angegebene Karten gesperrt sind.

  • card.cardsModTime : Gibt die Änderungszeit für angegebene Karten-IDs zurück.

  • card.suspended : Überprüft, ob eine einzelne Karte gesperrt ist.

  • card.suspend : Sperrt angegebene Karten.

  • card.unsuspend : Hebt die Sperre angegebener Karten auf.

  • card.setSpecificValueOfCard : Legt bestimmte Werte einer einzelnen Karte fest (mit Vorsicht verwenden).

Modelldienst ( model.* ) (Notiztypen)

  • model.modelNamesAndIds : Ruft die vollständige Liste der Modellnamen (Notiztyp) und ihrer IDs ab.

  • model.findModelsByName : Ruft Modelldefinitionen für bereitgestellte Modellnamen ab.

  • model.modelFieldNames : Ruft Feldnamen für einen bestimmten Modellnamen ab.

  • model.modelTemplates : Ruft Vorlageninhalte für jede Karte eines angegebenen Modells ab.

  • model.modelStyling : Ruft den CSS-Stil für einen bestimmten Modellnamen ab.

  • model.createModel : Erstellt ein neues Modell (Notiztyp).

  • model.updateModelTemplates : Ändert Vorlagen eines vorhandenen Modells.

  • model.updateModelStyling : Ändert den CSS-Stil eines vorhandenen Modells.

  • model.modelFieldAdd : Fügt einem vorhandenen Modell ein neues Feld hinzu.

  • model.modelFieldRemove : Entfernt ein Feld aus einem vorhandenen Modell.

Mediendienst ( media.* )

  • media.retrieveMediaFile : Ruft den Base64-codierten Inhalt einer Mediendatei ab.

  • media.getMediaFilesNames : Ruft Namen von Mediendateien ab, die einem Glob-Muster entsprechen.

  • media.storeMediaFile : Speichert eine Mediendatei (von Base64, Pfad oder URL).

  • media.deleteMediaFile : Löscht eine angegebene Mediendatei.

Entwicklung

So richten Sie die Entwicklung ein:

uv sync source .venv/bin/activate uv pip install -e .

Ausführen von Tests

pytest

Aufgaben

  • [ ] Schließen Sie das Hinzufügen aller AnkiConnect-Tools ab

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