memory-mcp
memory-mcp
Persistenter, durchsuchbarer, versionierter Speicher für KI-Agenten — basierend auf Valkey (Redis-kompatibel), bereitgestellt als MCP-Server über HTTP.
Funktioniert mit jedem MCP-kompatiblen Agenten: Claude Code, Cursor, VS Code und anderen.
Funktionsweise
Speichert benannte Speichereinträge mit Tags, Typen und Projektbereichen
Suche nach Tag-Schnittmengen, Filterung nach Typ/Projekt und Teilstring-Suche
Treffer-Tracking (häufig abgerufene Einträge werden bevorzugt)
Vollständige Versionshistorie mit Rollback-Funktion
Prometheus-Metriken-Endpunkt
Optionale Bearer-Token-Authentifizierung
Schnellstart
cp .env.example .env
# Optional: set MEMORY_MCP_AUTH_TOKEN in .env (see Auth section)
docker compose up -dDies lädt das vorgefertigte Image von GHCR. Der MCP-Server ist nun unter http://127.0.0.1:3106/mcp verfügbar.
Um stattdessen lokal zu bauen:
docker compose build
docker compose up -dVerwendung eines bestehenden Redis oder Valkey
Standardmäßig startet docker compose up -d einen gebündelten Valkey-Container. Um stattdessen eine Verbindung zu einer bestehenden Redis- oder Valkey-Instanz herzustellen, setzen Sie VALKEY_URL und starten Sie nur den memory-mcp-Dienst:
# .env
VALKEY_URL=redis://your-host:6379
docker compose up -d memory-mcpJeder Redis-kompatible Server (Redis 6+, Valkey, KeyDB, Upstash via rediss:// usw.) funktioniert. Der Server verwendet nur grundlegende Datenstrukturen: Hashes, Listen und Sets.
Agenten-Einrichtung
Kopieren Sie AGENTS.md aus diesem Repository in Ihr Projekt-Stammverzeichnis. Es weist Ihren Agenten an, wie die Speicher-Tools zu verwenden sind, was gespeichert werden soll und wann.
Registrieren Sie dann den MCP-Server bei Ihrem Agenten-Client:
Claude Code
# Without auth
claude mcp add memory --transport http http://127.0.0.1:3106/mcp
# With auth
claude mcp add memory --transport http http://127.0.0.1:3106/mcp \
--header "Authorization: Bearer your-token"Oder fügen Sie es manuell zu ~/.claude.json hinzu:
{
"mcpServers": {
"memory": {
"type": "http",
"url": "http://127.0.0.1:3106/mcp",
"headers": { "Authorization": "Bearer your-token" }
}
}
}Cursor
Fügen Sie es zu ~/.cursor/mcp.json (global) oder .cursor/mcp.json (Projekt) hinzu:
{
"mcpServers": {
"memory": {
"url": "http://127.0.0.1:3106/mcp",
"headers": { "Authorization": "Bearer your-token" }
}
}
}VS Code (GitHub Copilot, MCP-Erweiterung)
Fügen Sie es zu .vscode/mcp.json in Ihrem Projekt hinzu:
{
"servers": {
"memory": {
"type": "http",
"url": "http://127.0.0.1:3106/mcp",
"headers": { "Authorization": "Bearer your-token" }
}
}
}Lassen Sie die Zeile headers / Authorization in der Konfiguration weg, wenn Sie keine Authentifizierung verwenden.
Konfiguration
Kopieren Sie .env.example nach .env und bearbeiten Sie diese nach Bedarf.
Variable | Standard | Beschreibung |
|
| Schnittstelle, an die gebunden werden soll. Verwenden Sie |
|
| Auf dem Host verfügbarer Port |
| (leer) | Bearer-Token für |
|
| Soft-Limit — warnt beim Schreiben, wenn überschritten |
|
| Maximale Versions-Snapshots pro Eintrag |
|
| Container-Speicherlimit |
|
| Zu verwendendes Valkey-Image |
Authentifizierung
Standardmäßig läuft der Server ohne Authentifizierung. Dies ist sicher, wenn er an den Loopback (127.0.0.1) gebunden ist und nur vom lokalen Rechner aus zugegriffen wird.
Um die Authentifizierung zu aktivieren:
# Generate a token
openssl rand -hex 32
# Add to .env
MEMORY_MCP_AUTH_TOKEN=your-generated-token
docker compose up -dAlle Anfragen an POST /mcp müssen dann Folgendes enthalten:
Authorization: Bearer <token>GET /health und GET /metrics sind immer ohne Authentifizierung zugänglich.
Verfügbare Tools
Tool | Beschreibung |
| Suche nach Tags (Schnittmenge), Typ, Projekt oder Text-Teilstring |
| Abrufen eines Eintrags nach ID (erhöht den Trefferzähler) |
| Erstellen oder Aktualisieren eines Eintrags (versioniert bei jedem Schreibvorgang) |
| Auflisten von Einträgen mit optionalem Typ-/Projektfilter |
| Löschen eines Eintrags (zuerst wird eine Tombstone-Version geschrieben) |
| Anzeigen der Versionshistorie für einen Eintrag |
| Wiederherstellen eines Eintrags auf eine frühere Version |
| Anzeigen von veralteten Einträgen mit null Treffern zur Überprüfung (schreibgeschützt) |
Speichertypen
pattern, decision, reference, feedback, incident, project, entity, state
Endpunkte
Methode | Pfad | Auth | Beschreibung |
|
| falls konfiguriert | MCP JSON-RPC-Endpunkt |
|
| keine | Gesundheitsprüfung |
|
| keine | Prometheus-Metriken |
Datenmodell
Jeder Eintrag wird als Redis-Hash unter mem:<id> gespeichert:
Feld | Beschreibung |
| Kurzer beschreibender Titel |
| Vollständiger Inhalt |
| Eintragstyp |
| Kommagetrennte Tag-Liste |
| Wer hat es geschrieben |
| Projektbereich (leer = projektübergreifend) |
| ISO-Datum der Erstellung |
| ISO-Datum der letzten Aktualisierung |
| Häufigkeit des Abrufs via |
| Ablaufzeit in Sekunden (optional) |
Die Versionshistorie wird in einer Redis-Liste unter memver:<id> gespeichert (neueste zuerst, begrenzt auf MAX_VERSIONS_PER_ENTRY).
Tag-, Typ- und Projektindizes sind Redis-Sets (tag:<name>, type:<name>, project:<name>).
Lizenz
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/joshdougall/memory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server