Anki MCP Server

by nietus
Integrations
  • 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-Server für Anki. Dieser Server ermöglicht die Interaktion mit Anki über das Model Context Protocol (MCP). Er ermöglicht es Benutzern, Karteikarten, Stapel und Überprüfungsprozesse programmgesteuert zu verwalten.

Voraussetzungen

  • Node.js und npm installiert.
  • AnkiConnect-Plugin installiert und in Anki ausgeführt.

Einrichtung und Ausführung

Es wird dringend empfohlen, lokal zu laufen, da Anki Connect nur lokal funktioniert

So führen Sie es lokal aus:

  1. Klonen Sie das Repository:
    git clone https://github.com/nietus/anki-mcp
  2. Installieren Sie Abhängigkeiten:
    npm install
  3. Erstellen Sie das Projekt: Das prepare in package.json sollte den Build nach der Installation automatisch ausführen. Wenn Sie manuell erstellen müssen:
    npm run build
    Dieser Befehl kompiliert den TypeScript-Code und macht das Client-Skript ausführbar.
  4. Integration mit Cursoreinstellungen für Windows
    "anki": { "command": "cmd", "args": [ "/c", "node", "c:/Users/-/Downloads/anki-mcp/build/client.js" ] }

Verfügbare Tools

Um die Tools zu debuggen, verwenden Sie

npm run inspector

