Skip to main content
Glama

MemoryMesh

Universeller MCP-Hub für persönliche Daten. Local-First, standardmäßig privat, konzipiert als Speicherschicht für die Agenten, die Sie als Nächstes bauen werden.

CI PyPI License Python MCP Tests v0.1.0

MemoryMesh indiziert Ihre lokalen Dateien – und in zukünftigen Versionen auch Ihre E-Mails, Kalender, Browserverläufe und Chat-Protokolle – und stellt sie über das Model Context Protocol bereit. Jeder MCP-fähige Client (Claude Desktop, Cursor, Claude Code oder Ihr eigener Agent) kann semantische Fragen zu den Dingen stellen, die Sie tatsächlich besitzen, ohne ein einziges Byte in die Cloud zu senden.

Es ist ein Hub, kein RAG für einen einzigen Zweck. Der Transport, das Embedding-Modell, der Parser und die Chunking-Strategie sind hinter sauberen Schnittstellen austauschbar – sodass derselbe Hub von „Suche in meinen Notizen“ zu „Erinnere dich an alles für mein Agent-Betriebssystem“ wachsen kann.


Warum existiert dieses Projekt?

Persönliche Daten sind über Dutzende von Apps fragmentiert. Kein KI-Agent kann auf alle diese Daten auf eine einheitliche, private Weise zugreifen. Anthropic hat mit MCP das Protokoll definiert; MemoryMesh füllt die Lücke des Hubs, der alles miteinander verbindet – lokal, wobei Privatsphäre eine Voraussetzung und keine Einstellung ist.


Related MCP server: NOUZ MCP Server

Funktionsweise

                   ┌──────────────────────────────┐
  MCP clients ───▶ │         MemoryMesh           │
(Claude Desktop,   │  ┌────────────────────────┐  │
 Cursor, agents)   │  │ MCP Tools (FastMCP):   │  │
                   │  │  search_memory         │  │
                   │  │  list_sources          │  │
                   │  │  get_document          │  │
                   │  │  index_now             │  │
                   │  └──────────┬─────────────┘  │
                   │             ▼                 │
                   │     Search Engine             │
                   │   dense + BM25 → RRF          │
                   │             │                 │
                   │   ┌─────────┴──────────┐      │
                   │   ▼                    ▼      │
                   │ ChromaDB            BM25      │
                   │ (embeddings)     (sparse)     │
                   │   ▲                    ▲      │
                   │   └──────── Indexer ───┘      │
                   │                ▲              │
                   │           Watchdog            │
                   └────────────────┬──────────────┘
                                    ▼
                             Your filesystem

Indizierungs-Pipeline: Datei-Watcher erkennt Änderungen → SHA-256-Deduplizierung überspringt unveränderte Dateien → Parser (txt/md/pdf/docx/code) → intelligenter Chunker (tree-sitter für Code, nach Überschriften für Markdown, rekursiv für Text) → Embeddings via sentence-transformers → Upsert in ChromaDB + BM25-Index.

Such-Pipeline: Abfrage → Dense-Suche (ChromaDB) + Sparse-Suche (BM25) Over-Fetch → Reciprocal Rank Fusion (k=60) → Top-k-Ergebnisse mit Pfad, Vorschau, Score und Metadaten.


Was macht es anders?

Die meisten vergleichbaren Tools optimieren eine einzige Dimension. MemoryMesh ist das einzige, das alle gleichzeitig abdeckt:

Feature

MemoryMesh

LangChain

LlamaIndex

PrivateGPT

AnythingLLM

MemGPT

Haystack

MCP-nativ

Hybride Suche (dense + BM25 + RRF)

Teilweise

Teilweise

Echtzeit-Watcher + SHA-256-Deduplizierung

Reconciliation nach Absturz

100% lokal, keine Telemetrie

Plattformübergreifend (Win/Linux/Mac)

Teilweise

Teilweise

Keine Framework-Abhängigkeit

Als Infrastruktur konzipiert

MCP-nativ bedeutet, dass es von Anfang an für MCP gebaut wurde – nicht nachträglich hinzugefügt. Die 4 Tools (search_memory, list_sources, get_document, index_now) haben eine stabile API, die über Versionen hinweg nicht bricht.

Als Infrastruktur konzipiert bedeutet, dass die Architektur den Zugriff durch mehrere Agenten, Berechtigungen pro Agent und Hardware-Agenten (ESP32, Arduino), die denselben Hub abfragen, antizipiert. Siehe Roadmap.


Status

Feature

Status

Lokale Datei-Indizierung (txt, md, code, pdf, docx)

Hybride Suche — dense + BM25 + RRF

MCP-Server — 4 Tools, stdio + streamable-http

Inkrementelle Echtzeit-Indizierung (watchdog + debounce)

Tree-sitter Code-Chunking (Python, JS, TS, Go, Rust…)

Plattformübergreifend — Windows / Linux / macOS

Reconciliation nach Absturz

Optionale OCR für gescannte PDFs (Tesseract / EasyOCR)

Datenschutz-Audit-Log (nur Abfrage-Hashes, kein Klartext)

172 Tests — Unit + Integration

Parent Document Retriever (extended_preview)

🔜 v0.2

GitHub Actions CI (Ubuntu / Windows / macOS)

🔜 v0.2

Docker + docker-compose

🔜 v0.2

Cross-encoder Reranker

🔜 v0.3

Evaluierungs-Framework (Precision@k, MRR, NDCG)

🔜 v0.3

RAG mit lokalem LLM (Ollama)

🔜 v0.4

E-Mail / Kalender / Browser-Quellen

🔜 v0.4

Berechtigungsebene pro Agent

🔜 v0.5


Quickstart

Voraussetzung: Python 3.11+ und uv.

# Install from PyPI
pip install memorymesh-mcp

Oder für die Entwicklung klonen:

# Clone and install
git clone https://github.com/kilhubprojects/memory-mesh.git
cd memory-mesh
uv sync

# Initialize state directory and copy example config
uv run memorymesh init

# Edit config.yaml — point it at the folders you want indexed
# (see Configuration section below)

# Index a folder
uv run memorymesh index ~/Documents

# Test a search
uv run memorymesh search "how did I configure the debounce"

Als Daemon ausführen (Echtzeit-Indizierung)

uv run memorymesh start --transport streamable-http --detach
uv run memorymesh status
# edit a file in one of your sources — it gets indexed within ~2s
uv run memorymesh search "the sentence you just typed"
uv run memorymesh stop

In Claude Desktop einbinden

Fügen Sie dies zu Ihrer Claude Desktop-Konfiguration hinzu:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "memorymesh": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "/absolute/path/to/memory-mesh",
        "memorymesh", "serve", "--stdio"
      ]
    }
  }
}

Starten Sie Claude Desktop neu. Die vier Tools erscheinen automatisch.


MCP-Tools

Tool

Beschreibung

search_memory(query, top_k, mode, source)

Hybride Suche über alle indizierten Inhalte. Gibt Pfad, Vorschau, Score, Dateityp und Quelle zurück.

list_sources()

Listet alle konfigurierten Quellen mit Dateianzahl und Index-Status auf.

get_document(path, max_bytes)

Liest den vollständigen Inhalt einer indizierten Datei (standardmäßig bis zu 1 MB).

index_now(path)

Erzwingt die sofortige Neuindizierung einer Datei oder eines Verzeichnisses unter Umgehung des Watchers.

Alle Tools sind abwärtskompatibel. Die v0.1-Signaturen sind eingefroren – das Hinzufügen von extended_preview in v0.2 ist additiv, nicht brechend.


Konfiguration

Alles befindet sich in config.yaml. Siehe config.example.yaml für eine vollständig kommentierte Referenz. Wichtige Highlights:

sources:
  - name: documents
    path: ~/Documents
    recursive: true
    extensions: [.txt, .md, .pdf, .docx]

  - name: projects
    path: ~/Projects
    recursive: true
    extensions: [.py, .js, .ts, .go, .rs, .md]

embeddings:
  model: all-MiniLM-L6-v2   # swap to paraphrase-multilingual-MiniLM-L12-v2 for PT/EN

search:
  mode: hybrid               # hybrid | dense | sparse
  top_k: 10

server:
  transport: stdio           # stdio | streamable-http

Die globale Ignorierliste schützt sensible Pfade standardmäßig: .env, *.key, id_rsa*, secrets/, .ssh/, .aws/, .git/, node_modules/.


Benchmarks

Benchmarks werden hier veröffentlicht, sobald v0.2 die CI auf allen drei Plattformen erreicht. Das Ziel sind reproduzierbare Zahlen – nicht „schnell auf meinem Rechner“.

Skripte befinden sich bereits in benchmarks/ und sind lokal ausführbar:

  • bench_indexing.py — Indizierungsdurchsatz (Chunks/s, MB/s) auf einem synthetischen Korpus

  • bench_search_latency.py — p50/p95/p99 Suchlatenz über hybride/dense/sparse Modi

  • bench_embedding_models.py — Geschwindigkeits- vs. Qualitätsvergleich über drei Embedding-Modelle


Datenschutz & Sicherheit

Drei harte Verpflichtungen, die sich über Versionen hinweg nicht ändern:

  1. Keine Daten verlassen Ihren Rechner. Keine Telemetrie. Keine externen API-Aufrufe, es sei denn, Sie stimmen explizit zu – und selbst dann gibt es eine WARNING im Log.

  2. HTTP-Listener bindet standardmäßig nur an 127.0.0.1. Das Exponieren an andere Schnittstellen erfordert eine explizite Konfigurationsüberschreibung.

  3. Logs enthalten niemals Dokumentinhalte oder Abfragen im Klartext. Das Audit-Log zeichnet Abfrage-Hashes auf, nicht die Abfragen selbst.

Verschlüsselung im Ruhezustand steht auf der Roadmap. Wenn Ihre Festplatte auf Betriebssystemebene verschlüsselt ist, sind Sie für das Bedrohungsmodell, gegen das MemoryMesh entwickelt wurde, abgesichert.


Roadmap

Version

Fokus

ETA

v0.2

Sicherheits-Härtung + CI/CD + Parent Document Retriever

bald

v0.3

Evaluierungs-Framework (Precision@k, MRR) + Reranker + Abfrageerweiterung

v0.4

Lokales LLM via Ollama (vollständiges RAG) + E-Mail/Kalender-Quellen

v0.5

Berechtigungen pro Agent + hierarchischer Speicher (hot/warm/cold)

v1.0

Agent-OS-Integration — Speicherschicht für Multi-Agenten-Systeme

~6 Monate

v2.0

Hardware-Agenten — ESP32/Arduino fragen den Hub über BLE/WiFi ab

~12 Monate

Alle Details in ROADMAP.md.


Fehlerbehebung

  • UnicodeDecodeError bei einer Textdatei — MemoryMesh versucht nacheinander UTF-8, UTF-8 BOM, cp1252, latin-1. Wenn eine Datei dennoch fehlschlägt, wird dies protokolliert und übersprungen, ohne Absturz.

  • Watcher reagiert nicht auf einem Netzlaufwerk / WSL-Mount — setzen Sie watcher.use_polling: true in config.yaml.

  • Tesseract nicht gefunden — installieren Sie es systemweit und stellen Sie sicher, dass es im PATH ist. Windows: UB-Mannheim Installer.

  • Embedding-Modell-Mismatch nach Konfigurationsänderung — führen Sie memorymesh reindex --all aus. Das CLI verweigert den Start, wenn die in ChromaDB gespeicherte Modell-ID nicht mit der Konfiguration übereinstimmt.


Über dieses Projekt

MemoryMesh ist ein Solo-Projekt, das mittels Vibe Coding erstellt wurde – das Schreiben von Code in enger Zusammenarbeit mit LLMs bei hoher Geschwindigkeit – mit strukturierten Architektur-Reviews in jeder Phase. Der Prozess: LLM schlägt Code vor, Architekt prüft auf Korrektheit, Designlücken und Spezifikationsverletzungen, Test-Suite bestätigt. Fehler, die durchgerutscht sind (Startreihenfolge im Reconciliation-System, BM25-Kapselungsverletzung, falsche Konstruktor-Kwargs im CLI), wurden im Review gefangen, bevor sie jemals in Produktion liefen.

So sieht Vibe Coding aus, wenn man den Review-Schritt ernst nimmt: eine 172-Test-Suite, eine echte hybride Such-Pipeline, ein Reconciliation-System und eine Architektur, die darauf ausgelegt ist, in ein Agent-Betriebssystem überführt zu werden.


Mitwirken

MemoryMesh akzeptiert derzeit noch keine externen Beiträge – es gibt noch keine CI oder einen Leitfaden für Mitwirkende. Dies ändert sich mit v0.2. Beobachten Sie das Repo oder schauen Sie dann wieder vorbei.


Lizenz

MIT. Siehe LICENSE.


Danksagungen

Die Architektur wurde durch das Studium von LlamaIndex, LangChain, PrivateGPT, AnythingLLM, MemGPT und Haystack geprägt – um zu verstehen, was jedes gut macht und was nicht. Und an chroma-mcp und das MCP Python SDK dafür, dass sie gezeigt haben, wie MCP-nativ in der Praxis aussieht.

Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    A custom Memory MCP Server that acts as a cache for Infrastructure-as-Code information, allowing users to store, summarize, and manage notes with a custom URI scheme and simple resource handling.
    23
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Memento is a local-first MCP server that gives AI coding agents durable project memory — facts, decisions, patterns, and architecture notes — so they stop re-learning the same context every session. Runs locally on Node.js 18+ with SQLite storage and optional cloud embeddings; works with Claude Code, Cursor, Windsurf, and any MCP client.
    19
    33
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.

  • Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.

  • Hosted MCP memory: save sessions/decisions once, search from Claude, Cursor, ChatGPT. EU-hosted FTS.

View all MCP Connectors

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/kilhubprojects/memory-mesh'

If you have feedback or need assistance with the MCP directory API, please join our Discord server