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
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/joshdougall/memory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server