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:
- Klonen Sie das Repository:
- Installieren Sie Abhängigkeiten:
- Erstellen Sie das Projekt: Das
prepare
inpackage.json
sollte den Build nach der Installation automatisch ausführen. Wenn Sie manuell erstellen müssen:Dieser Befehl kompiliert den TypeScript-Code und macht das Client-Skript ausführbar. - Integration mit Cursoreinstellungen für Windows
Verfügbare Tools
Um die Tools zu debuggen, verwenden Sie
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) undease
(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>
- Zeilenumbrüche:
- 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.
- Beschreibung: Erstellen Sie eine neue Karteikarte in Anki. Beachten Sie, dass der Inhalt HTML verwendet.
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 NotiznoteId
(Nummer) undfields
(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 bedingtmodelName
(Zeichenfolge) odermodelNames
(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-ZeichenfolgenName
,Front
undBack
“),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.
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.
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