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
Servidor MCP para Anki. Este servidor permite la interacción con Anki mediante el Protocolo de Contexto de Modelo (MCP). Permite a los usuarios gestionar tarjetas, mazos y procesos de revisión mediante programación.
Prerrequisitos
- Node.js y npm instalados.
- Complemento AnkiConnect instalado y ejecutándose en Anki.
Configuración y ejecución
Se recomienda encarecidamente ejecutarlo localmente, ya que Anki Connect solo funciona localmente.
Para ejecutar localmente:
- Clonar el repositorio:
- Instalar dependencias:
- Compilar el proyecto: El script
prepare
enpackage.json
debería ejecutar la compilación automáticamente tras la instalación. Si necesita compilar manualmente:Este comando compila el código TypeScript y hace que el script del cliente sea ejecutable. - Integrar con la configuración del cursor para Windows
Herramientas disponibles
Para depurar las herramientas, utilice
El servidor proporciona las siguientes herramientas para interactuar con Anki:
update_cards
:- Descripción: Después de que el usuario responda las tarjetas en las que lo has interrogado, utiliza esta herramienta para marcarlas como respondidas y actualizar su facilidad.
- Entrada: una matriz de respuestas, cada una con
cardId
(número) yease
(número, 1-4).
add_card
:- Descripción: Crea una nueva flashcard en Anki. Nota: El contenido usa HTML.
- Saltos de línea:
<br>
- Código:
<pre style="background-color: transparent; padding: 10px; border-radius: 5px;">
- Listas:
<ol>
y<li>
- Negrita:
<strong>
- Cursiva:
<em>
- Saltos de línea:
- Aporte:
fields
: (objeto) Un objeto donde las claves son los nombres de campo (por ejemplo, "Hanzi", "Pinyin") y los valores son su contenido HTML.modelName
: (cadena) El nombre del tipo de nota Anki (modelo) a utilizar.deckName
: (cadena opcional) El nombre del mazo al que se añadirá la carta. El valor predeterminado es el mazo actual o "Predeterminado".tags
: (matriz opcional de cadenas) Una lista de etiquetas para agregar a la nota.
- Descripción: Crea una nueva flashcard en Anki. Nota: El contenido usa HTML.
get_due_cards
:- Descripción: Devuelve una cantidad determinada de tarjetas que deben revisarse.
- Entrada:
num
(número).
get_new_cards
:- Descripción: Devuelve una cantidad determinada de tarjetas nuevas y no vistas.
- Entrada:
num
(número).
get-deck-names
:- Descripción: Obtenga una lista de todos los nombres de mazos de Anki.
- Entrada: Ninguna.
find-cards
:- Descripción: Encuentra tarjetas mediante una consulta de búsqueda Anki sin procesar. Devuelve información detallada de la tarjeta, incluidos los campos.
- Entrada:
query
(cadena, p. ej.,'deck:Default -tag:test'
o'"deck:My Deck" tag:important'
). Para filtrar campos vacíos, utilice'-FieldName:_*'
(p. ej.,'-Hanzi:_*'
).
update-note-fields
:- Descripción: Actualizar campos específicos de una nota Anki determinada.
- Entrada:
noteId
(número),fields
(objeto, p. ej.,{"Front": "New Q", "Back": "New A"}
).
create_deck
:- Descripción: Crea un nuevo mazo de Anki.
- Entrada:
deckName
(cadena).
bulk_update_notes
:- Descripción: Actualizar campos específicos para múltiples notas de Anki.
- Entrada: una matriz de
notes
, donde cada nota tienenoteId
(número) yfields
(objeto).
get_model_names
:- Descripción: Enumera todos los nombres de tipos y modelos de notas Anki disponibles.
- Entrada: Ninguna.
get_model_details
:- Descripción: Recupera los campos, las plantillas de tarjetas y el estilo CSS para un tipo de nota específico.
- Entrada:
modelName
(cadena).
get_deck_model_info
:- Descripción: Recupera información sobre los tipos de notas (modelos) utilizados en un mazo específico. Ayuda a determinar si se utiliza un solo modelo, varios, o si el mazo está vacío o no existe.
- Entrada:
deckName
(cadena). - Salida: Un objeto con
deckName
,status
(por ejemplo, "single_model_found", "multiple_models_found", "no_notes_found", "deck_not_found") y, condicionalmente,modelName
(cadena) omodelNames
(matriz de cadenas).
add_note_type_field
:- Descripción: Agrega un nuevo campo a un tipo de nota.
- Entrada:
modelName
(cadena),fieldName
(cadena).
remove_note_type_field
:- Descripción: Elimina un campo existente de un tipo de nota.
- Entrada:
modelName
(cadena),fieldName
(cadena).
rename_note_type_field
:- Descripción: Cambia el nombre de un campo en un tipo de nota.
- Entrada:
modelName
(cadena),oldFieldName
(cadena),newFieldName
(cadena).
reposition_note_type_field
:- Descripción: Cambia el orden (índice) de un campo en un tipo de nota.
- Entrada:
modelName
(cadena),fieldName
(cadena),index
(número).
update_note_type_templates
:- Descripción: Actualiza las plantillas HTML (por ejemplo, anverso y reverso) para las tarjetas de un tipo de nota.
- Entrada:
modelName
(cadena),templates
(objeto, p. ej.,{"Card 1": {"Front": "html", "Back": "html"}}
).
update_note_type_styling
:- Descripción: Actualiza el estilo CSS para un tipo de nota.
- Entrada:
modelName
(cadena),css
(cadena).
create_model
:- Descripción: Crea un nuevo tipo de nota Anki (modelo).
- Entrada:
modelName
(cadena),fieldNames
(matriz de cadenas),cardTemplates
(matriz de objetos, cada uno con las cadenas HTMLName
,Front
,Back
),css
(cadena opcional),isCloze
(booleano opcional, el valor predeterminado es falso),modelType
(cadena opcional, el valor predeterminado es 'Estándar').
add_bulk
:- Descripción: Agrega varias tarjetas a Anki en una sola operación. El contenido de las notas usa HTML. Esta herramienta permite agregar varias notas (tarjetas) a la vez.
- Entrada: una matriz de
notes
, donde cada objeto de nota tiene:fields
: (objeto) Un objeto donde las claves son los nombres de los campos y los valores son su contenido HTML.modelName
: (cadena) El nombre del tipo de nota Anki (modelo) que se utilizará para esta nota.deckName
: (cadena opcional) El nombre del deck para esta nota. El valor predeterminado es 'Default'.tags
: (matriz opcional de cadenas) Una lista de etiquetas para esta nota.
Puede encontrar más información aquí Integración de Anki | Smithery
You must be authenticated.
Servidor que permite la interacción programática con Anki a través del Protocolo de Contexto de Modelo, permitiendo a los usuarios administrar flashcards, mazos y procesos de revisión.
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