Memento MCP: un sistema de memoria de gráficos de conocimiento para LLM
Sistema de memoria de grafos de conocimiento escalable y de alto rendimiento con recuperación semántica, recuerdo contextual y reconocimiento temporal. Proporciona a cualquier cliente LLM compatible con el protocolo de contexto de modelo (p. ej., Claude Desktop, Cursor, Github Copilot) una memoria ontológica a largo plazo resiliente, adaptativa y persistente.
Conceptos básicos
Entidades
Las entidades son los nodos principales del grafo de conocimiento. Cada entidad tiene:
Un nombre único (identificador)
Un tipo de entidad (por ejemplo, "persona", "organización", "evento")
Una lista de observaciones
Incrustaciones vectoriales (para búsqueda semántica)
Historial completo de versiones
Ejemplo:
Relaciones
Las relaciones definen conexiones dirigidas entre entidades con propiedades mejoradas:
Indicadores de fuerza (0,0-1,0)
Niveles de confianza (0,0-1,0)
Metadatos enriquecidos (fuente, marcas de tiempo, etiquetas)
Conciencia temporal con historial de versiones
Decadencia de la confianza basada en el tiempo
Ejemplo:
Backend de almacenamiento
Memento MCP utiliza Neo4j como su backend de almacenamiento, proporcionando una solución unificada tanto para el almacenamiento de gráficos como para las capacidades de búsqueda de vectores.
¿Por qué Neo4j?
Almacenamiento unificado : consolida el almacenamiento de gráficos y vectores en una única base de datos
Operaciones gráficas nativas : diseñadas específicamente para recorridos y consultas de gráficos
Búsqueda de vectores integrada : búsqueda de similitud de vectores para incrustaciones integradas directamente en Neo4j
Escalabilidad : mejor rendimiento con grandes gráficos de conocimiento
Arquitectura simplificada : diseño limpio con una única base de datos para todas las operaciones
Prerrequisitos
Neo4j 5.13+ (necesario para las capacidades de búsqueda vectorial)
Configuración de escritorio de Neo4j (recomendada)
La forma más fácil de comenzar a utilizar Neo4j es utilizar Neo4j Desktop :
Descargue e instale Neo4j Desktop desde https://neo4j.com/download/
Crear un nuevo proyecto
Agregar una nueva base de datos
Establezca la contraseña en
memento_password
(o su contraseña preferida)Iniciar la base de datos
La base de datos Neo4j estará disponible en:
URI de Bolt :
bolt://127.0.0.1:7687
(para conexiones de controlador)HTTP :
http://127.0.0.1:7474
(para la interfaz de usuario del navegador Neo4j)Credenciales predeterminadas : nombre de usuario:
neo4j
, contraseña:memento_password
(o la que haya configurado)
Configuración de Neo4j con Docker (alternativa)
Alternativamente, puedes usar Docker Compose para ejecutar Neo4j:
Al utilizar Docker, la base de datos Neo4j estará disponible en:
URI de Bolt :
bolt://127.0.0.1:7687
(para conexiones de controlador)HTTP :
http://127.0.0.1:7474
(para la interfaz de usuario del navegador Neo4j)Credenciales predeterminadas : nombre de usuario:
neo4j
, contraseña:memento_password
Persistencia y gestión de datos
Los datos de Neo4j persisten después de reiniciar el contenedor e incluso de actualizar la versión debido a la configuración del volumen de Docker en el archivo docker-compose.yml
:
Estas asignaciones garantizan que:
El directorio
/data
(contiene todos los archivos de base de datos) persiste en su host en./neo4j-data
El directorio
/logs
persiste en su host en./neo4j-logs
El directorio
/import
(para importar archivos de datos) persiste en./neo4j-import
Puede modificar estas rutas en su archivo docker-compose.yml
para almacenar datos en diferentes ubicaciones si es necesario.
Actualización de la versión de Neo4j
Puedes cambiar ediciones y versiones de Neo4j sin perder datos:
Actualice la versión de la imagen de Neo4j en
docker-compose.yml
Reinicie el contenedor con
docker-compose down && docker-compose up -d neo4j
Reinicialice el esquema con
npm run neo4j:init
Los datos persistirán durante este proceso mientras las asignaciones de volumen sigan siendo las mismas.
Restablecimiento completo de la base de datos
Si necesita restablecer completamente su base de datos Neo4j:
Copia de seguridad de datos
Para hacer una copia de seguridad de sus datos de Neo4j, simplemente puede copiar el directorio de datos:
Utilidades CLI de Neo4j
Memento MCP incluye utilidades de línea de comandos para administrar operaciones de Neo4j:
Conexión de prueba
Pruebe la conexión a su base de datos Neo4j:
Inicializando el esquema
Para un funcionamiento normal, la inicialización del esquema de Neo4j se realiza automáticamente cuando Memento MCP se conecta a la base de datos. No es necesario ejecutar ningún comando manual para su uso habitual.
Los siguientes comandos solo son necesarios para escenarios de desarrollo, pruebas o personalización avanzada:
Funciones avanzadas
Búsqueda semántica
Encuentre entidades semánticamente relacionadas basándose en el significado en lugar de solo palabras clave:
Incrustaciones vectoriales : las entidades se codifican automáticamente en un espacio vectorial de alta dimensión utilizando los modelos de incrustación de OpenAI
Similitud de coseno : encuentre conceptos relacionados incluso cuando utilicen terminología diferente
Umbrales configurables : establezca puntuaciones mínimas de similitud para controlar la relevancia de los resultados
Búsqueda intermodal : consulta con texto para encontrar entidades relevantes independientemente de cómo se describieron
Compatibilidad con múltiples modelos : compatible con múltiples modelos de incrustación (OpenAI text-embedding-3-small/large)
Recuperación contextual : recupere información basándose en el significado semántico en lugar de coincidencias exactas de palabras clave
Valores predeterminados optimizados : parámetros ajustados para lograr un equilibrio entre precisión y recuperación (umbral de similitud de 0,6, búsqueda híbrida habilitada)
Búsqueda híbrida : combina búsqueda semántica y por palabras clave para obtener resultados más completos.
Búsqueda adaptativa : el sistema elige de forma inteligente entre búsqueda de solo vectores, solo palabras clave o híbrida según las características de la consulta y los datos disponibles.
Optimización del rendimiento : prioriza la búsqueda de vectores para la comprensión semántica mientras mantiene mecanismos de respaldo para la resiliencia.
Procesamiento consciente de consultas : ajusta la estrategia de búsqueda en función de la complejidad de la consulta y las incrustaciones de entidades disponibles
Conciencia temporal
Realice un seguimiento del historial completo de entidades y relaciones con la recuperación de gráficos de puntos en el tiempo:
Historial de versiones completo : cada cambio en una entidad o relación se conserva con marcas de tiempo
Consultas de punto en el tiempo : recupera el estado exacto del gráfico de conocimiento en cualquier momento del pasado
Seguimiento de cambios : registra automáticamente las marcas de tiempo createdAt, updatedAt, validFrom y validTo
Coherencia temporal : mantener una visión históricamente precisa de cómo evolucionó el conocimiento
Actualizaciones no destructivas : las actualizaciones crean nuevas versiones en lugar de sobrescribir los datos existentes
Filtrado basado en el tiempo : filtra elementos del gráfico según criterios temporales
Exploración de la historia : investigar cómo cambió información específica a lo largo del tiempo
Decadencia de la confianza
Las relaciones pierden confianza automáticamente con el tiempo según una vida media configurable:
Decadencia basada en el tiempo : la confianza en las relaciones disminuye naturalmente con el tiempo si no se refuerza.
Vida media configurable : define con qué rapidez la información se vuelve menos segura (valor predeterminado: 30 días)
Pisos de confianza mínimos : establezca umbrales para evitar el deterioro excesivo de información importante
Metadatos de desintegración : cada relación incluye información detallada del cálculo de desintegración
No destructivo : los valores de confianza originales se conservan junto con los valores decaídos
Aprendizaje por refuerzo : Las relaciones recuperan la confianza cuando se refuerzan con nuevas observaciones
Flexibilidad de tiempo de referencia : calcule la descomposición basándose en tiempos de referencia arbitrarios para el análisis histórico
Metadatos avanzados
Compatibilidad completa con metadatos tanto para entidades como para relaciones con campos personalizados:
Seguimiento de fuentes : registre dónde se originó la información (entrada del usuario, análisis, fuentes externas)
Niveles de confianza : Asigne puntuaciones de confianza (0,0-1,0) a las relaciones en función de la certeza.
Fuerza de la relación : Indica la importancia o fuerza de las relaciones (0,0-1,0)
Metadatos temporales : rastrea cuándo se agregó, modificó o verificó la información
Etiquetas personalizadas : agregue etiquetas arbitrarias para clasificación y filtrado
Datos estructurados : almacene datos estructurados complejos dentro de campos de metadatos
Soporte de consultas : búsqueda y filtrado según las propiedades de metadatos
Esquema extensible : agregue campos personalizados según sea necesario sin modificar el modelo de datos principal
Herramientas de API de MCP
Las siguientes herramientas están disponibles para los hosts de clientes LLM a través del Protocolo de contexto de modelo:
Gestión de entidades
crear_entidades
Crear múltiples entidades nuevas en el gráfico de conocimiento
Entrada:
entities
(matriz de objetos)Cada objeto contiene:
name
(cadena): identificador de entidadentityType
(cadena): clasificación de tiposobservations
(string[]): Observaciones asociadas
añadir_observaciones
Agregar nuevas observaciones a entidades existentes
Entrada:
observations
(matriz de objetos)Cada objeto contiene:
entityName
(cadena): entidad de destinocontents
(string[]): Nuevas observaciones para agregar
eliminar_entidades
Eliminar entidades y sus relaciones
Entrada:
entityNames
(cadena[])
eliminar_observaciones
Eliminar observaciones específicas de las entidades
Entrada:
deletions
(matriz de objetos)Cada objeto contiene:
entityName
(cadena): entidad de destinoobservations
(string[]): Observaciones para eliminar
Gestión de relaciones
crear_relaciones
Crear múltiples relaciones nuevas entre entidades con propiedades mejoradas
Entrada:
relations
(matriz de objetos)Cada objeto contiene:
from
(string): Nombre de la entidad de origento
(cadena): nombre de la entidad de destinorelationType
(cadena): tipo de relaciónstrength
(número, opcional): Fuerza de la relación (0,0-1,0)confidence
(número, opcional): Nivel de confianza (0,0-1,0)metadata
(objeto, opcional): campos de metadatos personalizados
obtener_relación
Obtenga una relación específica con sus propiedades mejoradas
Aporte:
from
(string): Nombre de la entidad de origento
(cadena): nombre de la entidad de destinorelationType
(cadena): tipo de relación
actualizar_relación
Actualizar una relación existente con propiedades mejoradas
Entrada:
relation
(objeto):Contiene:
from
(string): Nombre de la entidad de origento
(cadena): nombre de la entidad de destinorelationType
(cadena): tipo de relaciónstrength
(número, opcional): Fuerza de la relación (0,0-1,0)confidence
(número, opcional): Nivel de confianza (0,0-1,0)metadata
(objeto, opcional): campos de metadatos personalizados
eliminar_relaciones
Eliminar relaciones específicas del gráfico
Entrada:
relations
(matriz de objetos)Cada objeto contiene:
from
(string): Nombre de la entidad de origento
(cadena): nombre de la entidad de destinorelationType
(cadena): tipo de relación
Operaciones gráficas
leer_gráfico
Lea el gráfico de conocimiento completo
No se requiere entrada
nodos de búsqueda
Búsqueda de nodos según la consulta
Entrada:
query
(cadena)
nodos abiertos
Recuperar nodos específicos por nombre
Entrada:
names
(cadena[])
Búsqueda semántica
búsqueda semántica
Búsqueda de entidades semánticamente utilizando incrustaciones vectoriales y similitud
Aporte:
query
(cadena): La consulta de texto que se buscará semánticamentelimit
(número, opcional): Máximo de resultados a devolver (predeterminado: 10)min_similarity
(número, opcional): umbral mínimo de similitud (0,0-1,0, predeterminado: 0,6)entity_types
(string[], opcional): Filtrar resultados por tipos de entidadhybrid_search
(booleano, opcional): combina búsqueda por palabras clave y semántica (valor predeterminado: verdadero)semantic_weight
(número, opcional): peso de los resultados semánticos en la búsqueda híbrida (0,0-1,0, valor predeterminado: 0,6)
Características:
Selecciona de forma inteligente el método de búsqueda óptimo (vector, palabra clave o híbrido) según el contexto de la consulta.
Maneja con elegancia las consultas sin coincidencias semánticas a través de mecanismos de respaldo
Mantiene un alto rendimiento con decisiones de optimización automáticas
obtener_entidad_incrustada
Obtener la incrustación vectorial para una entidad específica
Aporte:
entity_name
(cadena): El nombre de la entidad para la que se obtendrá la incrustación
Características temporales
obtener_historial_de_entidades
Obtener el historial de versiones completo de una entidad
Entrada:
entityName
(cadena)
obtener_historial_de_relaciones
Obtener el historial de versiones completo de una relación
Aporte:
from
(string): Nombre de la entidad de origento
(cadena): nombre de la entidad de destinorelationType
(cadena): tipo de relación
obtener_gráfico_en_tiempo
Obtener el estado del gráfico en una marca de tiempo específica
Entrada:
timestamp
(número): marca de tiempo de Unix (milisegundos desde la época)
obtener_gráfico_decaído
Obtener un gráfico con valores de confianza decaídos en el tiempo
Entrada:
options
(objeto, opcional):reference_time
(número): marca de tiempo de referencia para el cálculo de la decadencia (milisegundos desde la época)decay_factor
(número): anulación del factor de decaimiento opcional
Configuración
Variables de entorno
Configure Memento MCP con estas variables de entorno:
Opciones de línea de comandos
Las herramientas CLI de Neo4j admiten las siguientes opciones:
Modelos de incrustación
Modelos de integración de OpenAI disponibles:
text-embedding-3-small
: Eficiente y rentable (1536 dimensiones)text-embedding-3-large
: Mayor precisión, mayor coste (3072 dimensiones)text-embedding-ada-002
: Modelo heredado (1536 dimensiones)
Configuración de la API de OpenAI
Para utilizar la búsqueda semántica, deberá configurar las credenciales de la API de OpenAI:
Obtenga una clave API de OpenAI
Configure su entorno con:
Nota : En entornos de prueba, el sistema simulará la generación de incrustaciones si no se proporciona una clave API. Sin embargo, se recomienda usar incrustaciones reales para las pruebas de integración.
Integración con Claude Desktop
Configuración
Agregue esto a su claude_desktop_config.json
:
Alternativamente, para el desarrollo local, puede utilizar:
Importante : Siempre especifique explícitamente el modelo de inserción en su configuración de Claude Desktop para garantizar un comportamiento consistente.
Indicaciones del sistema recomendadas
Para una integración óptima con Claude, agregue estas declaraciones al aviso de su sistema:
Prueba de búsqueda semántica
Una vez configurado, Claude puede acceder a las capacidades de búsqueda semántica a través del lenguaje natural:
Para crear entidades con incrustaciones semánticas:
Para buscar semánticamente:
Para recuperar información específica:
El poder de este enfoque es que los usuarios pueden interactuar de forma natural, mientras que el LLM maneja la complejidad de seleccionar y utilizar las herramientas de memoria adecuadas.
Aplicaciones en el mundo real
Las capacidades de búsqueda adaptativa de Memento brindan beneficios prácticos:
Versatilidad de consultas : los usuarios no necesitan preocuparse por cómo formular las preguntas: el sistema se adapta automáticamente a diferentes tipos de consultas.
Resiliencia ante fallos : incluso cuando no hay coincidencias semánticas disponibles, el sistema puede recurrir a métodos alternativos sin intervención del usuario.
Eficiencia de rendimiento : al seleccionar de forma inteligente el método de búsqueda óptimo, el sistema equilibra el rendimiento y la relevancia para cada consulta.
Recuperación de contexto mejorada : las conversaciones LLM se benefician de una mejor recuperación de contexto, ya que el sistema puede encontrar información relevante en gráficos de conocimiento complejos.
Por ejemplo, cuando un usuario pregunta "¿Qué sabes sobre aprendizaje automático?", el sistema puede recuperar entidades conceptualmente relacionadas, incluso si no mencionan explícitamente el "aprendizaje automático", como por ejemplo entidades sobre redes neuronales, ciencia de datos o algoritmos específicos. Sin embargo, si la búsqueda semántica no arroja suficientes resultados, el sistema ajusta automáticamente su enfoque para garantizar que se devuelva información útil.
Solución de problemas
Diagnóstico de búsqueda vectorial
Memento MCP incluye capacidades de diagnóstico integradas para ayudar a solucionar problemas de búsqueda de vectores:
Verificación de incrustación : el sistema verifica si las entidades tienen incrustaciones válidas y las genera automáticamente si faltan.
Estado del índice del vector : verifica que el índice del vector exista y esté en estado EN LÍNEA
Búsqueda de respaldo : si la búsqueda vectorial falla, el sistema recurre a la búsqueda basada en texto.
Registro detallado : registro completo de operaciones de búsqueda de vectores para la resolución de problemas
Herramientas de depuración (cuando DEBUG=verdadero)
Cuando se habilita el modo de depuración, aparecen herramientas de diagnóstico adicionales:
diagnosis_vector_search : información sobre el índice de vectores de Neo4j, los recuentos de incrustaciones y la funcionalidad de búsqueda
force_generate_embedding : Fuerza la generación de una incrustación para una entidad específica
debug_embedding_config : información sobre la configuración actual del servicio de incrustación
Reinicio del desarrollador
Para restablecer completamente su base de datos Neo4j durante el desarrollo:
Construcción y desarrollo
Instalación
Instalación mediante herrería
Para instalar memento-mcp para Claude Desktop automáticamente a través de Smithery :
Instalación global con npx
Puedes ejecutar Memento MCP directamente usando npx sin instalarlo globalmente:
Este método se recomienda para utilizar con Claude Desktop y otros clientes compatibles con MCP.
Instalación local
Para desarrollar o contribuir al proyecto:
Licencia
Instituto Tecnológico de Massachusetts (MIT)
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Sistema de memoria gráfica de conocimiento escalable y de alto rendimiento con búsqueda semántica, conocimiento temporal y gestión avanzada de relaciones.
- Conceptos básicos
- Backend de almacenamiento
- Funciones avanzadas
- Herramientas de API de MCP
- Configuración
- Integración con Claude Desktop
- Solución de problemas
- Construcción y desarrollo
- Instalación
- Licencia
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA customized MCP memory server that enables creation and management of a knowledge graph with features like custom memory paths and timestamping for capturing interactions via language models.Last updated -104MIT License
- -securityAlicense-qualityProvides knowledge graph functionality for managing entities, relations, and observations in memory with strict validation rules to maintain data consistency.Last updated -16MIT License
- -securityAlicense-qualityEnhanced knowledge graph memory server for AI assistants that uses Neo4j as the backend storage engine, enabling powerful graph queries and efficient storage of user interaction information with full MCP protocol compatibility.Last updated -16MIT License
- -securityFlicense-qualityProvides persistent graph memory with automatic disk storage for building knowledge graphs, storing entity relationships, and maintaining context across sessions.Last updated -