memory-mcp
memory-mcp
Memoria persistente, buscable y versionada para agentes de IA — respaldada por Valkey (compatible con Redis), expuesta como un servidor MCP a través de HTTP.
Funciona con cualquier agente compatible con MCP: Claude Code, Cursor, VS Code y otros.
Qué hace
Almacena entradas de memoria con nombre, etiquetas, tipos y ámbitos de proyecto
Búsqueda por intersección de etiquetas, filtrado por tipo/proyecto y búsqueda por subcadena
Seguimiento de aciertos (las entradas accedidas con más frecuencia suben a la parte superior)
Historial completo de versiones con reversión
Punto final de métricas de Prometheus
Autenticación opcional mediante token bearer
Related MCP server: CORTEX Memory MCP
Inicio rápido
cp .env.example .env
# Optional: set MEMORY_MCP_AUTH_TOKEN in .env (see Auth section)
docker compose up -dEsto descarga la imagen precompilada de GHCR. El servidor MCP ya está disponible en http://127.0.0.1:3106/mcp.
Para compilar localmente en su lugar:
docker compose build
docker compose up -dUso de un Redis o Valkey existente
Por defecto, docker compose up -d inicia un contenedor de Valkey incluido. Para conectarse a una instancia existente de Redis o Valkey, configure VALKEY_URL e inicie solo el servicio memory-mcp:
# .env
VALKEY_URL=redis://your-host:6379
docker compose up -d memory-mcpCualquier servidor compatible con Redis (Redis 6+, Valkey, KeyDB, Upstash a través de rediss://, etc.) funciona. El servidor utiliza solo estructuras de datos básicas: hashes, listas y conjuntos.
Configuración del agente
Copie AGENTS.md de este repositorio en la raíz de su proyecto. Indica a su agente cómo utilizar las herramientas de memoria, qué almacenar y cuándo.
Luego, registre el servidor MCP con su cliente de agente:
Claude Code
# Without auth
claude mcp add memory --transport http http://127.0.0.1:3106/mcp
# With auth
claude mcp add memory --transport http http://127.0.0.1:3106/mcp \
--header "Authorization: Bearer your-token"O añádalo manualmente a ~/.claude.json:
{
"mcpServers": {
"memory": {
"type": "http",
"url": "http://127.0.0.1:3106/mcp",
"headers": { "Authorization": "Bearer your-token" }
}
}
}Cursor
Añada a ~/.cursor/mcp.json (global) o .cursor/mcp.json (proyecto):
{
"mcpServers": {
"memory": {
"url": "http://127.0.0.1:3106/mcp",
"headers": { "Authorization": "Bearer your-token" }
}
}
}VS Code (GitHub Copilot, extensión MCP)
Añada a .vscode/mcp.json en su proyecto:
{
"servers": {
"memory": {
"type": "http",
"url": "http://127.0.0.1:3106/mcp",
"headers": { "Authorization": "Bearer your-token" }
}
}
}Omita la línea headers / Authorization en cualquier configuración si no está utilizando autenticación.
Configuración
Copie .env.example a .env y edítelo según sea necesario.
Variable | Predeterminado | Descripción |
|
| Interfaz en la que vincular. Use |
|
| Puerto expuesto en el host |
| (vacío) | Token bearer para |
|
| Límite suave — advierte al escribir cuando se supera |
|
| Instantáneas de versión máximas por entrada |
|
| Límite de memoria del contenedor |
|
| Imagen de Valkey a utilizar |
Autenticación
Por defecto, el servidor se ejecuta sin autenticación. Esto es seguro cuando se vincula a loopback (127.0.0.1) y se accede solo desde la máquina local.
Para habilitar la autenticación:
# Generate a token
openssl rand -hex 32
# Add to .env
MEMORY_MCP_AUTH_TOKEN=your-generated-token
docker compose up -dTodas las solicitudes a POST /mcp deben incluir entonces:
Authorization: Bearer <token>GET /health y GET /metrics siempre están sin autenticación.
Herramientas disponibles
Herramienta | Descripción |
| Buscar por etiquetas (intersección), tipo, proyecto o subcadena de texto |
| Obtener una entrada por ID (incrementa el contador de aciertos) |
| Crear o actualizar una entrada (versionada en cada escritura) |
| Listar entradas con filtro opcional de tipo/proyecto |
| Eliminar una entrada (se escribe primero una versión de marcador de posición) |
| Ver el historial de versiones de una entrada |
| Restaurar una entrada a una versión anterior |
| Mostrar entradas obsoletas con cero aciertos para su revisión (solo lectura) |
Tipos de memoria
pattern, decision, reference, feedback, incident, project, entity, state
Puntos finales
Método | Ruta | Autenticación | Descripción |
|
| si está configurado | Punto final MCP JSON-RPC |
|
| ninguna | Comprobación de estado |
|
| ninguna | Métricas de Prometheus |
Modelo de datos
Cada entrada se almacena como un hash de Redis en mem:<id>:
Campo | Descripción |
| Título descriptivo corto |
| Contenido completo |
| Tipo de entrada |
| Lista de etiquetas separadas por comas |
| Quién lo escribió |
| Ámbito del proyecto (vacío = entre proyectos) |
| Fecha ISO de creación |
| Fecha ISO de la última actualización |
| Veces recuperado mediante |
| Expiración en segundos (opcional) |
El historial de versiones se almacena en una lista de Redis en memver:<id> (de la más nueva a la más antigua, limitada a MAX_VERSIONS_PER_ENTRY).
Los índices de etiquetas, tipos y proyectos son conjuntos de Redis (tag:<nombre>, type:<nombre>, project:<nombre>).
Licencia
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- memnodeOAuthdev.memnode
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA local-first MCP memory server providing persistent, searchable memory for AI agents, powered by SQLite.1 npm1Apache 2.0
- FlicenseNot gradedqualityDmaintenancePersistent semantic memory MCP server for AI agents with hybrid search, LLM scoring, and decay engine, fully local.2-
- AlicenseNot gradedqualityDmaintenanceA local-first long-term memory system for AI coding agents, exposed as an MCP server.54 npmMIT
- AlicenseNot gradedqualityDmaintenanceA persistent, searchable memory layer for AI assistants, exposed as an MCP server. It supports CRUD, namespaces, hybrid ranked search, relationships, chat-context assembly, import/export, and optional LLM-powered auto-extraction.6 npmMIT