Skip to main content
Glama

claude-memory

Speicher + Projektverfolgung für Claude Code. Ein MCP-Server.

  • Semantische Suche über alle bisherigen Claude-Code-Transkripte – neue Sitzungen rufen alte ab, weit über das Kontextfenster hinaus

  • Dauerhafte Notizen (remember) – pro Projekt oder global

  • Strukturierte Verfolgung: Projekte → Meilensteine → Epics → Tickets → Todos, als Roadmap dargestellt

  • Verfolgungselemente in denselben Vektorraum eingebettet – Tickets tauchen in der semantischen Suche auf

  • Projektspezifische Systemprompts, in der Datenbank gespeichert, beim Sitzungsstart injizierbar

Stack: Voyage-AI-Embeddings + Qdrant-Vektordatenbank + SQLite + FastMCP. Alles kostenlos: Das Voyage-Kostenloskontingent deckt die private Nutzung problemlos ab, das Qdrant-Cloud-Kostenloskontingent fasst 1 Million Vektoren (oder lokalen Docker ausführen). 0 $ Betriebskosten.

Einrichtung

Zwei Schlüssel:

git clone https://github.com/mathis-sperlich/claude-memory
cd claude-memory
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
cp .env.example .env
# fill VOYAGE_API_KEY, QDRANT_URL, QDRANT_API_KEY

Zeige mit SCAN_PROJECTS in ingest.py auf deine Transkriptverzeichnisse (Claude Code schreibt sie nach ~/.claude/projects/<codiertes-projektverzeichnis>/*.jsonl).

Related MCP server: karve

Erfassen

.venv/bin/python ingest.py --dry-run   # sanity-check chunking
.venv/bin/python ingest.py             # embed + upsert

Idempotent – bei erneuter Ausführung werden nur neue Blöcke eingebettet. Als Cron-Job geeignet. Stündliche launchd-Vorlage: launchd/com.mathis.claude-memory.plist (Pfade bearbeiten, cp nach ~/Library/LaunchAgents/, launchctl load).

Abruf über die Befehlszeile testen:

.venv/bin/python query.py "how did the auth token refresh bug get fixed?"

Schlechte Ergebnisse? Verringere MAX_CHUNK_CHARS in ingest.py oder verwende ein größeres EMBED_MODEL in .env und führe die Erfassung mit --reset erneut aus.

In Claude Code einbinden

~/.claude/settings.json:

{
  "mcpServers": {
    "claude-memory": {
      "command": "/path/to/claude-memory/.venv/bin/python",
      "args": ["/path/to/claude-memory/mcp_server.py"]
    }
  }
}

Claude Code neu starten. Fertig – Claude hat jetzt query_history, remember, Tracking-Tools und Systemprompt-Tools.

Werkzeuge

Speicher

Werkzeug

Zweck

query_history(frage, k=, projekt=, seit=, art=)

Semantische Suche über alles. art: note, transcript, tracking oder Untertyp

list_recent_sessions(tage=, projekt=)

Woran habe ich zuletzt gearbeitet

remember(inhalt, titel=, tags=, projekt=)

Dauerhafte Notiz speichern. projekt grenzt sie ein; weglassen → global (erscheint in der Suche jedes Projekts)

list_notes(tag=, limit=) / forget(notiz_id)

Notizen verwalten

Verfolgung

Hierarchie: Projekt → Meilenstein (optional) → Epic → Ticket → Todo.

Werkzeug

Zweck

create_project(name, beschreibung=)

Oberste Ebene der Hierarchie

create_milestone(projekt, name, beschreibung=, zieldatum=)

Was zusammen ausgeliefert wird

create_epic(projekt, titel, beschreibung=, meilenstein=, priorität=)

Tickets zu einem Ziel bündeln

create_ticket(projekt, titel, beschreibung=, epic=, priorität=)

Arbeitseinheit

create_todo(projekt, titel, beschreibung=, ticket=, priorität=)

Kleiner Schritt

list_items(art=, projekt=, status=, übergeordnete_id=)

Gefilterte Liste

get_item(id)

Ein Element + Unterelemente

update_item(id, status=, titel=, beschreibung=, priorität=, ...)

Teilweises Aktualisieren, Fehler bei nicht zutreffenden Feldern

delete_item(id)

Löschen. Projekte müssen zuerst leer sein

get_roadmap(projekt)

Markdown-Roadmap: Meilensteine → Epics → Tickets + Fortschritt

list_projects()

Jeder Projektname über alle Speicher hinweg

status: open / in_progress / done. priorität: P0–P3.

Systemprompts

set_system_prompt(inhalt, projekt=) / get_system_prompt(projekt=) / list_system_prompts() / delete_system_prompt(projekt=). Globale und projektspezifische Ebenen, beim Lesen zusammengesetzt. Gespeichert in tracking.db. Fällt auf docs/usage.md zurück, wenn nicht gesetzt.

Hooks (optional, deterministisch)

MCP-Werkzeuge werden ausgelöst, wenn das Modell es entscheidet. Hooks werden immer ausgelöst. hooks/session_start.py injiziert bei jedem Sitzungsstart die offenen Tickets und den Systemprompt des aktuellen Projekts:

{
  "hooks": {
    "SessionStart": [{
      "matcher": "*",
      "hooks": [{
        "type": "command",
        "command": "/path/to/claude-memory/.venv/bin/python /path/to/claude-memory/hooks/session_start.py"
      }]
    }]
  }
}

Fernzugriff (optional)

Standard = lokales stdio, null Netzwerkverkehr. Möchtest du denselben Speicher von claude.ai oder anderen Rechnern aus? HTTP-Transport + Cloudflare-Tunnel + GitHub-OAuth mit Anmelde-Zulassungsliste:

.venv/bin/python mcp_server.py --transport http --port 8765

Vollständige Anleitung inkl. launchd-Diensten und selbstheilendem Watchdog: CLOUD_SETUP.md.

Hinweise

  • Datenschutz: Voyage sieht Text beim Einbetten (kein Training mit Kundendaten laut AGB), Qdrant Cloud speichert Vektoren und Nutzdaten. Wenn dich beides betrifft → lokales Qdrant + lokaler Embedder, gleicher Code.

  • Steckengebliebene Einbettungsanfragen werden durch die Umgebungsvariablen VOYAGE_TIMEOUT / VOYAGE_MAX_RETRIES begrenzt (Standard 20 s / 2).

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides persistent semantic memory for Claude Code via local embeddings and six MCP tools, enabling context storage and retrieval across sessions without cloud dependencies.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Persistent project memory MCP server for Claude Code that remembers development context across sessions, including features, fixes, notes, and standards.
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that provides persistent long-term memory for Claude Code, enabling storage, search, and retrieval of project knowledge across sessions.
    -