LabscoMCP early access ↗
kilhubprojectsMCP SERVER

MCP Memory-mesh

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.

by kilhubprojects ↗Agent MemoryCommunity

LABSCO 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