Labsco
MCP SERVER

MCP Memory-mesh

by kilhubprojects

A local memory layer that indexes your files into SQLite and ChromaDB and answers with hybrid search plus a reranker — 15 MCP tools, no cloud account, no telemetry.

Agent Memory
Summary
Search quality is the point, not just persistence.

Most memory servers stop at storing and retrieving; this one runs query expansion, then dense and sparse search in parallel, then a cross-encoder reranker over the candidates — which is why it can find the note you half-remember rather than the one that shares your keywords. Encryption at rest and per-agent ACLs are in the same release, and nothing leaves the machine unless you configure a connector.

What it is

A persistent memory server for MCP clients that runs entirely on your machine. A file watcher indexes the folders you name, chunks them with format-aware parsers, and stores embeddings locally; searches fuse dense and BM25 results with Reciprocal Rank Fusion and then rerank with a cross-encoder.

What you get
  • `search_memory` — hybrid search over everything indexed, returning path, preview, score, file type and source, with an optional wider `extended_preview`
  • `list_sources`, `get_document` for the full text of an indexed file, and `index_now` to force a re-index without waiting for the watcher
  • `ask_memory` — retrieval plus a grounded answer from a local Ollama model, with cited sources; `summarize_source` does the same for a source's recent content
  • Memory control — `pin_memory` keeps a chunk in the hot tier so it is never demoted or decayed, `forget_memory` suppresses a chunk from results without touching the file, `forget_source` drops an entire source from the index
  • `query_timeline` reads the episodic event log for what was retrieved or indexed in the last N days
  • `related_documents` finds files semantically close to one you name, `search_by_date` filters by last-modified range
  • `get_entity` looks up a person, project or concept and its chunks; `graph_memory` returns the entity co-occurrence graph as nodes and edges
  • `sync_source` pulls from a configured external connector — the project ships 47, covering Jira, Notion, GitHub, Slack, email, browser history and more
  • Parsers for txt, md, pdf, docx, code, Obsidian vaults with wikilinks and frontmatter, `.mbox` email, `.ics` calendars and browser history
Requirements

No account and no key. Python 3.11+; `pip install memorymesh-mcp`, copy `config.example.yaml` to `~/.memorymesh/config.yaml` and point the `sources` list at your folders, then index once with `memorymesh index`. The client config runs `memorymesh start`. `ask_memory`, `summarize_source` and HyDE query expansion need Ollama running locally and are off until you set `ollama.enabled: true`. Transport is `stdio` or `streamable-http`, and the HTTP listener binds to `127.0.0.1` unless you override it. A global ignore list keeps `.env`, `*.key`, `id_rsa*`, `secrets/`, `.ssh/`, `.aws/`, `.git/` and `node_modules/` out of the index. Package `memorymesh-mcp` at 0.8.0, MIT.

Setup effort

One command — pip install memorymesh-mcp