AnkiConnect

Servidor MCP de AnkiConnect para interactuar con Anki a través de AnkiConnect.

Documentación

Servidor MCP de Anki Connect

Un servidor de Model Context Protocol (MCP) que proporciona una integración perfecta con Anki a través del complemento AnkiConnect. Este servidor permite a los asistentes de IA y otros clientes MCP interactuar con tu colección de tarjetas de memoria de Anki programáticamente.

Project

¿Qué es Anki Connect?

AnkiConnect es un potente complemento de Anki que expone la funcionalidad de Anki a través de una API REST. Permite a aplicaciones externas:

  • Crear, modificar y eliminar tarjetas de memoria
  • Gestionar mazos y sus configuraciones
  • Controlar la interfaz gráfica de Anki programáticamente
  • Buscar y recuperar información de tarjetas
  • Gestionar etiquetas y tipos de notas
  • Realizar operaciones masivas en tarjetas y notas

¿Qué es MCP (Model Context Protocol)?

El Model Context Protocol es una forma estandarizada para que los asistentes de IA se conecten a fuentes de datos y herramientas externas. Este servidor MCP actúa como un puente entre clientes MCP (como Claude Desktop) y AnkiConnect, permitiendo que los asistentes de IA te ayuden a gestionar tus tarjetas de memoria de Anki de forma natural a través de la conversación.

Características

Este servidor MCP proporciona acceso completo a la funcionalidad de AnkiConnect a través de las siguientes herramientas:

Gestión de Tarjetas de Memoria

  • create_flashcard() - Crear nuevas tarjetas de memoria con contenido frontal y posterior
  • add_note() - Añadir notas con campos y etiquetas personalizados
  • add_notes() - Añadir múltiples notas en lote
  • update_note_fields() - Actualizar campos de notas existentes
  • find_notes() - Buscar notas usando la sintaxis de consulta de Anki

Gestión de Mazos

  • deck_names() - Obtener todos los nombres de mazos
  • deck_names_and_ids() - Obtener nombres de mazos con sus IDs
  • change_deck() - Mover tarjetas entre mazos
  • delete_decks() - Eliminar mazos y opcionalmente sus tarjetas
  • get_deck_config() - Recuperar ajustes de configuración de mazos

Operaciones con Tarjetas

  • find_cards() - Buscar tarjetas
  • cards_info() - Obtener información detallada de tarjetas
  • suspend() / unsuspend() - Suspender/reanudar tarjetas
  • are_suspended() / are_due() - Comprobar estado de tarjetas

Control de Interfaz Gráfica

  • gui_deck_browser() - Abrir el navegador de mazos
  • gui_deck_review() - Iniciar revisión de mazos
  • gui_browse() - Abrir el navegador de tarjetas con búsqueda
  • gui_add_cards() - Abrir el diálogo de añadir tarjetas

Herramientas de Utilidad

  • version() - Obtener la versión de AnkiConnect
  • get_tags() - Recuperar todas las etiquetas
  • multi() - Ejecutar múltiples solicitudes de AnkiConnect en lote

Requisitos Previos

1. Instalar el Complemento AnkiConnect

  1. Abre Anki
  2. Ve a Herramientas → Complementos
  3. Haz clic en Obtener complementos...
  4. Introduce el código: 2055492159
  5. Haz clic en Aceptar y reinicia Anki

2. Configurar AnkiConnect (Opcional)

AnkiConnect funciona sin configuración adicional, pero puedes personalizar sus ajustes:

  1. Ve a Herramientas → Complementos
  2. Selecciona AnkiConnect y haz clic en Configurar
  3. Modifica los ajustes si es necesario (el puerto predeterminado es 8765)
  4. Reinicia Anki después de realizar cambios

Instalación

  1. Clona este repositorio:
git clone https://github.com/spacholski1225/anki-connect-mcp.git
cd anki-connect-mcp
  1. Instala las dependencias:
npm install
  1. Compila el proyecto:
npm run build

Configuración del Cliente MCP

Claude Desktop

Para usar este servidor MCP con Claude Desktop, añade la siguiente configuración a tu archivo de ajustes MCP:

Ubicación del archivo de configuración MCP:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Opciones de Configuración:

Opción 1: Usando Node.js (Instalación Local)

{
  "mcpServers": {
    "anki-connect-mcp": {
      "command": "node",
      "args": [
        "dist/index.js"
      ],
      "env": {},
      "disabled": false,
      "alwaysAllow": [
        "deck_names",
        "cards_info",
        "deck_names_and_ids",
        "gui_deck_browser"
      ]
    }
  }
}

Opción 2: Usando npx (Paquete NPM)

Luego configura tu cliente MCP:

{
  "mcpServers": {
    "anki-connect": {
      "command": "npx",
      "args": [
        "@spacholski1225/anki-connect-mcp"
      ],
      "env": {},
      "disabled": false,
      "alwaysAllow": [
        "deck_names",
        "cards_info",
        "deck_names_and_ids",
        "gui_deck_browser"
      ]
    }
  }
}

Opción 3: Usando Docker

{
  "mcpServers": {
    "anki-connect": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--network=host",
        "-e", "ANKI_CONNECT_URL=http://host.docker.internal:8765",
        "spacholski/anki-connect-mcp:latest"
      ],
      "env": {},
      "disabled": false,
      "alwaysAllow": [
        "deck_names",
        "cards_info",
        "deck_names_and_ids",
        "gui_deck_browser"
      ]
    }
  }
}

Configuración Específica de AnkiConnect para Docker:

Cuando uses la opción de Docker, debes configurar AnkiConnect con ajustes específicos para permitir el acceso desde el contenedor Docker:

  1. Ve a Herramientas → Complementos en Anki
  2. Selecciona AnkiConnect y haz clic en Configurar
  3. Actualiza la configuración con los siguientes ajustes:
{
    "apiKey": null,
    "apiLogPath": null,
    "ignoreOriginList": [],
    "webBindAddress": "0.0.0.0",
    "webBindPort": 8765,
    "webCorsOriginList": [
        "http://localhost",
        "http://host.docker.internal",
        "http://host.docker.internal:3000"
    ]
}

Puntos Clave de Configuración para Docker:

  • webBindAddress: "0.0.0.0" - Permite que AnkiConnect acepte conexiones desde cualquier dirección IP (requerido para contenedores Docker)
  • webCorsOriginList - Debe incluir "http://host.docker.internal" y orígenes relacionados para permitir solicitudes de origen cruzado desde contenedores Docker
  • Reinicia Anki después de realizar estos cambios de configuración

Notas Importantes:

  • Para la opción Node.js: Reemplaza la ruta en args con la ruta real a tu archivo index.js compilado
  • Para la opción npx: Usa el paquete NPM publicado @spacholski1225/anki-connect-mcp - no se requiere instalación local
  • Para la opción Docker: Usa la imagen Docker precompilada spacholski/anki-connect-mcp:latest
  • El array alwaysAllow contiene herramientas que no requerirán confirmación cada vez
  • Asegúrate de que Anki esté ejecutándose con AnkiConnect habilitado antes de usar el servidor MCP
  • Para la opción Docker, el indicador --network=host permite que el contenedor acceda a AnkiConnect en la máquina anfitriona

Ejemplos de Uso

Una vez configurado con un cliente MCP como Claude Desktop, puedes interactuar con tu colección de Anki de forma natural:

  • "Crea una tarjeta de memoria sobre la capital de Francia"
  • "Muéstrame todos los nombres de mis mazos"
  • "Encuentra todas las tarjetas etiquetadas con 'vocabulario'"
  • "Suspende todas las tarjetas en el mazo 'Palabras Difíciles'"
  • "Abre el navegador de mazos en Anki"

Solución de Problemas

Problemas Comunes

  1. Conexión rechazada: Asegúrate de que Anki esté ejecutándose y AnkiConnect esté instalado
  2. Conflictos de puerto: Comprueba si el puerto 8765 está disponible o configura AnkiConnect para usar un puerto diferente
  3. Errores de permisos: Asegúrate de que el servidor MCP tenga los permisos adecuados del sistema de archivos
  4. Herramienta no encontrada: Verifica la configuración del cliente MCP y reinicia el cliente

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar problemas, solicitudes de funciones o solicitudes de extracción.

Licencia

Licencia ISC

Referencias