Persistent memory for AI agents — REST API, MCP, OAuth, CLI, dashboard. Semantic search, knowledge graph, automatic consolidation. One self-hosted service, every transport.
Interactive 3D knowledge graph — every memory a glowing node, every relationship a curved edge.
MINOR release: 94 commits since the previous release. The MCP-only server stopped serving its full tool surface unauthenticated on a network bind, retention and decay got a set of long-standing correctness fixes, and the HTTP API can scope memory and search by store. 4,128 tests.
mcp-memory-server served the full MCP tool surface with no authentication on whatever address MCP_HTTP_HOST named. It now refuses to start on a non-loopback bind. Network clients should use memory server --streamable-http with MCP_SSE_HOST plus MCP_API_KEY or OAuth. Reported by @NotAFlightRisk. (GHSA-26rx-6fvr-qjqg, #1443)
The HTTP API can scope memory, search, CRUD and analytics by store (#1106), POST /api/search/by-tag accepts a limit, and MCP_CONSOLIDATION_AUTO_SUPERSEDE lets consolidation keep contradicts edges without hiding the older memory. Milvus now implements the full storage and graph contract.
A human rating no longer overwrites the machine quality score that retention reads, MCP_DECAY_ENABLED=false takes effect, type-based retention matches the real ontology, hybrid BM25 finally matches keywords, and exact-mode search no longer treats % and _ as wildcards. Harvest also gains Kiro CLI v3 sessions and a visible coverage report.
Claude.ai connects to your memory server through Streamable HTTP with OAuth 2.1 authentication.
Battle-tested with comprehensive testing and optimized for performance.
Three deployments people built and run themselves.
"After I work with one of the cluster agents on something I want my local agent to know about, the cluster agent adds a special tag to the memory entry that my local agent recognizes as a message from a cluster agent. So they end up using it as a comms bridge — and it's pretty delightful." — @jeremykoerber
A five-agent cluster uses one memory service as shared state and as an inter-agent channel, with no custom protocol: cluster agents write a sentinel tag, the local agent filters on it. The pattern →
"The quality of life that session-independent memory adds to AI workflows is immense. File-based memory demands constant discipline. Semantic recall from a live database doesn't. Storing data on my own hardware while making it remotely accessible across platforms turned out to be a feature I didn't know I needed." — @PL-Peter
Two Docker containers on one SQLite backend, a Cloudflare tunnel for name-based routing and subnet access control, and an auth gateway in front. The checklist →
"mcp-memory-service has been the shared memory layer for all my coding agents since February — Claude Code, Claude Desktop, Codex CLI and OpenCode all talk to the same sqlite-vec DB over stdio on my Mac. ~5,900 memories and counting. Every session starts by pulling a bootstrap profile from memory and ends by committing a session summary, so any agent can pick up where another left off. It's the closest thing to persistent identity my agents have." — Mingjian Shao, AI PM and consultant (September 2026)
One local sqlite-vec database as the shared brain for four agents over stdio — no server, no cloud, embeddings fully offline on MPS, daily backups and scheduled consolidation.
Against the commercial memory APIs and the MCP-native alternatives.
| Mem0 | Zep | DIY Redis+Pinecone | mcp-memory-service | |
|---|---|---|---|---|
| License | Proprietary | Enterprise | — | Apache 2.0 |
| Cost | Per-call API | Enterprise | Infra costs | $0 |
| claude.ai browser | Desktop only | Desktop only | No | Remote MCP |
| OAuth 2.0 + DCR | Unknown | Unknown | No | Yes |
| Streamable HTTP | No | No | No | Yes (SSE too) |
| Framework integration | SDK | SDK | Manual | REST, any HTTP client |
| Knowledge graph | No | Limited | No | Yes, typed edges |
| Auto consolidation | No | No | No | Yes, decay + compression |
| On-premise embeddings | No | No | Manual | Yes, ONNX local |
| Privacy | Cloud | Cloud | Partial | 100% local |
| Hybrid search | No | Yes | Manual | Yes, BM25 + vector |
| MCP protocol | No | No | No | Yes |
| MemPalace | mcp-memory-service | |
|---|---|---|
| LongMemEval R@5 (raw ChromaDB, zero LLM) | 96.6%1 | 86.0% session / 80.4% turn |
| LongMemEval R@5 (with reranking) | 100%2 | — |
| Storage granularity | Session-level | Turn-level and session-level |
| Team / multi-device sync | Local only | Cloudflare sync |
| REST API / web dashboard | No | Yes |
| OAuth 2.1 + multi-user | No | Yes |
| Knowledge graph | No | Yes, typed edges |
| Auto consolidation | No | Yes, decay + compression |
| License | MIT | Apache 2.0 |
Why the benchmark gap? MemPalace stores whole sessions as single units, and LongMemEval asks which session contains the answer — that granularity answers the question structurally. This service defaults to turn-level storage for finer retrieval; session-mode ingestion brings it to 86.0% R@5.
1 Measured in MemPalace "raw mode": plain text in ChromaDB with default embeddings. Per Issue #27, the Palace structural features are bypassed in that configuration, and the maintainers acknowledged most of the review's points.
2 Uses optional LLM reranking (~500 API calls) on a partially tuned test set. Clean held-out score as reported by the maintainers: 98.4% R@5.
Full numbers and the run commands: docs/BENCHMARKS.md →
Fully compatible with the SHODH Unified Memory API Specification: every SHODH implementation shares the same memory schema — emotional metadata, episodic memory, source tracking, quality scoring — so memories export and import across implementations with full fidelity. The reference implementation is shodh-memory (RocksDB); shodh-cloudflare runs on Workers + Vectorize; this service runs SQLite-vec or Hybrid.
Talks and coverage from the community.
Heavybit's Humans in the Loop deep dive talks to maintainer Heinrich Krupp about agent amnesia and why persistent memory is the missing infrastructure layer for agentic systems.
Maintainer Heinrich Krupp presents mcp-memory-service at the AI Tinkerers Zürich meetup — persistent memory architecture, semantic search, and multi-agent memory sharing. Watch the full video →
Dr. Álvaro Cintas on how mcp-memory-service gives Claude Code, Cursor and OpenCode a shared memory over MCP, with on-device ONNX embeddings and no external API calls.
"Your project has inspired me in many ways. In my view, it's the best implementation of MCP memory I've found so far." — Michał Zubkowicz
Install from PyPI and connect your AI agents to persistent memory.
I help teams run self-hosted memory in production — OAuth, hybrid sync, multi-client rollout. Free 30-minute intro call.
Get in touch