mem0-mcp-server

mem0-mcp-server — expone la memoria semántica persistente de Mem0 como un servidor MCP HTTP; admite operaciones de agregar, buscar, leer, actualizar y eliminar, así como búsqueda semántica para la memoria del agente.

Documentación

mem0-mcp-server

Servidor MCP que expone la API Mem0 v2 para que los agentes de IA almacenen, recuperen y busquen memorias a largo plazo mediante búsqueda semántica a través del protocolo MCP estandarizado.

Resumen

Mem0-MCP Server es un servidor MCP (Model Context Protocol) autoalojado que conecta agentes de IA con almacenamiento de memoria persistente. Permite la retención inteligente de contexto a través de conversaciones y sesiones utilizando la API AsyncMemory de Mem0.

Características principales:

  • Integración con el protocolo MCP - Expone la funcionalidad de Mem0 mediante herramientas MCP
  • Búsqueda semántica de memoria - Recuperación de memorias por similitud con búsqueda vectorial
  • Aislamiento multiinquilino - Aislamiento de memoria por ámbito de Usuario/Agente/Sesión
  • Transporte flexible - stdio para agentes locales, SSE para conexiones remotas
  • Gestión de configuración - Validación basada en Pydantic con soporte de variables de entorno

Documentación

SecciónDescripción
Referencia de la APIDocumentación completa de la API para todos los módulos y herramientas
Guías de patronesDocumentación de patrones de diseño (Singleton, Repository, etc.)
Ejemplos de usoGuías de inicio y uso avanzado
DespliegueConfiguración de Docker Compose y detalles del servicio
ArquitecturaArquitectura del sistema e interacciones entre componentes

Inicio rápido

Instalación

# Clone and install
git clone https://github.com/your-org/mem0-mcp-server.git
cd mem0-mcp-server
uv sync

# Set environment variables
export OPENAI_API_KEY="your-api-key"

Configuración

Cree ~/.config/mem0-mcp-server/settings.json:

{
  "vector_store": {
    "provider": "redis",
    "config": {
      "redis_url": "redis://localhost:6379"
    }
  },
  "llm": {
    "provider": "openai",
    "config": {
      "model": "gpt-4o"
    }
  },
  "embedder": {
    "provider": "openai",
    "config": {
      "model": "text-embedding-3-small"
    }
  }
}

Ejecutar el servidor

# SSE Transport (remote connections)
uv run python -m mcp_server.main

# stdio Transport (local AI agents)
export MCP_TRANSPORT=stdio
uv run python -m mcp_server.main

Configuración de OpenCode

En ~/config/opencode/opencode.json

Configuración de OpenCode

En ~/config/opencode/opencode.json

	"mcp": {
		"mem0": {
			"type": "remote",
			"enabled": true,
			"url": "http://localhost:8050/sse"
		}
    }

Herramientas MCP

HerramientaDescripción
add_memoryAlmacena información en memoria a largo plazo con indexación semántica
search_memoriesBusca memorias mediante similitud semántica
get_memoryRecupera una memoria específica por ID
update_memoryActualiza el contenido de una memoria existente
delete_memoryElimina memoria del almacenamiento
list_memoriesLista memorias con filtrado y paginación

Ejemplo de uso

# Add memory
result = await client.call_tool("add_memory", {
    "messages": [{"role": "user", "content": "I prefer dark mode"}],
    "user_id": "alice"
})

# Search memories
result = await client.call_tool("search_memories", {
    "query": "theme preferences",
    "filters": {"user_id": "alice"},
    "limit": 5
})

Arquitectura

AI Agent → FastMCP Server → MemoryManager → Mem0 AsyncMemory → Redis
              │                                  │
              ├── SafeLogger (stdout/stderr)     │
              ├── Transport (stdio/SSE)          │
              └── Config (Pydantic validation)   │

Componentes:

  • COMP-1: ConfigLoader - Carga y validación de configuración
  • COMP-2: FastMCP Server - Servidor de protocolo MCP
  • COMP-3: MemoryManager - Operaciones de memoria con aislamiento multiinquilino
  • COMP-4: MCP Tools - Definiciones de herramientas
  • COMP-5: SafeLogger - Separación de flujos de salida

Configuración

Precedencia de parámetros

Los valores de configuración se resuelven en el siguiente orden:

  1. Parámetros de herramienta (directos)
  2. Variables de entorno (con prefijo MCP_)
  3. Valores del archivo de configuración
  4. Valores predeterminados codificados

Variables de entorno

VariableValor predeterminadoDescripción
OPENAI_API_KEY(requerido)Clave API de OpenAI para LLM
MCP_TRANSPORTsseTipo de transporte (stdio, sse)
MCP_HOST0.0.0.0Dirección de enlace del servidor
MCP_PORT8080Puerto de enlace del servidor

Despliegue

Docker

# Using docker-compose
docker-compose up -d

# Using Makefile
make docker-up      # Start services with docker compose
make docker-down    # Stop services
make docker-logs    # Show logs

Servicios:

ServicioDescripción
mem0-mcpServidor MCP que expone la API de Mem0 en el puerto 8050
ollama-qwen3-embeddingOllama con qwen3-embedding:8b para embeddings vectoriales (puerto 11434)
ollama-qwenOllama con qwen2.5:7b para completado de chat (puerto 11435)

Consulte Despliegue → Docker para obtener la configuración detallada.

Kubernetes

# Using Helm chart
helm install mem0-mcp ./charts/mem0-mcp-server

Desarrollo

ComandoDescripción
make installInstalar dependencias con uv
make lintLint del código con ruff
make lint-fixCorregir automáticamente problemas de lint
make typecheckVerificación de tipos con pyright
make testEjecutar todas las pruebas
make test-unitEjecutar solo pruebas unitarias
make test-coverageEjecutar pruebas con informe de cobertura
make buildConstruir imagen de Docker
make runEjecutar servidor de desarrollo

Ejecutar múltiples comandos: make install && make lint && make typecheck && make test

Consulte Makefile para todos los comandos disponibles, incluida la gestión de Docker (docker-up, docker-down, docker-logs, etc.).

Estructura del proyecto

mem0-mcp/
├── src/mcp_server/
│   ├── __init__.py          # FastMCP singleton
│   ├── lifespan.py          # Resource lifecycle
│   ├── transport.py         # Transport selection
│   ├── memory/
│   │   ├── manager.py        # MemoryManager
│   │   └── lifespan.py       # AsyncMemory lifecycle
│   ├── config/
│   │   ├── settings.py       # Pydantic models
│   │   └── loader.py        # Config file loading
│   ├── tools/
│   │   ├── add_memory.py
│   │   ├── search_memories.py
│   │   └── ...
│   └── utils/
│       └── safe_logger.py   # Output separation
├── doc/
│   ├── api/                 # API reference
│   ├── patterns/            # Pattern guides
│   ├── examples/            # Usage examples
│   └── architecture/        # Architecture docs
├── tests/
├── Makefile
├── Dockerfile
└── docker-compose.yml

Licencia

Licencia MIT