Skip to main content
Glama

anki-mcp

Un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con las tarjetas de memoria de Anki mediante el complemento AnkiConnect. Este servidor expone las acciones de AnkiConnect como herramientas MCP, organizadas en servicios lógicos.

Prerrequisitos

  • Aplicación de escritorio Anki

  • Complemento AnkiConnect instalado y configurado en Anki

  • Python 3.8+

  • uv (para ejecutar e instalar dependencias, opcional pero recomendado)

Related MCP server: Anki MCP Server

Instalación

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

Uso

Para ejecutar el servidor MCP:

uv run anki-mcp

El servidor se iniciará y escuchará las solicitudes MCP, generalmente interactuando con AnkiConnect en http://127.0.0.1:8765 .

Inspeccionando el servidor

Puede utilizar el Inspector MCP para ver las herramientas disponibles:

npx @modelcontextprotocol/inspector uv run anki-mcp

Configuración para clientes MCP

Si lo integra con un cliente MCP (como un framework de asistente de IA), deberá configurarlo para que encuentre este servidor. A continuación, se muestra un fragmento de configuración de ejemplo:

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

Herramientas MCP disponibles

Este servidor MCP proporciona acceso a la funcionalidad de Anki mediante herramientas agrupadas por servicios. Los nombres de las herramientas corresponden directamente a las acciones de AnkiConnect.

Servicio de cubierta ( deck.* )

  • deck.deckNamesAndIds : obtiene la lista completa de nombres de mazos y sus respectivos ID.

  • deck.getDeckConfig : obtiene el objeto del grupo de configuración para un nombre de deck determinado.

  • deck.deckNames : obtiene la lista completa de nombres de mazos para el usuario actual.

  • deck.createDeck : crea un nuevo deck vacío.

  • deck.deleteDecks : elimina los decks especificados.

  • deck.changeDeck : Mueve cartas a un mazo diferente.

  • deck.saveDeckConfig : guarda un grupo de configuración de cubierta.

Nota de servicio ( note.* )

  • note.findNotes : Devuelve los ID de notas para una consulta de búsqueda de Anki determinada.

  • note.notesInfo : Devuelve información para los ID de notas especificados.

  • note.getNoteTags : obtiene las etiquetas para una ID de nota específica.

  • note.addNote : Crea una nueva nota.

  • note.updateNoteFields : modifica los campos de una nota existente.

  • note.deleteNotes : elimina notas especificadas.

  • note.addNotes : crea múltiples notas.

  • note.addTags : agrega etiquetas a notas específicas.

  • note.removeTags : elimina las etiquetas de las notas especificadas.

  • note.updateNote : Modifica los campos y/o etiquetas de una nota existente.

Servicio de tarjeta ( card.* )

  • card.findCards : Devuelve los ID de tarjetas para una consulta de búsqueda de Anki determinada.

  • card.cardsInfo : Devuelve información para los ID de tarjetas especificados.

  • card.cardsToNotes : Devuelve los ID de notas para los ID de tarjetas determinados.

  • card.areSuspended : verifica si las tarjetas especificadas están suspendidas.

  • card.cardsModTime : Devuelve la hora de modificación para las ID de tarjetas especificadas.

  • card.suspended : verifica si una sola tarjeta está suspendida.

  • card.suspend : suspende las tarjetas especificadas.

  • card.unsuspend : anula la suspensión de tarjetas específicas.

  • card.setSpecificValueOfCard : establece valores específicos de una sola tarjeta (úselo con precaución).

Servicio de modelos ( model.* ) (Tipos de notas)

  • model.modelNamesAndIds : obtiene la lista completa de nombres de modelos (tipo de nota) y sus ID.

  • model.findModelsByName : Obtiene las definiciones de modelos para los nombres de modelos proporcionados.

  • model.modelFieldNames : obtiene los nombres de campo para un nombre de modelo determinado.

  • model.modelTemplates : obtiene el contenido de la plantilla para cada tarjeta de un modelo especificado.

  • model.modelStyling : obtiene el estilo CSS para un nombre de modelo determinado.

  • model.createModel : Crea un nuevo modelo (tipo nota).

  • model.updateModelTemplates : modifica las plantillas de un modelo existente.

  • model.updateModelStyling : modifica el estilo CSS de un modelo existente.

  • model.modelFieldAdd : agrega un nuevo campo a un modelo existente.

  • model.modelFieldRemove : elimina un campo de un modelo existente.

Servicio de medios ( media.* )

  • media.retrieveMediaFile : recupera el contenido codificado en base64 de un archivo multimedia.

  • media.getMediaFilesNames : obtiene los nombres de los archivos multimedia que coinciden con un patrón global.

  • media.storeMediaFile : almacena un archivo multimedia (desde base64, ruta o URL).

  • media.deleteMediaFile : elimina un archivo multimedia especificado.

Desarrollo

Para prepararse para el desarrollo:

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

Ejecución de pruebas

pytest

Hacer

  • [ ] Terminar de agregar todas las herramientas de AnkiConnect

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