Elasticsearch Knowledge Graph for MCP
mcp-brain-tools
Un servidor MCP que proporciona a los agentes de IA memoria persistente con seguimiento de frescura integrado y repetición espaciada. Respaldado por Elasticsearch.
A diferencia de los almacenes de memoria simples de clave-valor, mcp-brain-tools realiza un seguimiento de la antigüedad de cada pieza de conocimiento, marca lo que necesita revisión y permite a los agentes verificar la información para mantenerla actualizada, inspirado en cómo la repetición espaciada ayuda a los humanos a retener el conocimiento.
Características
Frescura por repetición espaciada — cada entidad tiene un intervalo de revisión que se duplica tras la verificación (limitado a 365 días). Las etiquetas de confianza (fresco/normal/envejeciendo/obsoleto/archivo) indican a los agentes en qué confiar.
Búsqueda progresiva — las consultas devuelven primero los resultados frescos, ampliándose automáticamente para incluir datos más antiguos solo cuando es necesario.
Observaciones como entidades — cada observación obtiene su propio ciclo de vida de frescura, por lo que "la compilación está rota" (revisión de 1 día) y "fundado en 2015" (revisión de 365 días) envejecen de forma independiente.
Zonas de memoria — aísla el conocimiento por proyecto, equipo o dominio.
Filtrado potenciado por IA — la integración opcional con Groq califica los resultados de búsqueda por relevancia.
DRY por diseño — las descripciones de las herramientas guían a los agentes para no almacenar lo que ya está en el código, git o la documentación.
Related MCP server: Logseq MCP Tools
Configuración
Requisitos previos
Node.js >= 18
Docker (para Elasticsearch) o una instancia remota de Elasticsearch
Instalación y compilación
npm install
npm run buildIniciar Elasticsearch
npm run es:startO apunte a su propia instancia mediante la variable de entorno ES_NODE.
Configurar su cliente MCP
Añada esto a su configuración de Claude Code, Claude Desktop u otro cliente MCP:
{
"mcpServers": {
"memory": {
"command": "node",
"args": ["/path/to/mcp-brain-tools/dist/index.js"],
"env": {
"ES_NODE": "http://localhost:9200",
"GROQ_API_KEY": "your-key-here"
}
}
}
}GROQ_API_KEY es opcional: permite el filtrado de búsqueda potenciado por IA y la puntuación de relevancia de zona.
Instalar el hook de memoria automática (solo para Claude Code)
El hook de memoria se ejecuta en cada mensaje del usuario e inyecta automáticamente el contexto relevante; no se requiere cooperación del agente.
Añada esto a ~/.claude/settings.json:
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "node /path/to/mcp-brain-tools/dist/memory-hook.js"
}
]
}
]
}
}El hook utiliza las mismas variables de entorno ES_NODE, AI_API_KEY/GROQ_API_KEY, AI_API_BASE y AI_MODEL (establézcalas en el bloque env de su configuración o expórtelas en su perfil de shell).
AI_API_BASE utiliza por defecto el endpoint de Groq, pero acepta cualquier URL de API compatible con OpenAI.
Cómo funciona
Entidades y observaciones
Las entidades representan cualquier cosa que valga la pena recordar: personas, proyectos, decisiones, hechos. Cada entidad tiene:
Un nombre y un tipo
Campos de repetición espaciada:
verifiedAt,reviewInterval,nextReviewAtUna etiqueta de confianza calculada a partir de la frescura:
1 - (díasDesdeVerificación / intervaloDeRevisión)
Las observaciones se almacenan como entidades separadas vinculadas mediante relaciones is_observation_of. Cada observación tiene su propia cadencia de revisión:
Entity: "iaptic-server" (type: Project, reviewInterval: 30 days)
<- "iaptic-server: uses TypeScript" (reviewInterval: 180 days)
<- "iaptic-server: migration in progress" (reviewInterval: 7 days)Ciclo de vida de frescura
Entidad creada —
confidence: "fresh", revisión predeterminada en 7 díasPasa la fecha de revisión —
confidence: "aging",needsReview: trueEl agente verifica (mediante
verify_entity) — el intervalo se duplica, la confianza se restablece a "fresh"Mucho tiempo vencido —
confidence: "stale"luego"archival", excluido de la búsqueda predeterminada
Búsqueda progresiva
Al buscar, el servidor utiliza tres pasadas:
freshness >= 0— entidades frescas y normalesfreshness >= -2— añade envejecidas y obsoletasSin filtro — añade archivos
Esto mantiene los resultados limpios mientras asegura que nada se pierda permanentemente.
Herramientas MCP
Herramienta | Descripción |
| Crear entidades con observaciones opcionales y reviewInterval |
| Actualizar entidades existentes |
| Eliminar entidades (con cascada opcional) |
| Añadir observaciones como entidades separadas con su propia frescura |
| Confirmar que la entidad sigue siendo precisa, extender el intervalo de revisión |
| Buscar con filtrado de frescura progresivo |
| Obtener entidades específicas por nombre con metadatos de frescura |
| Obtener entidades accedidas recientemente |
| Crear relaciones entre entidades |
| Eliminar relaciones |
| Recuperación de entidades potenciada por IA con respuestas tentativas |
| Inspección de contenido de archivos potenciada por IA |
| Listar zonas de memoria (con puntuación de relevancia de IA) |
| Gestionar zonas de memoria |
| Transferir entidades entre zonas |
| Fusionar zonas con resolución de conflictos |
| Obtener recuentos de entidades/relaciones para una zona |
| Aumentar la puntuación de relevancia de la entidad |
| Obtener la hora UTC actual |
Variables de entorno
Variable | Predeterminado | Descripción |
|
| URL de Elasticsearch |
| — | Nombre de usuario de Elasticsearch |
| — | Contraseña de Elasticsearch |
| — | Clave de API de Groq para filtrado de IA |
|
| Lista de modelos separados por comas |
|
| Prefijo de índice de Elasticsearch |
|
| Zona de memoria predeterminada |
|
| Habilitar registro de depuración |
Instrucciones recomendadas para el agente
Para que los agentes utilicen activamente el servidor de memoria, añada algo como esto a su CLAUDE.md (o archivo de instrucciones equivalente):
## Memory
Use MCP Memory (`mcp__memory__*` tools) — a shared knowledge graph across all agents, projects, and computers.
**When to SAVE (immediately, before moving on):**
- Something you tried didn't work (non-transient) → save what failed and why, so no agent repeats it
- A decision was made (architectural, design, workflow) → save the decision and the reason
- The user corrects you or gives explicit instructions → save the rule
- You learn something non-obvious that took effort to discover → save it
**When to SEARCH (before starting, not after failing):**
- **At the start of every non-trivial task** — search before thinking, not after hitting a wall
- About to try an approach that might have been attempted before → search first
- User references something from a past session → search before asking
**Rules:**
- Skip anything easy to find in code, git log, or docs
- Use the project name as the zone for project-specific knowledge; `default` for general knowledge
- Keep entries short — the AI filters server-side, so be generous rather than selective
- Short `reviewInterval` (e.g. 3–7 days) for volatile facts; longer (30–180) for stable onesLa idea clave: los agentes necesitan instrucciones explícitas basadas en disparadores ("cuando X, haz Y"), no solo descripciones de lo que hace la herramienta.
Desarrollo
npm run build # Compile TypeScript
npm run dev # Watch mode
npm run test:jest # Run Jest tests
npm run es:start # Start Elasticsearch
npm run es:stop # Stop Elasticsearch
npm run es:reset # Wipe data and restart
npm run import # Import from JSON
npm run export # Export to JSONLicencia
MIT
Maintenance
Appeared in Searches
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/j3k0/mcp-brain-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server