@pinkpixel/mem0-mcp MCP-Server ✨
Ein Model Context Protocol (MCP)-Server, der in Mem0.ai integriert ist, um persistenten Speicher für LLMs bereitzustellen. Er ermöglicht KI-Agenten das Speichern und Abrufen von Informationen über Sitzungen hinweg.
Dieser Server verwendet für seine Kernfunktionalität das mem0ai
Node.js SDK.
Funktionen 🧠
Werkzeuge
add_memory
: Speichert einen Textinhalt als Speicher, der mit einer bestimmtenuserId
verknüpft ist.- Erforderlich:
content
(Zeichenfolge),userId
(Zeichenfolge) - Optional:
sessionId
(Zeichenfolge),agentId
(Zeichenfolge),orgId
(Zeichenfolge),projectId
(Zeichenfolge),metadata
(Objekt) - Erweitert (Cloud-API):
includes
(Zeichenfolge),excludes
(Zeichenfolge),infer
(Boolesch),outputFormat
(Zeichenfolge),customCategories
(Objekt),customInstructions
(Zeichenfolge),immutable
(Boolesch),expirationDate
(Zeichenfolge) - Speichert den bereitgestellten Text, sodass er bei zukünftigen Interaktionen wieder aufgerufen werden kann.
- Erforderlich:
search_memory
: Durchsucht gespeicherte Erinnerungen basierend auf einer Abfrage in natürlicher Sprache nach einer bestimmtenuserId
.- Erforderlich:
query
(Zeichenfolge),userId
(Zeichenfolge) - Optional:
sessionId
(Zeichenfolge),agentId
(Zeichenfolge),orgId
(Zeichenfolge),projectId
(Zeichenfolge),filters
(Objekt),threshold
(Zahl) - Erweitert (Cloud-API):
topK
(Zahl),fields
(Array),rerank
(Boolesch),keywordSearch
(Boolesch),filterMemories
(Boolesch) - Ruft relevante Erinnerungen auf der Grundlage semantischer Ähnlichkeit ab.
- Erforderlich:
delete_memory
: Löscht einen bestimmten Speicher anhand seiner ID aus dem Speicher.- Erforderlich:
memoryId
(Zeichenfolge),userId
(Zeichenfolge) - Optional:
agentId
(Zeichenfolge),orgId
(Zeichenfolge),projectId
(Zeichenfolge) - Entfernt den angegebenen Speicher dauerhaft.
- Erforderlich:
Voraussetzungen 🔑
Dieser Server unterstützt zwei Speichermodi:
- Cloud-Speichermodus ☁️ (empfohlen)
- Erfordert einen Mem0-API-Schlüssel (bereitgestellt als Umgebungsvariable
MEM0_API_KEY
) - Erinnerungen werden dauerhaft auf den Cloud-Servern von Mem0 gespeichert
- Keine lokale Datenbank erforderlich
- Erfordert einen Mem0-API-Schlüssel (bereitgestellt als Umgebungsvariable
- Lokaler Speichermodus 💾
- Erfordert einen OpenAI-API-Schlüssel (bereitgestellt als Umgebungsvariable
OPENAI_API_KEY
) - Erinnerungen werden in einer In-Memory-Vektordatenbank gespeichert (standardmäßig nicht persistent).
- Daten gehen beim Neustart des Servers verloren, sofern sie nicht für die dauerhafte Speicherung konfiguriert sind.
- Erfordert einen OpenAI-API-Schlüssel (bereitgestellt als Umgebungsvariable
Installation & Konfiguration ⚙️
Sie können diesen Server hauptsächlich auf drei Arten ausführen:
1. Globale Installation (Empfohlen für häufigen Gebrauch)
Installieren Sie das Paket global und verwenden Sie den Befehl mem0-mcp
:
Nach der globalen Installation können Sie den Server direkt ausführen:
Konfigurieren Sie Ihren MCP-Client für die Verwendung des globalen Befehls:
Cloud-Speicherkonfiguration (globale Installation)
Lokale Speicherkonfiguration (Globale Installation)
2. Verwenden von npx
(Empfohlen für gelegentliche Verwendung)
Konfigurieren Sie Ihren MCP-Client (z. B. Claude Desktop, Cursor, Cline, Roo Code usw.), um den Server mit npx
auszuführen:
Cloud-Speicherkonfiguration (npx)
Lokale Speicherkonfiguration (npx)
3. Ausführen aus einem geklonten Repository
Hinweis: Für diese Methode müssen Sie zuerst das Repository per Git klonen.
Klonen Sie das Repository, installieren Sie Abhängigkeiten und erstellen Sie den Server:
Konfigurieren Sie dann Ihren MCP-Client so, dass das erstellte Skript direkt mithilfe von node
ausgeführt wird:
Cloud-Speicherkonfiguration (geklontes Repository)
Lokale Speicherkonfiguration (geklontes Repository)
Wichtige Hinweise:
- Ersetzen Sie
/absolute/path/to/mem0-mcp/
durch den tatsächlichen absoluten Pfad zu Ihrem geklonten Repository - Verwenden Sie die Datei
build/index.js
, nicht die Dateisrc/index.ts
- Der MCP-Server benötigt sauberes stdout für die Protokollkommunikation – alle Bibliotheken oder Codes, die in stdout schreiben, können das Protokoll stören
Standard-Benutzer-ID (optionaler Fallback)
Sowohl das Tool add_memory
als auch das Tool search_memory
erfordern ein userId
Argument, um Erinnerungen einem bestimmten Benutzer zuzuordnen.
Zur Vereinfachung beim Testen oder in Einzelbenutzerszenarien können Sie beim Serverstart optional die Umgebungsvariable DEFAULT_USER_ID
festlegen. Wenn diese Variable gesetzt ist und das Argument userId
beim Aufruf des Tools search_memory
weggelassen wird, verwendet der Server den Wert von DEFAULT_USER_ID
für die Suche.
Hinweis: Obwohl dieser Fallback vorhanden ist, wird generell empfohlen, dass der aufrufende Agent (LLM) sowohl beim Hinzufügen als auch beim Suchen von Speichern explizit die richtige userId
angibt, um Mehrdeutigkeiten zu vermeiden.
Beispielkonfiguration mit DEFAULT_USER_ID
:
Oder bei direkter Ausführung mit node
:
Cloud vs. lokaler Speicher 🔄
Cloud-Speicher (Mem0 API)
- Standardmäßig persistent – Ihre Erinnerungen bleiben über Sitzungen und Serverneustarts hinweg verfügbar
- Keine lokale Datenbank erforderlich – Alle Daten werden auf den Servern von Mem0 gespeichert
- Höhere Abrufqualität – Verwendet die optimierten Suchalgorithmen von Mem0
- Zusätzliche Felder – Unterstützt
agent_id
undthreshold
- Erfordert - Ein Mem0 API-Schlüssel
Lokaler Speicher (OpenAI API)
- Standardmäßig im Arbeitsspeicher – Daten werden nur im RAM gespeichert und sind nicht dauerhaft persistent . Zwar kann es zu einem gewissen Caching kommen, aber Sie sollten sich für die dauerhafte Speicherung nicht darauf verlassen.
- Datenverlustrisiko - Speicherdaten gehen beim Neustart des Servers, des Systems oder bei Beendigung des Prozesses verloren
- Empfohlen für : Entwicklung, Tests oder nur vorübergehende Verwendung
- Für dauerhaften Speicher - Verwenden Sie die Cloud-Speicheroption mit Mem0-API, wenn Sie zuverlässigen Langzeitspeicher benötigen
- Verwendet OpenAI-Einbettungen – Für die Vektorsuchfunktion
- In sich geschlossen – Alle Daten bleiben auf Ihrem Computer
- Erfordert - Einen OpenAI API-Schlüssel
Entwicklung 💻
Klonen Sie das Repository und installieren Sie Abhängigkeiten:
Erstellen Sie den Server:
Für die Entwicklung mit automatischem Neuaufbau bei Dateiänderungen:
Debuggen 🐞
Da MCP-Server über Standarddio kommunizieren, kann das Debuggen eine Herausforderung darstellen. Hier sind einige Ansätze:
- Verwenden Sie den MCP Inspector : Dieses Tool kann die MCP-Protokollkommunikation überwachen:
- Konsolenprotokollierung : Verwenden Sie beim Hinzufügen von Konsolenprotokollen immer
console.error()
anstelle vonconsole.log()
um Störungen des MCP-Protokolls zu vermeiden - Umgebungsdateien : Verwenden Sie eine
.env
Datei für die lokale Entwicklung, um das Festlegen von API-Schlüsseln und anderen Konfigurationsoptionen zu vereinfachen
Hinweise zur technischen Implementierung 🔧
Erweiterte Mem0-API-Parameter
Wenn Sie den Cloud-Speichermodus mit der Mem0-API verwenden, können Sie zusätzliche Parameter für eine anspruchsvollere Speicherverwaltung nutzen. Obwohl sie im Toolschema nicht explizit angezeigt werden, können diese beim Hinzufügen von Speichern in das metadata
aufgenommen werden:
Erweiterte Parameter für add_memory
:
Parameter | Typ | Beschreibung |
---|---|---|
metadata | Objekt | Speichern Sie zusätzlichen Kontext zum Speicher (z. B. Ort, Zeit, Kennungen). Dies kann zum Filtern beim Abrufen verwendet werden. |
includes | Schnur | Spezifische Präferenzen, die in den Speicher aufgenommen werden sollen. |
excludes | Schnur | Bestimmte Einstellungen, die aus dem Speicher ausgeschlossen werden sollen. |
infer | Boolescher Wert | Ob Erinnerungen abgeleitet oder Nachrichten direkt gespeichert werden sollen (Standard: true). |
output_format | Schnur | Formatversion, entweder v1.0 (Standard, veraltet) oder v1.1 (empfohlen). |
custom_categories | Objekt | Liste der Kategorien mit Namen und Beschreibungen. |
custom_instructions | Schnur | Projektspezifische Richtlinien zum Umgang mit und zur Organisation von Erinnerungen. |
immutable | Boolescher Wert | Ob der Speicher unveränderlich ist (Standard: false). |
expiration_date | Schnur | Wann der Speicher abläuft (Format: JJJJ-MM-TT). |
org_id | Schnur | Mit diesem Speicher verknüpfte Organisations-ID. |
project_id | Schnur | Mit diesem Speicher verknüpfte Projekt-ID. |
version | Schnur | Speicherversion (v1 ist veraltet, v2 wird für neue Anwendungen empfohlen). |
Um diese Parameter mit dem MCP-Server zu verwenden, fügen Sie sie beim Aufruf des Tools add_memory
in Ihr Metadatenobjekt ein. Beispiel:
Erweiterte Parameter für search_memory
:
Die Mem0 v2-Such-API bietet leistungsstarke Filterfunktionen, die über den filters
genutzt werden können:
Parameter | Typ | Beschreibung |
---|---|---|
filters | Objekt | Komplexe Filter mit logischen Operatoren und Vergleichsbedingungen |
top_k | ganze Zahl | Anzahl der zurückzugebenden Top-Ergebnisse (Standard: 10) |
fields | Zeichenfolge[] | Spezifische Felder, die in die Antwort aufgenommen werden sollen |
rerank | Boolescher Wert | Ob die Erinnerungen neu eingestuft werden sollen (Standard: „false“) |
keyword_search | Boolescher Wert | Ob auf Grundlage von Schlüsselwörtern gesucht werden soll (Standard: false) |
filter_memories | Boolescher Wert | Ob die Erinnerungen gefiltert werden sollen (Standard: false) |
threshold | Nummer | Minimaler Ähnlichkeitsschwellenwert für Ergebnisse (Standard: 0,3) |
org_id | Schnur | Organisations-ID zum Filtern von Erinnerungen |
project_id | Schnur | Projekt-ID zum Filtern von Erinnerungen |
Der filters
unterstützt komplexe logische Operationen (AND, OR) und verschiedene Vergleichsoperatoren:
Operator | Beschreibung |
---|---|
in | Entspricht einem der angegebenen Werte |
gte | Größer als oder gleich |
lte | Kleiner oder gleich |
gt | Größer als |
lt | Weniger als |
ne | Ungleich |
icontains | Groß- und Kleinschreibung ignorierende Eingrenzungsprüfung |
Beispiel für die Verwendung komplexer Filter mit dem Tool search_memory
:
Dies würde nach Erinnerungen suchen, die mit Alices Hobbys in Zusammenhang stehen, wobei die Benutzer-ID „Alice“ UND die Agenten-ID entweder „Reisebüro“ ODER „Sportbüro“ ist. Dabei würden höchstens 5 Ergebnisse mit einem Ähnlichkeitswert von mindestens 0,5 zurückgegeben.
Ausführlichere Informationen zu diesen Parametern finden Sie in der Mem0-API-Dokumentation .
SafeLogger
Der MCP-Server implementiert eine SafeLogger
-Klasse, die Console.log-Aufrufe aus der Mem0ai-Bibliothek selektiv an stderr umleitet, ohne das MCP-Protokoll zu unterbrechen:
- Fängt console.log-Aufrufe ab und untersucht Stacktraces, um die Quelle zu bestimmen
- Leitet nur Protokollaufrufe aus der mem0ai-Bibliothek oder unserem eigenen Code um
- Bewahrt eine saubere Standardausgabe für die MCP-Protokollkommunikation
- Bereinigt Ressourcen automatisch beim Beenden des Prozesses
Dies ermöglicht eine ordnungsgemäße Funktion innerhalb von MCP-Clients, während nützliche Debuginformationen erhalten bleiben.
Umgebungsvariablen
Der Server erkennt mehrere Umgebungsvariablen, die sein Verhalten steuern:
MEM0_API_KEY
: API-Schlüssel für den Cloud-SpeichermodusOPENAI_API_KEY
: API-Schlüssel für den lokalen Speichermodus (Einbettungen)DEFAULT_USER_ID
: Standard-Benutzer-ID für SpeicheroperationenORG_ID
/YOUR_ORG_ID
: Standard-Organisations-ID für den Cloud-SpeichermodusPROJECT_ID
/YOUR_PROJECT_ID
: Standard-Projekt-ID für den Cloud-Speichermodus
Wichtige Hinweise:
- Sitzungs-IDs werden als Tool-Parameter übergeben (z. B.
"sessionId": "my-session"
), nicht als Umgebungsvariablen - Bei der Verwendung der Tools haben direkt bereitgestellte Parameter (z. B.
orgId
,projectId
,sessionId
) Vorrang vor Umgebungsvariablen, was Ihnen maximale Flexibilität bietet
Hergestellt mit ❤️ von Pink Pixel
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Ein flexibles Speichersystem für KI-Anwendungen, das mehrere LLM-Anbieter unterstützt und entweder als MCP-Server oder als direkte Bibliotheksintegration verwendet werden kann, wodurch eine autonome Speicherverwaltung ohne explizite Befehle ermöglicht wird.
- Funktionen 🧠
- Voraussetzungen 🔑
- Installation & Konfiguration ⚙️
- Cloud vs. lokaler Speicher 🔄
- Entwicklung 💻
- Debuggen 🐞
- Hinweise zur technischen Implementierung 🔧
Related Resources
Related MCP Servers
- -securityFlicense-qualityAn MCP server that allows Claude and other LLMs to manage persistent memories across conversations through text file storage, enabling commands to add, search, delete and list memory entries.Last updated -2TypeScript
- -securityAlicense-qualityAn MCP server that provides persistent memory capabilities for Claude, offering tiered memory architecture with semantic search, memory consolidation, and integration with the Claude desktop application.Last updated -5PythonMIT License
- -securityAlicense-qualityAn MCP-native server that enables intelligent task delegation from advanced AI agents like Claude to more cost-effective LLMs, optimizing for cost while maintaining output quality.Last updated -74PythonMIT License
- -securityAlicense-qualityA Model Context Protocol server that provides AI agents with persistent memory capabilities through Mem0, allowing them to store, retrieve, and semantically search memories.Last updated -2PythonMIT License