Anki Card Manager (acm)
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ACM_HOME | No | Path to the ACM home directory where data, indices, queues and backups are stored. | ~/.acm |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| acm_ingestB | Procesa tarjetas candidatas: normaliza, clasifica, deduplica, decide y persiste. Args: cards_json: JSON array de tarjetas. Cada tarjeta tiene: - front (str, requerido): Pregunta de la tarjeta - back (str, requerido): Respuesta de la tarjeta - source (str, requerido): Origen ("claude", "chatgpt", "manual") - suggested_tags (list[str], opcional): Tags en formato "category::value" - note_type (str, opcional): Tipo de nota Anki (default "Basic") on_exact_match: qué hacer si el contenido ya existe (mismo fingerprint): "update" (default, actualiza el registro existente — idempotente), "skip" (no toca el existente) o "new" (crea uno nuevo). Evita duplicar el registro al re-ingerir (reporte §7). Returns: JSON con la decisión/persistencia por tarjeta (insert/possible_duplicate/ reject/updated/skipped). |
| acm_annotateA | Anota tarjetas candidatas SIN subir ni persistir nada (E3-1 / RF-A2). Es el corazón del flujo "crear → revisar → subir": Claude propone cards y llama a esto; cada card vuelve anotada para que muestres al usuario una lista YA deduplicada y clasificada. No escribe en el registro ni en Anki. Por cada card devuelve:
Args: cards_json: JSON array. Cada card: front, back, source, y opcionales suggested_tags ("category::value"), note_type, profile, deck, material_origen (PDF/sección de origen). verbose: False (default) → matches compactos (top-2) para economía de tokens (§9); True → detalle completo de cada match. |
| acm_reviewA | Lista tarjetas marcadas como possible_duplicate pendientes de revisión. Returns: JSON con la lista de tarjetas pendientes, cada una con id, front, vendor, topic y fecha. |
| acm_resolveA | Resuelve un item de la cola de revisión con UNA sola acción (E5-1 / E5-3). Funciona en CUALQUIER estado (id completo o prefijo), no solo en la cola activa (§6). La cola incluye duplicados posibles y clasificación ambigua. Args: record_id: ID completo o prefijo del registro. action: "approve" (→ aprobada), "reject" (→ descartada), "purge" (borrado físico del registro) o "correct". front, back: contenido corregido (requeridos para action="correct"). tags: tags sugeridos para la corrección (opcional, "category::value"). note_type, deck: corrección opcional de modelo/mazo (§5). Para "correct", la card corregida REINGRESA al pipeline: se re-deduplica y re-clasifica automáticamente (E5-3). |
| acm_syncA | Empuja las tarjetas aprobadas pendientes a Anki, ruteadas e idempotente. Re-correr no recrea: las subidas pasan a estado 'subida' y se saltan (E4-3).
Anki cerrado → las aprobadas quedan encoladas y suben al reconectar; con
Returns: JSON con synced (id/deck/note_id), errores, batch_id y backup. |
| acm_undoA | Deshace un lote por id (E9-2 / §5). Detecta el tipo automáticamente:
Mirá los lotes disponibles (sync_batches / ingest_batches) con acm_stats. Args: batch_id: id del lote (lo devuelven acm_sync / acm_ingest y los lista acm_stats). |
| acm_auditA | Audita un deck de Anki — una sola tool para tres modos (E6-2). Modos:
Args: deck: deck raíz a auditar. mode: "duplicates" | "recent" | "untagged". profile: perfil de taxonomía (default: el de settings). include_subdecks: incluir subdecks (default True). days: ventana temporal para mode="recent". include_registry: incluir el registro local en mode="duplicates". limit, offset: paginación para mode="untagged". |
| acm_reorganizeA | E7-3: reorganización masiva (one-shot) de un mazo — re-taggea y reporta dups.
Args: deck: deck raíz a reorganizar. profile, include_subdecks: comunes. dry_run: True previsualiza; False aplica (con backup previo). |
| acm_find_similar_cardC | Busca tarjetas similares a un query usando el motor local de duplicados. |
| acm_statsA | Muestra estadísticas del registro de tarjetas procesadas. Returns: JSON con conteo por acción (insert, possible_duplicate, reject) y total. |
| acm_taxonomyA | Consulta o edita la taxonomía de tags (E6-2: show + add en una tool). Args: action: "show" (default, lista categorías y valores) o "add". category: categoría del tag (requerido para action="add"). value: valor a agregar (requerido para action="add"); crea category::value. profile: perfil cuya taxonomía consultar/editar. Returns: JSON con la taxonomía (show) o el resultado de la operación (add). |
| acm_auto_classifyA | Clasifica tarjetas determinísticamente sin usar LLM. Retorna las que se pudieron resolver y las ambiguas que necesitan intervención del agente. Flujo token-eficiente: llama esto primero. Solo las cards en "needs_review" requieren que el agente las analice y llame acm_apply_tags. Args: cards_json: JSON array de tarjetas. Cada tarjeta tiene: - front (str): Pregunta - back (str): Respuesta - source (str, opcional): Origen (default "manual") - suggested_tags (list[str], opcional): Tags existentes "category::value" - note_type (str, opcional): Tipo de nota Anki (default "Basic") Returns: JSON con: - classified: tarjetas resueltas con alta confianza (no requieren tokens) - needs_review: tarjetas ambiguas con contexto para que el agente decida - taxonomy: categorías válidas (solo si hay items en needs_review) - summary: conteos |
| acm_apply_tagsA | Aplica tags decididos por el agente o humano a tarjetas. Úsalo después de acm_auto_classify para las tarjetas en needs_review. Puede aplicar tags tanto a tarjetas nuevas (por índice del batch) como a notas existentes en Anki (por note_id). Args: assignments_json: JSON array de asignaciones. Cada una tiene: - tags (list[str]): Tags en formato "category::value" Y uno de: - note_id (int): Para notas ya existentes en Anki - card (dict): Para tarjetas nuevas, con front/back/source file: Ruta opcional a un archivo JSON/YAML con las asignaciones. Returns: JSON con resultados: tags aplicados, errores de validación, tarjetas procesadas vía el pipeline normal de ingest. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Eduvent/Anki-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server