MCP-Speicher
Ein Model Context Protocol (MCP)-Server, der Speicherlösungen für datenreiche Anwendungen mit effizienten Wissensgraphenfunktionen implementiert.
Überblick
Dieser MCP-Server implementiert eine Speicherlösung für datenintensive Anwendungen, die die Suche nach Informationen aus verschiedenen Quellen, einschließlich hochgeladener Dateien, erfordern. Er nutzt intern HippoRAG zur Speicherverwaltung über einen effizienten Wissensgraphen. HippoRAG ist eine erforderliche Abhängigkeit für dieses Paket.
Related MCP server: Memory Custom
Merkmale
Sitzungsbasierter Speicher : Erstellen und verwalten Sie Speicher für bestimmte Chat-Sitzungen
Effizienter Wissensgraph : Verwendet HippoRAG zur Speicherverwaltung
Unterstützung mehrerer Transporte : Funktioniert sowohl mit Standard- als auch mit SSE-Transporten
Suchfunktionen : Suchen Sie nach Informationen aus verschiedenen Quellen, einschließlich hochgeladener Dateien
Automatisches Ressourcenmanagement : TTL-basierte Bereinigung sowohl für Sitzungen als auch für Speicherinstanzen
Installation
Von PyPI installieren:
pip install mcp-mem hipporagOder von der Quelle installieren:
git clone https://github.com/ddkang1/mcp-mem.git
cd mcp-mem
pip install -e .
pip install hipporagHinweis: HippoRAG ist eine erforderliche Abhängigkeit für die Funktion von mcp-mem.
Verwendung
Sie können den MCP-Server direkt ausführen:
mcp-memStandardmäßig wird der Standardtransport verwendet. So verwenden Sie den SSE-Transport:
mcp-mem --sseSie können auch Host und Port für den SSE-Transport angeben:
mcp-mem --sse --host 127.0.0.1 --port 3001Konfiguration
Grundkonfiguration
Um dieses Tool mit Claude in Windsurf zu verwenden, fügen Sie Ihrer MCP-Konfigurationsdatei die folgende Konfiguration hinzu:
"memory": {
"command": "/path/to/mcp-mem",
"args": [],
"type": "stdio",
"pollingInterval": 30000,
"startupTimeout": 30000,
"restartOnFailure": true
}Das command sollte auf das Verzeichnis verweisen, in dem Sie das Python-Paket mit Pip installiert haben.
Konfiguration der Umgebungsvariablen
Sie können die von mcp-mem verwendeten LLM- und Einbettungsmodelle über Umgebungsvariablen konfigurieren:
EMBEDDING_MODEL_NAME: Name des zu verwendenden Einbettungsmodells (Standard: „text-embedding-3-large“)EMBEDDING_BASE_URL: Basis-URL für die Einbettungs-API (optional)LLM_NAME: Name des zu verwendenden LLM-Modells (Standard: „gpt-4o-mini“)LLM_BASE_URL: Basis-URL für die LLM-API (optional)OPENAI_API_KEY: OpenAI-API-Schlüssel (erforderlich)
Speicherverwaltungskonfiguration
Der Server umfasst Funktionen zur automatischen Ressourcenverwaltung:
Sitzungs-TTL : Entfernt Sitzungsverzeichnisse automatisch nach einer bestimmten Anzahl von Tagen der Inaktivität. Wird mit dem Konfigurationsparameter
session_ttl_daysfestgelegt (Standard: Keine – deaktiviert).Instanz-TTL : Entlädt HippoRAG-Instanzen nach einer bestimmten Inaktivitätsdauer automatisch aus dem Speicher. Die Einstellung erfolgt über den Konfigurationsparameter
instance_ttl_minutes(Standard: 30 Minuten).Diese Funktion hilft bei der Verwaltung der Speichernutzung, indem inaktive Instanzen entladen werden, während die zugrunde liegenden Daten erhalten bleiben. Beim erneuten Zugriff auf eine entladene Instanz wird sie automatisch von der Festplatte neu geladen.
Anwendungsbeispiel:
EMBEDDING_MODEL_NAME="your-model" LLM_NAME="your-llm" mcp-memDer Einfachheit halber können Sie das bereitgestellte Beispielskript verwenden:
./examples/run_with_env_vars.shVerfügbare Tools
Der MCP-Server bietet die folgenden Tools:
create_memory : Erstellen Sie einen neuen Speicher für eine bestimmte Chat-Sitzung
store_memory : Speicher zu einer bestimmten Sitzung hinzufügen
retrieve_memory : Speicher aus einer bestimmten Sitzung abrufen
Entwicklung
Installation für die Entwicklung
git clone https://github.com/ddkang1/mcp-mem.git
cd mcp-mem
pip install -e ".[dev]"Ausführen von Tests
pytestCodestil
Dieses Projekt verwendet Black zur Formatierung, isort zur Importsortierung und flake8 zum Lint-Test:
black src tests
isort src tests
flake8 src testsBeitragen
Beiträge sind willkommen! Senden Sie gerne einen Pull Request.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE .