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ón | Descripción |
|---|---|
| Referencia de la API | Documentación completa de la API para todos los módulos y herramientas |
| Guías de patrones | Documentación de patrones de diseño (Singleton, Repository, etc.) |
| Ejemplos de uso | Guías de inicio y uso avanzado |
| Despliegue | Configuración de Docker Compose y detalles del servicio |
| Arquitectura | Arquitectura 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
| Herramienta | Descripción |
|---|---|
add_memory | Almacena información en memoria a largo plazo con indexación semántica |
search_memories | Busca memorias mediante similitud semántica |
get_memory | Recupera una memoria específica por ID |
update_memory | Actualiza el contenido de una memoria existente |
delete_memory | Elimina memoria del almacenamiento |
list_memories | Lista 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:
- Parámetros de herramienta (directos)
- Variables de entorno (con prefijo MCP_)
- Valores del archivo de configuración
- Valores predeterminados codificados
Variables de entorno
| Variable | Valor predeterminado | Descripción |
|---|---|---|
OPENAI_API_KEY | (requerido) | Clave API de OpenAI para LLM |
MCP_TRANSPORT | sse | Tipo de transporte (stdio, sse) |
MCP_HOST | 0.0.0.0 | Dirección de enlace del servidor |
MCP_PORT | 8080 | Puerto 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:
| Servicio | Descripción |
|---|---|
mem0-mcp | Servidor MCP que expone la API de Mem0 en el puerto 8050 |
ollama-qwen3-embedding | Ollama con qwen3-embedding:8b para embeddings vectoriales (puerto 11434) |
ollama-qwen | Ollama 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
| Comando | Descripción |
|---|---|
make install | Instalar dependencias con uv |
make lint | Lint del código con ruff |
make lint-fix | Corregir automáticamente problemas de lint |
make typecheck | Verificación de tipos con pyright |
make test | Ejecutar todas las pruebas |
make test-unit | Ejecutar solo pruebas unitarias |
make test-coverage | Ejecutar pruebas con informe de cobertura |
make build | Construir imagen de Docker |
make run | Ejecutar 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