Memora
Tarjetas interactivas, cuestionarios y tarjetas cloze con repetición espaciada FSRS, renderizadas en línea en Claude Desktop como una aplicación MCP.
Documentación
Memora MCP
Convierte cualquier conversación en una sesión de estudio interactiva, directamente en Claude Desktop. Pídele a Claude que cree un mazo y generará las tarjetas, luego las mostrará como una revisión integrada que puedes recorrer: voltea tarjetas didácticas, responde cuestionarios de opción múltiple y completa los espacios en blanco de cloze. Cada respuesta actualiza un programa de repetición espaciada, y tus resultados regresan a Claude para que pueda reforzar lo que fallaste.
Palabras clave: Model Context Protocol, servidor MCP, aplicaciones MCP, Claude Desktop, tarjetas didácticas, cuestionarios, repetición espaciada, SRS, FSRS, alternativa a Anki.
Construido sobre la extensión MCP Apps (SEP-1865): especificación MCP principal 2025-11-25 más la extensión Apps 2026-01-26.
Características
Tres formas de estudiar, todas renderizadas en línea y calificadas de la misma manera:
- Tarjetas didácticas: haz clic para voltear y luego califica Lo sabía / No lo sabía.
- Cuestionarios de opción múltiple: elige una opción y las respuestas correctas/incorrectas se revelan al instante.
- Cloze (completar espacios en blanco): el espacio se revela en su lugar para que la oración permanezca intacta. Escribe un espacio como
[...]en el frente de una tarjeta y se convierte automáticamente en una tarjeta cloze.
Repetición espaciada: cada calificación actualiza el programa FSRS de cada tarjeta (mediante ts-fsrs), de modo que las tarjetas débiles reaparezcan antes y las pendientes aparezcan primero. Pregunta "¿qué hay pendiente hoy?" para obtener un resumen de todos tus mazos.
Organiza con categorías: nombra los mazos con :: para anidarlos (por ejemplo, LLM::Attention). Explora el árbol de categorías, o el mismo árbol como un mapa mental interactivo, y estudia toda una rama en una sola sesión combinada. Los mazos de cuestionarios se marcan con una insignia.
Administra tus mazos: crea, agrega, edita, renombra y elimina mazos y tarjetas sin salir del chat. Pasa reverse al crear un mazo para también practicar cada tarjeta en ambas direcciones (útil para vocabulario).
Solo JSON: los mazos viven en data/decks.json, se leen en vivo en cada llamada. Edítalos manualmente o deja que Claude los construya. Sin base de datos, sin servicio externo.
Las herramientas
Solo review_deck y study abren la interfaz de tarjetas volteables en línea; todo lo demás devuelve un resumen de texto, por lo que editar o crear en el chat ya no abre el widget.
| Herramienta | Qué hace |
|---|---|
review_deck | Abre un mazo para revisión (tarjetas pendientes primero, con límite por sesión). |
study | Revisa un subárbol de categoría completo, combinado en una sola sesión (con límite por sesión). |
create_deck | Genera tarjetas didácticas o tarjetas cloze; reverse también agrega tarjetas en ambas direcciones. |
create_quiz | Genera preguntas de opción múltiple. |
grade_card | Registra un resultado de revisión y actualiza el programa FSRS de la tarjeta (lo llama la interfaz). |
due_today | Resume lo que está pendiente en todos los mazos y marca las tarjetas con dificultades (3+ fallos). |
edit_card | Cambia el frente y/o el reverso de una tarjeta. |
refine_card | Propone dividir una tarjeta en piezas atómicas, o reescribirla para evaluar comprensión. |
apply_refinement | Guarda un refinamiento después de que el usuario apruebe las tarjetas propuestas. |
capture | Convierte algo que te causó problemas (un error, una pregunta fallida) en tarjetas borrador. |
apply_capture | Guarda las tarjetas capturadas después de que el usuario las apruebe. |
rename_deck | Renombra un mazo (también lo mueve en el árbol de categorías). |
delete_card | Elimina una sola tarjeta. |
delete_deck | Elimina un mazo completo. |
La generación de tarjetas sigue las reglas de calidad de Memora (tarjetas atómicas de un solo concepto, respuestas de 1 a 5 palabras, recuerdo activo, sin ambigüedad, sin fuga de respuestas, aplicación sobre definición), basadas en las 20 Reglas para Formular Conocimiento de Wozniak. Las tarjetas nuevas se revisan al escribirse y se marcan (nunca se bloquean) para que Claude pueda revisarlas.
Cómo funciona (MCP Apps)
Una herramienta declara un recurso ui://. Cuando Claude llama a la herramienta, el host (Claude Desktop) obtiene ese recurso, renderiza su HTML en un iframe aislado, pasa el resultado de la herramienta a la interfaz, y la interfaz se comunica con el host mediante JSON-RPC (para calificar tarjetas y reportar progreso al modelo).
Inicio rápido
Requisitos previos
- Node.js 20.11+
Conectar a Claude Desktop
Abre Configuración > Desarrollador > Editar configuración y agrega Memora bajo mcpServers:
{
"mcpServers": {
"memora": {
"command": "npx",
"args": ["-y", "@servation/memora-mcp", "--stdio"]
}
}
}
Luego cierra Claude Desktop por completo (desde la bandeja del sistema) y vuelve a abrirlo. memora aparece en Configuración > Desarrollador, precargado con algunos mazos de ejemplo.
Tus mazos se almacenan en ~/.memora/decks.json (anula la ruta con la variable de entorno MEMORA_DECKS). Edita ese archivo manualmente o deja que Claude lo administre.
Ejecutar desde el código fuente en su lugar
git clone https://github.com/Servation/memora-mcp.git
cd memora-mcp
npm install
npm run build
Apunta la configuración a la entrada compilada con una ruta absoluta (los mazos entonces viven en data/decks.json del repositorio):
{
"mcpServers": {
"memora": {
"command": "node",
"args": ["C:\\path\\to\\memora-mcp\\dist\\main.js", "--stdio"]
}
}
}
Pruébalo (en un chat de Claude Desktop)
review my World Capitals deckmake me a deck of 10 Spanish travel phrasesmake a reversible deck of 10 Spanish words(practica en ambas direcciones)make a fill-in-the-blank deck about the water cycle(tarjetas cloze)quiz me with 10 multiple-choice questions on the solar systemturn what we just discussed into a deck called "Photosynthesis"study my LLM categorywhat's due today?
Pila tecnológica
- Servidor: TypeScript,
@modelcontextprotocol/sdkmás@modelcontextprotocol/ext-apps, transporte stdio (HTTP Streamable también disponible). - Interfaz: React más Vite, empaquetado en un único archivo HTML en línea mediante
vite-plugin-singlefile. - Programación:
ts-fsrs(FSRS). - El tiempo de ejecución es
nodeuna vez compilado (no se necesitan bun ni tsx).
Formato del mazo
{
"Deck Name": [
{ "front": "Capital of France?", "back": "Paris" }
]
}
- Almacenado en
~/.memora/decks.jsoncuando se instala (odata/decks.jsondesde el código fuente); anula conMEMORA_DECKS. - Se lee en vivo (con caché por mtime).
create_deck,create_quizygrade_cardescriben aquí de forma atómica. - Una tarjeta de cuestionario agrega
"options": ["...", "..."]; subackes la opción correcta. - Una tarjeta cloze escribe el espacio como
[...]en el frente, con el término oculto comoback. - Las tarjetas ganan una fecha
duey un bloque FSRSsrsa medida que las revisas; las tarjetas sin ellos se tratan como nuevas. - Mantén el JSON válido, o el servidor recurre a un mazo predeterminado integrado.
Estructura del proyecto
memora-mcp/
├── server.ts # MCP tools + the ui:// resource
├── decks.ts # data model, decks.json storage, result builder
├── scheduling.ts # FSRS scheduling + review ordering
├── main.ts # entry: stdio (Claude Desktop) or Streamable HTTP
├── mcp-app.html # UI entry HTML (bundled by Vite)
├── src/
│ ├── mcp-app.tsx # review orchestrator (flip / quiz / cloze, grade -> model)
│ ├── deck-lib.tsx # tree, mind map, card list, quiz/cloze views, helpers
│ ├── mcp-app.module.css
│ └── global.css # host theme variable fallbacks (light/dark)
├── data/decks.json # editable decks, read live
├── media/ # README images
├── vite.config.ts # single-file bundle config
└── tsconfig*.json
Desarrollo
npm run dev # vite watch (UI) plus tsx server on http://localhost:3001/mcp
npm run typecheck # tsc --noEmit
Para iteración local rápida también puedes ejecutar la aplicación contra el host de referencia de MCP Apps (basic-host) desde el repositorio ext-apps.
Hoja de ruta
Consulta TODO.md para el backlog: publicación en npm y MCP Registry, alojamiento entre clientes (HTTP Streamable), pruebas de análisis y programación, y un GIF real de demostración de captura de pantalla.