Der Server bietet die folgenden Tools zur Interaktion mit Anki:

  • update_cards :
    • Beschreibung: Nachdem der Benutzer die Karten beantwortet hat, die Sie ihm zur Befragung vorgelegt haben, können Sie sie mit diesem Tool als beantwortet markieren und ihre Leichtigkeit aktualisieren.
    • Eingabe: Ein Array von Antworten, jede mit cardId (Nummer) und ease (Nummer, 1-4).
  • add_card :
    • Beschreibung: Erstellen Sie eine neue Karteikarte in Anki. Beachten Sie, dass der Inhalt HTML verwendet.
      • Zeilenumbrüche: <br>
      • Code: <pre style="background-color: transparent; padding: 10px; border-radius: 5px;">
      • Listen: <ol> und <li>
      • Fett: <strong>
      • Kursiv: <em>
    • Eingang:
      • fields : (Objekt) Ein Objekt, bei dem die Schlüssel Feldnamen (z. B. „Hanzi“, „Pinyin“) und die Werte deren HTML-Inhalt sind.
      • modelName : (Zeichenfolge) Der Name des zu verwendenden Anki-Notiztyps (Modells).
      • deckName : (optionale Zeichenfolge) Der Name des Decks, zu dem die Karte hinzugefügt werden soll. Standardmäßig wird das aktuelle Deck oder „Default“ verwendet.
      • tags : (optionales Array von Zeichenfolgen) Eine Liste von Tags, die der Notiz hinzugefügt werden sollen.
  • get_due_cards :
    • Beschreibung: Gibt eine bestimmte Anzahl von Karten zurück, die zur Überprüfung fällig sind.
    • Eingabe: num (Zahl).
  • get_new_cards :
    • Beschreibung: Gibt eine bestimmte Anzahl neuer und ungesehener Karten zurück.
    • Eingabe: num (Zahl).
  • get-deck-names :
    • Beschreibung: Holen Sie sich eine Liste aller Anki-Decknamen.
    • Eingabe: Keine.
  • find-cards :
    • Beschreibung: Finden Sie Karten mithilfe einer einfachen Anki-Suchabfrage. Gibt detaillierte Karteninformationen einschließlich Feldern zurück.
    • Eingabe: query (Zeichenfolge, z. B. 'deck:Default -tag:test' oder '"deck:My Deck" tag:important' ). Um nach leeren Feldern zu filtern, verwenden Sie '-FieldName:_*' (z. B. '-Hanzi:_*' ).
  • update-note-fields :
    • Beschreibung: Aktualisieren Sie bestimmte Felder einer bestimmten Anki-Notiz.
    • Eingabe: noteId (Zahl), fields (Objekt, zB {"Front": "New Q", "Back": "New A"} ).
  • create_deck :
    • Beschreibung: Erstellen Sie ein neues Anki-Deck.
    • Eingabe: deckName (Zeichenfolge).
  • bulk_update_notes :
    • Beschreibung: Aktualisieren Sie bestimmte Felder für mehrere Anki-Notizen.
    • Eingabe: Ein Array von notes , wobei jede Notiz noteId (Nummer) und fields (Objekt) hat.
  • get_model_names :
    • Beschreibung: Listet alle verfügbaren Anki-Notiztypen/Modellnamen auf.
    • Eingabe: Keine.
  • get_model_details :
    • Beschreibung: Ruft die Felder, Kartenvorlagen und CSS-Stile für einen angegebenen Notiztyp ab.
    • Eingabe: modelName (Zeichenfolge).
  • get_deck_model_info :
    • Beschreibung: Ruft Informationen zu den in einem bestimmten Stapel verwendeten Notentypen (Modellen) ab. Hilft festzustellen, ob ein einzelnes Modell oder mehrere Modelle verwendet werden oder ob der Stapel leer oder nicht vorhanden ist.
    • Eingabe: deckName (Zeichenfolge).
    • Ausgabe: Ein Objekt mit deckName , status (z. B. „single_model_found“, „multiple_models_found“, „no_notes_found“, „deck_not_found“) und bedingt modelName (Zeichenfolge) oder modelNames (Array von Zeichenfolgen).
  • add_note_type_field :
    • Beschreibung: Fügt einem Notiztyp ein neues Feld hinzu.
    • Eingabe: modelName (Zeichenfolge), fieldName (Zeichenfolge).
  • remove_note_type_field :
    • Beschreibung: Entfernt ein vorhandenes Feld aus einem Notiztyp.
    • Eingabe: modelName (Zeichenfolge), fieldName (Zeichenfolge).
  • rename_note_type_field :
    • Beschreibung: Benennt ein Feld in einem Notiztyp um.
    • Eingabe: modelName (Zeichenfolge), oldFieldName (Zeichenfolge), newFieldName (Zeichenfolge).
  • reposition_note_type_field :
    • Beschreibung: Ändert die Reihenfolge (Index) eines Feldes in einem Notiztyp.
    • Eingabe: modelName (Zeichenfolge), fieldName (Zeichenfolge), index (Zahl).
  • update_note_type_templates :
    • Beschreibung: Aktualisiert die HTML-Vorlagen (z. B. Vorder- und Rückseite) für die Karten eines Notiztyps.
    • Eingabe: modelName (Zeichenfolge), templates (Objekt, z. B. {"Card 1": {"Front": "html", "Back": "html"}} ).
  • update_note_type_styling :
    • Beschreibung: Aktualisiert das CSS-Styling für einen Notiztyp.
    • Eingabe: modelName (Zeichenfolge), css (Zeichenfolge).
  • create_model :
    • Beschreibung: Erstellt einen neuen Anki-Notiztyp (Modell).
    • Eingabe: modelName (Zeichenfolge), fieldNames (Array von Zeichenfolgen), cardTemplates (Array von Objekten, jedes mit den HTML-Zeichenfolgen Name , Front und Back “), css (optionale Zeichenfolge), isCloze (optionaler Boolescher Wert, standardmäßig „false“), modelType (optionale Zeichenfolge, standardmäßig „Standard“).
  • add_bulk :
    • Beschreibung: Fügt mehrere Karteikarten in einem einzigen Vorgang zu Anki hinzu. Der Notizinhalt verwendet HTML. Mit diesem Tool können Sie mehrere Notizen (Karten) gleichzeitig hinzufügen.
    • Eingabe: Ein Array von notes , wobei jedes Notizobjekt Folgendes hat:
      • fields : (Objekt) Ein Objekt, bei dem die Schlüssel Feldnamen und die Werte deren HTML-Inhalt sind.
      • modelName : (Zeichenfolge) Der Name des Anki-Notiztyps (Modells), der für diese Notiz verwendet werden soll.
      • deckName : (optionale Zeichenfolge) Der Name des Decks für diese Notiz. Der Standardwert ist „Default“.
      • tags : (optionales Array von Zeichenfolgen) Eine Liste von Tags für diese Notiz.

Weitere Informationen finden Sie hier: Anki Integration | Smithery

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Server, der eine programmgesteuerte Interaktion mit Anki über das Model Context Protocol ermöglicht und es Benutzern erlaubt, Karteikarten, Stapel und Überprüfungsprozesse zu verwalten.

  1. Voraussetzungen
    1. Einrichtung und Ausführung
      1. So führen Sie es lokal aus:
    2. Verfügbare Tools

      Related MCP Servers

      • A
        security
        A
        license
        A
        quality
        A server implementation that connects to a locally running Anki, enabling card review and creation through the Model Context Protocol.
        Last updated -
        4
        40
        JavaScript
        MIT License
        • Apple
      • A
        security
        F
        license
        A
        quality
        A 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 -
        10
        206
        30
        TypeScript
        • Apple
      • -
        security
        A
        license
        -
        quality
        A 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 -
        22
        JavaScript
        MIT License
        • Apple
      • -
        security
        A
        license
        -
        quality
        A 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 -
        206
        1
        JavaScript
        MIT License

      View all related MCP servers

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

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