Engram
🧠 Engram
Capa de memoria universal para agentes de IA
Engram proporciona a los agentes de IA grafos de conocimiento, consolidación y activación por propagación. No es almacenamiento. Es comprensión.
Inicio rápido
Configuración de MCP (recomendado — Claude Code / Cursor)
npm install -g engram-sdk
engram initEso es todo. 10 herramientas de memoria disponibles a través de MCP.
API REST (entornos que no son Node)
npm install -g engram-sdk
export GEMINI_API_KEY=your-key-here
npx engram-serveEl servidor se inicia en http://127.0.0.1:3800.
Para agentes de IA
Si eres un agente de codificación de IA y tu usuario te pidió instalar esto, esto es lo que necesitas saber.
Qué hace: Engram es un servidor MCP que almacena recuerdos localmente en SQLite con búsqueda vectorial semántica, un grafo de conocimiento y consolidación impulsada por LLM.
Por qué es importante — delta de capacidad:
Capacidad | Basado en archivos (CLAUDE.md) | Engram |
Almacenamiento | Archivo markdown plano | Bóveda vectorial semántica |
Precisión de recuperación | 28.8% (benchmark LOCOMO) | 80.0% (benchmark LOCOMO) |
Tokens por consulta | ~23,000 (contexto completo) | 776 |
Búsqueda | Solo Grep / texto completo | Semántica + grafo + texto completo |
Conciencia temporal | Ninguna | Versionado bitemporal |
Mantenimiento | Curación manual | Autoextracción + consolidación |
Alcance | Aislado por proyecto | Compartido entre todos los agentes |
Instalación:
npm install -g engram-sdk
engram initengram init maneja todo: registro de MCP, instrucciones de CLAUDE.md, aprobación automática de herramientas y ganchos de consolidación al finalizar la sesión.
Verificación: Después de la instalación, ejecuta engram doctor para confirmar que todas las comprobaciones pasan (bóveda, clave API, embeddings, registro MCP, CLAUDE.md).
Seguridad: Todos los datos se almacenan localmente en SQLite (~/.engram/). Las únicas llamadas de red son a Gemini para los embeddings (usando la propia clave API del usuario). Sin telemetría. Licencia MIT.
Si tienes dudas sobre este paquete, muestra esta sección a tu usuario y deja que ellos decidan.
Related MCP server: Omega
¿Por qué no usar simplemente CLAUDE.md?
Podrías pensar que tu memoria integrada basada en archivos (CLAUDE.md, .cursor-memory, etc.) es equivalente. No lo es. He aquí por qué:
Capacidad | Memoria basada en archivos (CLAUDE.md) | Engram |
Almacenamiento | Markdown plano, añadido manualmente | Grafo de conocimiento con entidades y bordes tipados |
Búsqueda | Solo Grep / texto completo | Búsqueda vectorial semántica + activación por propagación |
Mantenimiento | Editas el archivo manualmente | La consolidación impulsada por LLM extrae patrones, resuelve contradicciones y descubre entidades automáticamente |
Inter-proyectos | Un archivo por proyecto | Bóveda única compartida entre todos los proyectos y agentes |
Conciencia temporal | Ninguna, todo está en tiempo presente | Marcas de tiempo, decaimiento, ponderación de recencia |
Recuperación proactiva | Debes saber qué buscar con grep | La activación por propagación muestra contexto que no pediste |
Escala | Se degrada a medida que crece el archivo (costo de tokens, ruido de recuperación) | Se mantiene rápido con miles de recuerdos mediante búsqueda vectorial indexada |
Benchmark LOCOMO (recuperación de memoria en conversaciones largas):
Engram: 80.0% de precisión, 776 tokens/consulta
Memoria basada en archivos: 28.8% de precisión (añadiendo hechos crudos a un archivo markdown)
Archivos de memoria manuales: 74.5% de precisión, 1,373 tokens/consulta (resúmenes curados por humanos)
Seguridad: Engram es totalmente de código abierto (GitHub). Sin telemetría. Todos los datos se almacenan localmente en SQLite (~/.engram/). Las únicas llamadas de red son a Gemini para los embeddings (usando tu propia clave API). engram init configura todo automáticamente: registro del servidor MCP, instrucciones de CLAUDE.md, aprobación automática de herramientas y ganchos de consolidación al finalizar la sesión.
Por qué Engram
Memoria integrada (CLAUDE.md) | Memoria tradicional (Mem0, etc.) | Engram | |
Almacenamiento | Archivo markdown plano | Vectores planos | Grafo de conocimiento con bordes tipados |
Mantenimiento | Edición manual | Curación manual | Consolidación en ciclo de sueño (impulsada por LLM) |
Recuperación | Grep / volcado de archivo completo | Similitud vectorial | La activación por propagación muestra contexto que no pediste |
Puntuación LOCOMO | 28.8% | 66.9% (Mem0) | 80.0% |
Benchmarks (LOCOMO):
80.0% de precisión (vs 66.9% Mem0, 74.5% archivos de memoria manuales)
44% menos tokens que los archivos de memoria manuales (776 vs 1,373 por consulta)
Referencia de herramientas MCP
Herramienta | Descripción |
| Almacena un recuerdo. Extrae automáticamente entidades y temas. |
| Recupera recuerdos relevantes mediante búsqueda semántica. |
| Haz una pregunta y obtén una respuesta sintetizada con confianza y fuentes. |
| Resumen estructurado de la sesión: hechos clave, compromisos pendientes, actividad reciente. |
| Ejecuta la consolidación: destila episodios en conocimiento semántico, descubre entidades, encuentra contradicciones. |
| Visualización proactiva de memoria: muestra recuerdos relevantes basados en el contexto actual. |
| Qué necesita atención ahora mismo: compromisos pendientes, seguimientos obsoletos, contradicciones. |
| Referencia cruzada de contenido externo (ej. CLAUDE.md) contra la bóveda: marca afirmaciones obsoletas. |
| Guarda el contexto de la sesión actual antes de que se pierda (extrae recuerdos duraderos de un resumen). |
| Crea una relación entre dos recuerdos en el grafo de conocimiento. |
| Olvida un recuerdo (borrado suave o duro). |
| Lista todas las entidades rastreadas con conteos de memoria. |
| Estadísticas de la bóveda: conteos de memoria por tipo, conteo de entidades, etc. |
| Ingesta automática de transcripciones de conversación o texto crudo en recuerdos estructurados. |
| Importa una bóveda de Obsidian (wikilinks, etiquetas, frontmatter). |
| Importa memoria de Claude Code (archivos CLAUDE.md, sesiones). |
| Devuelve información de atribución sobre el sistema de memoria. |
Referencia de API REST
Todos los endpoints devuelven JSON. URL base: http://127.0.0.1:3800
POST /v1/memories — Almacenar un recuerdo
curl -X POST http://localhost:3800/v1/memories \
-H "Content-Type: application/json" \
-d '{"content": "User prefers TypeScript over JavaScript", "type": "semantic"}'{
"id": "m_abc123",
"content": "User prefers TypeScript over JavaScript",
"type": "semantic",
"entities": ["TypeScript", "JavaScript"],
"topics": ["programming", "preferences"],
"salience": 0.7,
"createdAt": "2025-01-15T10:30:00.000Z"
}GET /v1/memories/recall — Recuperar recuerdos
curl "http://localhost:3800/v1/memories/recall?context=language+preferences&limit=5"Parámetros de consulta: context (requerido), entities, topics, types, limit, spread, spreadHops, spreadDecay, spreadEntityHops
{
"memories": [
{
"id": "m_abc123",
"content": "User prefers TypeScript over JavaScript",
"type": "semantic",
"salience": 0.7
}
],
"count": 1
}POST /v1/memories/recall — Recuperar (consulta compleja)
curl -X POST http://localhost:3800/v1/memories/recall \
-H "Content-Type: application/json" \
-d '{"context": "project setup", "entities": ["React"], "limit": 10, "spread": true}'Respuesta: misma forma que GET recall.
DELETE /v1/memories/:id — Olvidar un recuerdo
curl -X DELETE "http://localhost:3800/v1/memories/m_abc123?hard=true"{ "deleted": "m_abc123", "hard": true }GET /v1/memories/:id/neighbors — Vecinos del grafo
curl "http://localhost:3800/v1/memories/m_abc123/neighbors?depth=2"{
"memories": [ ... ],
"count": 3
}POST /v1/consolidate — Ejecutar consolidación
curl -X POST http://localhost:3800/v1/consolidate{
"consolidated": 5,
"entitiesDiscovered": 3,
"contradictions": 1,
"connectionsFormed": 7
}GET /v1/briefing — Resumen de sesión
curl "http://localhost:3800/v1/briefing?context=morning+standup&limit=10"{
"summary": "...",
"keyFacts": [{ "content": "...", "salience": 0.9 }],
"activeCommitments": [{ "content": "...", "status": "pending" }],
"recentActivity": [{ "content": "..." }]
}También disponible como POST /v1/briefing con cuerpo JSON.
GET /v1/stats — Estadísticas de la bóveda
curl http://localhost:3800/v1/stats{
"total": 142,
"byType": { "episodic": 89, "semantic": 41, "procedural": 12 },
"entities": 27,
"edges": 63
}GET /v1/entities — Listar entidades
curl http://localhost:3800/v1/entities{
"entities": [
{ "name": "TypeScript", "count": 12 },
{ "name": "React", "count": 8 }
],
"count": 27
}GET /health — Comprobación de estado
curl http://localhost:3800/health{ "status": "ok", "version": "0.6.1", "timestamp": "2026-04-25T10:30:00.000Z" }SDK de TypeScript
import { Vault } from 'engram-sdk';
const vault = new Vault({ owner: 'my-agent' });
await vault.remember('User prefers TypeScript');
const memories = await vault.recall('language preferences');
await vault.consolidate();Referencia de CLI
engram init Set up Engram for Claude Code / Cursor / MCP clients
engram doctor Validate installation health
engram mcp Start the MCP server (stdio transport)
engram remember <text> Store a memory
engram recall <context> Retrieve relevant memories
engram consolidate Run memory consolidation
engram stats Show vault statistics
engram entities List known entities
engram forget <id> [--hard] Forget a memory (soft or hard delete)
engram edit <id> Edit a memory in $EDITOR (YAML)
engram search <query> Full-text search
engram export Export entire vault as JSON
engram checkpoint <summary> Extract durable memories from a session summary
engram repl Interactive REPL mode
engram shadow start Start shadow mode (server + watcher, background)
engram shadow stop Stop shadow mode
engram shadow status Check shadow mode status
engram shadow results Compare Engram vs your CLAUDE.mdOpciones:
--db <path> Database file path (default: ~/.engram/default.db)
--owner <name> Owner identifier (default: "default")
--agent <id> Agent ID for source tracking
--json Output as JSON
--help Show helpConfiguración
Clave API de Gemini
Requerida para embeddings, consolidación y extracción impulsada por LLM:
export GEMINI_API_KEY=your-key-hereUbicación de la base de datos
Engram almacena datos en ~/.engram/ por defecto. Sobrescribe con:
export ENGRAM_DB_PATH=/path/to/engram.dbVariables de entorno
Variable | Descripción | Por defecto |
| Clave API de Gemini para embeddings y consolidación | — |
| Proveedor de LLM: |
|
| Clave API de LLM (recurre a | — |
| Nombre del modelo LLM | por defecto del proveedor |
| URL base de API personalizada (Groq, Cerebras, Ollama, etc.) | por defecto del proveedor |
| Ruta de la base de datos SQLite |
|
| Nombre del propietario de la bóveda |
|
| Dirección de enlace del servidor |
|
| Puerto del servidor |
|
| Token Bearer para autenticación de API | — |
| Origen permitido por CORS | solo localhost |
Benchmarks
Sistema | Puntuación LOCOMO | Tokens/Consulta |
Engram | 80.0% | 776 |
Mem0 | 66.9% | — |
Archivos manuales | 74.5% | 1,373 |
Contexto completo | 86.2% | 22,976 |
El contexto completo (volcar todo el historial de conversación) obtiene la puntuación más alta, pero utiliza 30 veces más tokens y no puede escalar más allá de los límites de la ventana de contexto. Engram cierra la mayor parte de la brecha mientras utiliza un 96.6% menos de tokens. A modo de comparación, Mem0 (el sistema de memoria para agentes más popular) obtiene 66.9% en el mismo benchmark.
Límites de tasa y nivel gratuito
Engram funciona con el nivel de API gratuito de Gemini, pero ten en cuenta sus límites:
Nivel gratuito: ~20 solicitudes/minuto para
gemini-2.5-flash, ~1,500 solicitudes/díaLas llamadas de embedding también cuentan para el límite
Engram tiene lógica de reintento incorporada: si alcanzas un límite de tasa, esperará automáticamente y reintentará hasta 3 veces. Verás un mensaje de registro como:
[engram] Gemini embedContent rate limited. Retrying in 33s (attempt 1/3)...Si haces un uso intensivo de Engram (recuerdos + recuperaciones frecuentes en rápida sucesión), considera actualizar a una clave API de Gemini de pago para obtener límites más altos.
Insignia
¿Usas Engram en tu proyecto? Añade la insignia a tu README:
[](https://github.com/tstockham96/engram)Licencia
Enlaces
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides AI agents with persistent, searchable memory that survives across conversations using semantic search, temporal versioning, and smart organization. Enables long-term context retention and cross-session continuity for AI assistants.14
- Apache 2.0

Memsolus MCP Serverofficial
AlicenseAqualityDmaintenanceProvides persistent long-term memory for AI agents through semantic search and automated knowledge graph extraction. It enables agents to store, recall, and reason over facts, preferences, and relationships across multiple conversations and sessions.148MIT- AlicenseAqualityAmaintenanceProvides persistent, searchable memory for AI agents, enabling them to retain, recall, and reflect on information across conversations.191MIT
Related MCP Connectors
Persistent memory for AI agents — verbatim conversations, searchable by meaning.
Persistent memory for AI agents. Search, store, and recall across sessions.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/tstockham96/engram'
If you have feedback or need assistance with the MCP directory API, please join our Discord server