Memory Bank MCP
Un servidor del Protocolo de Contexto de Modelo (MCP) listo para producción que proporciona un banco de memoria vectorial nativo y potente para agentes de IA. Construido con el Protocol-Lattice Go Agent Framework, este servidor ofrece memoria persistente, buscable y compartible con múltiples backends de base de datos.
Documentación
Memory Bank MCP Server
Un servidor Model Context Protocol (MCP) listo para producción que proporciona un banco de memoria vectorial nativo y potente para agentes de IA. Construido con el Protocol-Lattice Go Agent Framework, este servidor ofrece memoria persistente, buscable y compartible con múltiples backends de bases de datos.
- Nombre del servidor:
memory-bank-mcp - Versión:
0.1.0
Características
-
Múltiples backends de almacenamiento vectorial: Persiste memorias en tu base de datos preferida.
- En memoria: Para pruebas rápidas y almacenamiento efímero.
- PostgreSQL: Usando la extensión
pgvector. - Qdrant: Una base de datos vectorial dedicada.
- MongoDB: Usando Atlas Vector Search.
-
Gestión de memoria enriquecida:
- Buffer de corto plazo: Almacena temporalmente memorias para una sesión antes de comprometerlas al almacenamiento de largo plazo.
- Persistencia de largo plazo: Incrusta y almacena memorias para recuperación semántica entre sesiones.
- Recuperación contextual: Obtén memorias relevantes basadas en una consulta, combinando resultados de corto y largo plazo.
-
Memoria compartida con "Espacios":
- Crea "espacios" de memoria compartida donde múltiples agentes o usuarios pueden colaborar.
- Control de acceso fino (ACLs) con roles
reader,writeryadmin. - Soporte de tiempo de vida (TTL) para concesiones y espacios.
-
Incrustaciones dinámicas: Usa
AutoEmbedderdel Go Agent Framework, permitiéndote configurar el modelo de incrustación mediante variables de entorno (por ejemplo, OpenAI, Gemini, modelos locales).
Configuración
Configura el servidor usando variables de entorno.
Almacenamiento de memoria
Establece MEMORY_STORE a uno de inmemory, postgres, qdrant o mongo.
- PostgreSQL:
export MEMORY_STORE="postgres" export POSTGRES_DSN="postgres://user:pass@host:port/db?sslmode=disable" - Qdrant:
export MEMORY_STORE="qdrant" export QDRANT_URL="http://localhost:6333" export QDRANT_COLLECTION="memories" export QDRANT_API_KEY="..." # Optional - MongoDB:
export MEMORY_STORE="mongo" export MONGO_URI="mongodb+srv://..." export MONGO_DATABASE="main" export MONGO_COLLECTION="memories"
Otras configuraciones
SHORT_TERM_SIZE: Máximo de elementos en el buffer de corto plazo por sesión. (Por defecto:20)DEFAULT_SPACE_TTL_SEC: TTL por defecto para espacios en segundos. (Por defecto:86400/ 24 horas)
Modelo de incrustación
El servidor usa AutoEmbedder, que respeta las variables de entorno ADK_EMBED_* del Go Agent Framework. Por ejemplo, para usar Gemini:
export ADK_EMBED_PROVIDER="gemini"
export ADK_EMBED_MODEL="text-embedding-004"
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
Inicio rápido
go install github.com/Protocol-Lattice/memory-bank-mcp@latest
# Run the server (defaults to stdio transport)
memory-bank-mcp
Herramientas MCP disponibles
El servidor expone un conjunto completo de herramientas para la manipulación de memoria.
Memoria principal
health.ping: Verifica si el servidor está en ejecución.memory.embed: Obtén la incrustación vectorial de un texto.memory.add_short: Agrega una memoria al buffer de corto plazo de una sesión.memory.flush: Persiste el buffer de corto plazo de una sesión en el almacén vectorial de largo plazo.memory.store_long: Incrusta y almacena directamente una memoria en el almacén de largo plazo.memory.retrieve_context: Recupera memorias relevantes para una consulta de una sesión.
Espacios (memoria compartida)
spaces.upsert: Crea o actualiza un espacio compartido con un TTL y ACL.spaces.grant: Otorga un rol (reader,writer,admin) a un principal para un espacio.spaces.revoke: Revoca el acceso de un principal a un espacio.spaces.list: Lista todos los espacios a los que un principal tiene acceso.
Sesiones compartidas
shared.join: Hace que la vista de sesión de un principal incluya un espacio específico.shared.leave: Elimina un espacio de la vista de sesión de un principal.shared.add_short_to: Agrega una memoria de corto plazo directamente a un espacio compartido.shared.retrieve: Recupera memorias de la vista combinada de un principal (local + espacios unidos).
Configuración de MCP:
{
"servers": {
"memory-bank": {
"command": "/usr/local/bin/memory-bank-mcp",
"args": ["-transport", "http", "-addr", ":8080"]
}
},
"inputs": []
}
Diagnóstico
engine.metrics: Obtén una instantánea de las métricas de rendimiento del motor de memoria.