Memento MCP: Ein Knowledge Graph Memory System für LLMs
Skalierbares, leistungsstarkes Wissensgraphen-Speichersystem mit semantischem Abruf, kontextuellem Abruf und zeitlicher Wahrnehmung. Bietet jedem LLM-Client, der das Modellkontextprotokoll unterstützt (z. B. Claude Desktop, Cursor, Github Copilot), einen robusten, adaptiven und persistenten ontologischen Langzeitspeicher.
Kernkonzepte
Entitäten
Entitäten sind die primären Knoten im Wissensgraphen. Jede Entität verfügt über:
Ein eindeutiger Name (Kennung)
Ein Entitätstyp (z. B. „Person“, „Organisation“, „Ereignis“)
Eine Liste von Beobachtungen
Vektoreinbettungen (für die semantische Suche)
Vollständiger Versionsverlauf
Beispiel:
Beziehungen
Relationen definieren gerichtete Verbindungen zwischen Entitäten mit erweiterten Eigenschaften:
Stärkeindikatoren (0,0-1,0)
Konfidenzniveaus (0,0–1,0)
Umfangreiche Metadaten (Quelle, Zeitstempel, Tags)
Zeitliches Bewusstsein mit Versionsverlauf
Zeitbasierter Vertrauensverlust
Beispiel:
Speicher-Backend
Memento MCP verwendet Neo4j als Speicher-Backend und bietet eine einheitliche Lösung sowohl für die Graphspeicherung als auch für die Vektorsuchfunktionen.
Warum Neo4j?
Unified Storage : Konsolidiert sowohl den Grafik- als auch den Vektorspeicher in einer einzigen Datenbank
Native Graph-Operationen : Speziell für Graph-Traversierung und Abfragen entwickelt
Integrierte Vektorsuche : Vektorähnlichkeitssuche für Einbettungen direkt in Neo4j integriert
Skalierbarkeit : Bessere Leistung mit großen Wissensgraphen
Vereinfachte Architektur : Klares Design mit einer einzigen Datenbank für alle Vorgänge
Voraussetzungen
Neo4j 5.13+ (erforderlich für Vektorsuchfunktionen)
Neo4j Desktop-Setup (empfohlen)
Der einfachste Weg, mit Neo4j zu beginnen, ist die Verwendung von Neo4j Desktop :
Laden Sie Neo4j Desktop von https://neo4j.com/download/ herunter und installieren Sie es
Erstellen eines neuen Projekts
Hinzufügen einer neuen Datenbank
Setzen Sie das Passwort auf
memento_password
(oder Ihr bevorzugtes Passwort).Starten der Datenbank
Die Neo4j-Datenbank wird verfügbar sein unter:
Bolt-URI :
bolt://127.0.0.1:7687
(für Treiberverbindungen)HTTP :
http://127.0.0.1:7474
(für Neo4j-Browser-UI)Standardanmeldeinformationen : Benutzername:
neo4j
, Passwort:memento_password
(oder was auch immer Sie konfiguriert haben)
Neo4j-Setup mit Docker (Alternative)
Alternativ können Sie Docker Compose verwenden, um Neo4j auszuführen:
Bei Verwendung von Docker ist die Neo4j-Datenbank verfügbar unter:
Bolt-URI :
bolt://127.0.0.1:7687
(für Treiberverbindungen)HTTP :
http://127.0.0.1:7474
(für Neo4j-Browser-UI)Standardanmeldeinformationen : Benutzername:
neo4j
, Passwort:memento_password
Datenpersistenz und -verwaltung
Neo4j-Daten bleiben aufgrund der Docker-Volume-Konfiguration in der Datei docker-compose.yml
über Containerneustarts und sogar Versionsupgrades hinweg erhalten:
Diese Zuordnungen stellen Folgendes sicher:
Das Verzeichnis
/data
(enthält alle Datenbankdateien) bleibt auf Ihrem Host unter./neo4j-data
bestehen.Das Verzeichnis
/logs
bleibt auf Ihrem Host unter./neo4j-logs
bestehenDas Verzeichnis
/import
(zum Importieren von Datendateien) bleibt unter./neo4j-import
bestehen.
Sie können diese Pfade in Ihrer Datei docker-compose.yml
ändern, um Daten bei Bedarf an anderen Orten zu speichern.
Aktualisieren der Neo4j-Version
Sie können Neo4j-Editionen und -Versionen ohne Datenverlust ändern:
Aktualisieren Sie die Neo4j-Image-Version in
docker-compose.yml
Starten Sie den Container mit
docker-compose down && docker-compose up -d neo4j
Initialisieren Sie das Schema mit
npm run neo4j:init
Die Daten bleiben während dieses Vorgangs erhalten, solange die Volume-Zuordnungen gleich bleiben.
Vollständiges Zurücksetzen der Datenbank
Wenn Sie Ihre Neo4j-Datenbank vollständig zurücksetzen müssen:
Daten sichern
Um Ihre Neo4j-Daten zu sichern, können Sie einfach das Datenverzeichnis kopieren:
Neo4j CLI-Dienstprogramme
Memento MCP enthält Befehlszeilenprogramme zur Verwaltung von Neo4j-Vorgängen:
Verbindung testen
Testen Sie die Verbindung zu Ihrer Neo4j-Datenbank:
Schema initialisieren
Im Normalbetrieb erfolgt die Initialisierung des Neo4j-Schemas automatisch, wenn Memento MCP eine Verbindung zur Datenbank herstellt. Für den regulären Gebrauch müssen Sie keine manuellen Befehle ausführen.
Die folgenden Befehle sind nur für Entwicklungs-, Test- oder erweiterte Anpassungsszenarien erforderlich:
Erweiterte Funktionen
Semantische Suche
Suchen Sie semantisch verwandte Entitäten auf der Grundlage ihrer Bedeutung und nicht nur anhand von Schlüsselwörtern:
Vektoreinbettungen : Entitäten werden mithilfe der Einbettungsmodelle von OpenAI automatisch in einen hochdimensionalen Vektorraum kodiert
Kosinus-Ähnlichkeit : Finden Sie verwandte Konzepte, auch wenn sie unterschiedliche Terminologie verwenden
Konfigurierbare Schwellenwerte : Legen Sie Mindestähnlichkeitswerte fest, um die Ergebnisrelevanz zu steuern
Cross-Modal-Suche : Abfrage mit Text, um relevante Entitäten zu finden, unabhängig davon, wie sie beschrieben wurden
Unterstützung mehrerer Modelle : Kompatibel mit mehreren Einbettungsmodellen (OpenAI text-embedding-3-small/large)
Kontextbezogene Abfrage : Rufen Sie Informationen basierend auf der semantischen Bedeutung und nicht auf genauen Schlüsselwortübereinstimmungen ab
Optimierte Standardeinstellungen : Angepasste Parameter für das Gleichgewicht zwischen Präzision und Rückruf (Ähnlichkeitsschwelle 0,6, Hybridsuche aktiviert)
Hybridsuche : Kombiniert semantische und Stichwortsuche für umfassendere Ergebnisse
Adaptive Suche : Das System wählt intelligent zwischen reiner Vektor-, reiner Stichwort- oder Hybridsuche basierend auf Abfragemerkmalen und verfügbaren Daten
Leistungsoptimierung : Priorisiert die Vektorsuche für semantisches Verständnis und behält gleichzeitig Fallback-Mechanismen für mehr Ausfallsicherheit bei
Abfragebasierte Verarbeitung : Passt die Suchstrategie basierend auf der Abfragekomplexität und den verfügbaren Entitätseinbettungen an
Zeitliches Bewusstsein
Verfolgen Sie den vollständigen Verlauf von Entitäten und Beziehungen mit der zeitpunktbezogenen Graphenabfrage:
Vollständiger Versionsverlauf : Jede Änderung an einer Entität oder Beziehung wird mit Zeitstempeln gespeichert
Point-in-Time-Abfragen : Rufen Sie den genauen Status des Wissensgraphen zu jedem beliebigen Zeitpunkt in der Vergangenheit ab
Änderungsverfolgung : Zeichnet automatisch die Zeitstempel „createdAt“, „updatedAt“, „validFrom“ und „validTo“ auf
Zeitliche Konsistenz : Behalten Sie eine historisch genaue Sicht auf die Entwicklung des Wissens bei
Zerstörungsfreie Updates : Updates erstellen neue Versionen, anstatt vorhandene Daten zu überschreiben
Zeitbasiertes Filtern : Filtern Sie Diagrammelemente basierend auf zeitlichen Kriterien
Historische Erkundung : Untersuchen Sie, wie sich bestimmte Informationen im Laufe der Zeit verändert haben
Vertrauensverlust
Die Vertrauenswürdigkeit von Beziehungen nimmt mit der Zeit automatisch ab, basierend auf einer konfigurierbaren Halbwertszeit:
Zeitbasierter Verfall : Das Vertrauen in Beziehungen nimmt natürlich mit der Zeit ab, wenn es nicht gestärkt wird
Konfigurierbare Halbwertszeit : Definieren Sie, wie schnell Informationen unsicherer werden (Standard: 30 Tage)
Mindestvertrauensgrenzen : Legen Sie Schwellenwerte fest, um einen übermäßigen Verfall wichtiger Informationen zu verhindern
Zerfallsmetadaten : Jede Beziehung enthält detaillierte Informationen zur Zerfallsberechnung
Zerstörungsfrei : Die ursprünglichen Vertrauenswerte bleiben neben den verfallenen Werten erhalten
Reinforcement Learning : Beziehungen gewinnen an Vertrauen, wenn sie durch neue Beobachtungen verstärkt werden
Flexibilität der Referenzzeit : Berechnen Sie den Zerfall basierend auf beliebigen Referenzzeiten für die historische Analyse
Erweiterte Metadaten
Umfangreiche Metadatenunterstützung für Entitäten und Beziehungen mit benutzerdefinierten Feldern:
Quellenverfolgung : Aufzeichnen, woher die Informationen stammen (Benutzereingaben, Analysen, externe Quellen)
Konfidenzniveaus : Weisen Sie Beziehungen basierend auf der Gewissheit Konfidenzwerte (0,0-1,0) zu
Beziehungsstärke : Geben Sie die Wichtigkeit oder Stärke von Beziehungen an (0,0–1,0).
Zeitliche Metadaten : Verfolgen Sie, wann Informationen hinzugefügt, geändert oder überprüft wurden
Benutzerdefinierte Tags : Fügen Sie beliebige Tags zur Klassifizierung und Filterung hinzu
Strukturierte Daten : Speichern Sie komplexe strukturierte Daten in Metadatenfeldern
Abfrageunterstützung : Suchen und Filtern basierend auf Metadateneigenschaften
Erweiterbares Schema : Fügen Sie nach Bedarf benutzerdefinierte Felder hinzu, ohne das Kerndatenmodell zu ändern
MCP-API-Tools
Die folgenden Tools stehen LLM-Client-Hosts über das Model Context Protocol zur Verfügung:
Entitätsverwaltung
Entitäten erstellen
Erstellen Sie mehrere neue Entitäten im Wissensgraphen
Eingabe:
entities
(Array von Objekten)Jedes Objekt enthält:
name
(Zeichenfolge): EntitätskennungentityType
(Zeichenfolge): Typklassifizierungobservations
(Zeichenfolge[]): Zugehörige Beobachtungen
Beobachtungen hinzufügen
Hinzufügen neuer Beobachtungen zu vorhandenen Entitäten
Eingabe:
observations
(Array von Objekten)Jedes Objekt enthält:
entityName
(Zeichenfolge): Zielentitätcontents
(Zeichenfolge[]): Neue hinzuzufügende Beobachtungen
delete_entities
Entfernen von Entitäten und ihren Beziehungen
Eingabe:
entityNames
(string[])
Beobachtungen löschen
Entfernen Sie bestimmte Beobachtungen von Entitäten
Eingabe:
deletions
(Array von Objekten)Jedes Objekt enthält:
entityName
(Zeichenfolge): Zielentitätobservations
(Zeichenfolge[]): Zu entfernende Beobachtungen
Beziehungsmanagement
Beziehungen erstellen
Erstellen Sie mehrere neue Beziehungen zwischen Entitäten mit erweiterten Eigenschaften
Eingabe:
relations
(Array von Objekten)Jedes Objekt enthält:
from
(Zeichenfolge): Name der Quell-Entitätto
(Zeichenfolge): Name der ZielentitätrelationType
(Zeichenfolge): Beziehungstypstrength
(Zahl, optional): Beziehungsstärke (0,0-1,0)confidence
(Zahl, optional): Konfidenzniveau (0,0-1,0)metadata
(Objekt, optional): Benutzerdefinierte Metadatenfelder
get_relation
Erhalten Sie eine bestimmte Beziehung mit ihren erweiterten Eigenschaften
Eingang:
from
(Zeichenfolge): Name der Quell-Entitätto
(Zeichenfolge): Name der ZielentitätrelationType
(Zeichenfolge): Beziehungstyp
Update-Relation
Aktualisieren einer vorhandenen Beziehung mit erweiterten Eigenschaften
Eingabe:
relation
(Objekt):Enthält:
from
(Zeichenfolge): Name der Quell-Entitätto
(Zeichenfolge): Name der ZielentitätrelationType
(Zeichenfolge): Beziehungstypstrength
(Zahl, optional): Beziehungsstärke (0,0-1,0)confidence
(Zahl, optional): Konfidenzniveau (0,0-1,0)metadata
(Objekt, optional): Benutzerdefinierte Metadatenfelder
delete_relations
Entfernen Sie bestimmte Beziehungen aus dem Diagramm
Eingabe:
relations
(Array von Objekten)Jedes Objekt enthält:
from
(Zeichenfolge): Name der Quell-Entitätto
(Zeichenfolge): Name der ZielentitätrelationType
(Zeichenfolge): Beziehungstyp
Graphoperationen
Diagramm lesen
Lesen Sie den gesamten Wissensgraphen
Keine Eingabe erforderlich
Suchknoten
Suche nach Knoten basierend auf der Abfrage
Eingabe:
query
(Zeichenfolge)
offene_Knoten
Abrufen bestimmter Knoten nach Namen
Eingabe:
names
(Zeichenfolge[])
Semantische Suche
semantische_suche
Semantische Suche nach Entitäten mithilfe von Vektoreinbettungen und Ähnlichkeit
Eingang:
query
(Zeichenfolge): Die Textabfrage, nach der semantisch gesucht werden solllimit
(Zahl, optional): Maximale Anzahl der zurückzugebenden Ergebnisse (Standard: 10)min_similarity
(Zahl, optional): Minimaler Ähnlichkeitsschwellenwert (0,0–1,0, Standard: 0,6)entity_types
(string[], optional): Ergebnisse nach Entitätstypen filternhybrid_search
(boolesch, optional): Kombinieren Sie Schlüsselwort- und semantische Suche (Standard: true)semantic_weight
(Zahl, optional): Gewichtung der semantischen Ergebnisse bei der Hybridsuche (0,0–1,0, Standard: 0,6)
Merkmale:
Wählt intelligent die optimale Suchmethode (Vektor, Schlüsselwort oder Hybrid) basierend auf dem Abfragekontext aus
Behandelt Abfragen ohne semantische Übereinstimmungen mithilfe von Fallback-Mechanismen
Sorgt für eine hohe Leistung durch automatische Optimierungsentscheidungen
get_entity_embedding
Holen Sie sich die Vektoreinbettung für eine bestimmte Entität
Eingang:
entity_name
(Zeichenfolge): Der Name der Entität, für die die Einbettung abgerufen werden soll
Zeitliche Merkmale
Entitätsverlauf abrufen
Vollständigen Versionsverlauf einer Entität abrufen
Eingabe:
entityName
(Zeichenfolge)
Beziehungsverlauf abrufen
Vollständigen Versionsverlauf einer Beziehung abrufen
Eingang:
from
(Zeichenfolge): Name der Quell-Entitätto
(Zeichenfolge): Name der ZielentitätrelationType
(Zeichenfolge): Beziehungstyp
get_graph_at_time
Holen Sie sich den Zustand des Graphen zu einem bestimmten Zeitstempel
Eingabe:
timestamp
(Zahl): Unix-Zeitstempel (Millisekunden seit Epoche)
get_decayed_graph
Erhalten Sie ein Diagramm mit zeitverzögerten Konfidenzwerten
Eingabe:
options
(Objekt, optional):reference_time
(Zahl): Referenzzeitstempel für die Zerfallsberechnung (Millisekunden seit Epoche)decay_factor
(Zahl): Optionale Überschreibung des Zerfallsfaktors
Konfiguration
Umgebungsvariablen
Konfigurieren Sie Memento MCP mit diesen Umgebungsvariablen:
Befehlszeilenoptionen
Die Neo4j CLI-Tools unterstützen die folgenden Optionen:
Einbettungsmodelle
Verfügbare OpenAI-Einbettungsmodelle:
text-embedding-3-small
: Effizient, kostengünstig (1536 Dimensionen)text-embedding-3-large
: Höhere Genauigkeit, teurer (3072 Dimensionen)text-embedding-ada-002
: Legacy-Modell (1536 Dimensionen)
OpenAI API-Konfiguration
Um die semantische Suche zu verwenden, müssen Sie die Anmeldeinformationen für die OpenAI-API konfigurieren:
Erhalten Sie einen API-Schlüssel von OpenAI
Konfigurieren Sie Ihre Umgebung mit:
Hinweis : In Testumgebungen simuliert das System die Embedding-Generierung, wenn kein API-Schlüssel angegeben wird. Für Integrationstests wird jedoch die Verwendung echter Embeddings empfohlen.
Integration mit Claude Desktop
Konfiguration
Fügen Sie dies zu Ihrer claude_desktop_config.json
hinzu:
Alternativ können Sie für die lokale Entwicklung Folgendes verwenden:
Wichtig : Geben Sie das Einbettungsmodell in Ihrer Claude Desktop-Konfiguration immer explizit an, um ein konsistentes Verhalten sicherzustellen.
Empfohlene Systemaufforderungen
Für eine optimale Integration mit Claude fügen Sie Ihrer Systemeingabeaufforderung diese Anweisungen hinzu:
Testen der semantischen Suche
Nach der Konfiguration kann Claude über natürliche Sprache auf die semantischen Suchfunktionen zugreifen:
So erstellen Sie Entitäten mit semantischen Einbettungen:
So führen Sie eine semantische Suche durch:
So rufen Sie bestimmte Informationen ab:
Der Vorteil dieses Ansatzes liegt darin, dass die Benutzer auf natürliche Weise interagieren können, während das LLM die Komplexität der Auswahl und Verwendung der geeigneten Gedächtnistools übernimmt.
Anwendungen in der realen Welt
Die adaptiven Suchfunktionen von Memento bieten praktische Vorteile:
Vielseitigkeit der Abfragen : Benutzer müssen sich keine Gedanken über die Formulierung von Fragen machen – das System passt sich automatisch an verschiedene Abfragetypen an
Ausfallsicherheit : Selbst wenn keine semantischen Übereinstimmungen verfügbar sind, kann das System ohne Benutzereingriff auf alternative Methoden zurückgreifen
Leistungseffizienz : Durch die intelligente Auswahl der optimalen Suchmethode gleicht das System Leistung und Relevanz für jede Abfrage aus
Verbesserte Kontextsuche : LLM-Konversationen profitieren von einer besseren Kontextsuche, da das System relevante Informationen in komplexen Wissensgraphen finden kann
Wenn ein Nutzer beispielsweise fragt: „Was wissen Sie über maschinelles Lernen?“, kann das System konzeptionell verwandte Entitäten abrufen, auch wenn diese nicht explizit „maschinelles Lernen“ erwähnen – etwa Entitäten zu neuronalen Netzwerken, Data Science oder bestimmten Algorithmen. Sollte die semantische Suche jedoch nicht genügend Ergebnisse liefern, passt das System seinen Ansatz automatisch an, um sicherzustellen, dass dennoch nützliche Informationen zurückgegeben werden.
Fehlerbehebung
Vektorsuchdiagnose
Memento MCP verfügt über integrierte Diagnosefunktionen zur Behebung von Problemen bei der Vektorsuche:
Einbettungsüberprüfung : Das System prüft, ob Entitäten gültige Einbettungen haben und generiert diese automatisch, wenn sie fehlen
Vektorindexstatus : Überprüft, ob der Vektorindex vorhanden ist und sich im ONLINE-Status befindet
Fallback-Suche : Wenn die Vektorsuche fehlschlägt, greift das System auf die textbasierte Suche zurück
Detaillierte Protokollierung : Umfassende Protokollierung von Vektorsuchvorgängen zur Fehlerbehebung
Debug-Tools (wenn DEBUG=true)
Wenn der Debug-Modus aktiviert ist, stehen zusätzliche Diagnosetools zur Verfügung:
diagnose_vector_search : Informationen zum Neo4j-Vektorindex, Einbettungszählungen und Suchfunktion
force_generate_embedding : Erzwingt die Generierung einer Einbettung für eine bestimmte Entität
debug_embedding_config : Informationen zur aktuellen Konfiguration des Einbettungsdienstes
Entwickler-Reset
So setzen Sie Ihre Neo4j-Datenbank während der Entwicklung vollständig zurück:
Bau und Entwicklung
Installation
Installation über Smithery
So installieren Sie memento-mcp für Claude Desktop automatisch über Smithery :
Globale Installation mit npx
Sie können Memento MCP direkt mit npx ausführen, ohne es global zu installieren:
Diese Methode wird für die Verwendung mit Claude Desktop und anderen MCP-kompatiblen Clients empfohlen.
Lokale Installation
Zur Entwicklung oder Mitarbeit am Projekt:
Lizenz
MIT
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Skalierbares, leistungsstarkes Wissensgraph-Speichersystem mit semantischer Suche, zeitlichem Bewusstsein und erweitertem Beziehungsmanagement.
- Kernkonzepte
- Speicher-Backend
- Erweiterte Funktionen
- MCP-API-Tools
- Konfiguration
- Integration mit Claude Desktop
- Fehlerbehebung
- Bau und Entwicklung
- Installation
- Lizenz
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 -