Skip to main content
Glama

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 -d

Esto 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 -d

Uso 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-mcp

Cualquier 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

MEMORY_MCP_BIND

127.0.0.1

Interfaz en la que vincular. Use 0.0.0.0 solo con AUTH_TOKEN configurado.

MEMORY_MCP_HOST_PORT

3106

Puerto expuesto en el host

MEMORY_MCP_AUTH_TOKEN

(vacío)

Token bearer para /mcp. Vacío = sin autenticación. Genere uno: openssl rand -hex 32

MEMORY_MCP_MAX_ENTRIES_WARN

300

Límite suave — advierte al escribir cuando se supera

MEMORY_MCP_MAX_VERSIONS_PER_ENTRY

20

Instantáneas de versión máximas por entrada

MEMORY_MCP_MEM_LIMIT

256m

Límite de memoria del contenedor

VALKEY_IMAGE

valkey/valkey:9.0.3

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 -d

Todas 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

memory_search

Buscar por etiquetas (intersección), tipo, proyecto o subcadena de texto

memory_get

Obtener una entrada por ID (incrementa el contador de aciertos)

memory_set

Crear o actualizar una entrada (versionada en cada escritura)

memory_list

Listar entradas con filtro opcional de tipo/proyecto

memory_delete

Eliminar una entrada (se escribe primero una versión de marcador de posición)

memory_history

Ver el historial de versiones de una entrada

memory_rollback

Restaurar una entrada a una versión anterior

memory_prune_candidates

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

POST

/mcp

si está configurado

Punto final MCP JSON-RPC

GET

/health

ninguna

Comprobación de estado

GET

/metrics

ninguna

Métricas de Prometheus

Modelo de datos

Cada entrada se almacena como un hash de Redis en mem:<id>:

Campo

Descripción

title

Título descriptivo corto

body

Contenido completo

type

Tipo de entrada

tags

Lista de etiquetas separadas por comas

source

Quién lo escribió

project

Ámbito del proyecto (vacío = entre proyectos)

created

Fecha ISO de creación

updated

Fecha ISO de la última actualización

hits

Veces recuperado mediante memory_get

ttl

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

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers