There is no single best MCP memory server: the best option is the one whose store sits where your memory has to live and that only the right clients can reach. For one assistant on one machine, a local stdio server with a store you can open is enough: the official reference server, basic-memory, Engram, MemPalace or claude-mem. For several assistants on one machine, use one local store that all of them reach: agentmemory, Engram, basic-memory, or the reference server with one shared file. For a team or several machines, use a hosted endpoint (Mem0, Supermemory, Memori) or a network server that you run yourself (Hindsight, mcp-memory-service).
Before installing any of them, run three checks that none of the comparison pages read for this article runs on every server it lists: whose entry stands under the product's name in the official MCP registry, who can reach the server by default, and whether the project still ships from the address your guide gives. The table below runs all three on thirteen servers, as read on 4 November 2026.
TL;DR
- Choose by situation, not by rank. One assistant on one machine: a local stdio server. Several assistants on one machine: one local store that all of them reach. A team or several machines: a hosted endpoint or a server you run, where access control comes first.
- Check the publisher of the registry entry. On 4 November, 4 of the 13 had an entry under their own GitHub namespace; for the other 9 none from the project was found, and for several a search by the name returns other publishers' entries.
- Check who can reach it by default. Hosted endpoints ask for a sign-in or a key; a server that you run yourself may answer without authentication until you turn it on.
- Check that it still ships from that address, then test it. Write a fact, read it back in a new session, and find the record in the store.
Mnemoverse (the author's company) makes a memory API for agents and is one of the thirteen rows in the table, described from its public documentation only; the rows are alphabetical and rank nothing.
Which MCP memory server fits which situation?
Pat put the question in its working form on the Cursor forum on 6 May 2026: "For people who use more than one of these seriously, what's your current setup?" The answer starts with how many assistants read the memory, and on how many machines.
One assistant on one machine. A server that the client starts over stdio, with its store on your disk, is enough; the options differ in the store and in what they need to run. The reference server's README calls it "A basic implementation of persistent memory using a local knowledge graph. This lets Claude remember information about the user across chats." basic-memory's README: "Local-first. Plain text on your disk. Forever." The Reddit user johntash, in a comment of 4 October 2025: "I like basic-memory mcp. It's just a directory of markdown files, no special format." Engram's README: "No Node.js, Python, or Docker is required: one binary, one SQLite file." claude-mem's README opens with "Your coding agent forgets everything between sessions. Claude-Mem remembers for it." and also gives install commands for OpenCode, T3 Code with Codex, and Antigravity CLI.
Several assistants on one machine. The assistants now need one store, not one store each. agentmemory's README is built around that: "Keep one memory store across tools, inspect what was saved, and choose how much context reaches the model." Engram's README puts it as "One brain. Local or cloud. Agent-agnostic, single binary, zero dependencies.", and basic-memory's README lists Claude Desktop, Claude Code, Codex, Cursor and VS Code among its clients. The reference server's README documents the shared-file case, "Each MCP client starts its own server process, so two clients using the same MEMORY_FILE_PATH (or both using the default) are two processes writing one file.", with a lock file around every write "so writes from different processes take turns and none is lost." The same README states the limit: "The lock relies on exclusive file creation, which local filesystems provide; a network filesystem that does not honour it cannot be shared safely this way." Jason Luo, replying in Pat's thread on 24 June 2026, described what holds up across tools: "The setup that seems to age best is boring: repo-level source of truth first, tool-specific memory second."
A team, or several machines. The store then sits behind a network address, and someone has to run it. Mem0's MCP page: "Nothing runs on your machine: the server is hosted by Mem0, and your client connects to it over HTTPS." Supermemory and Memori also run hosted endpoints, and basic-memory and claude-mem add a hosted or backup tier to their local tools. For a server you run yourself, Hindsight's MCP page says "The MCP server is enabled by default and mounted at /mcp on the API server.", the mcp-memory-service README describes "One self-hosted service, every transport.", Engram's cloud documentation a "Self-hosted cloud runtime: engram cloud serve on infrastructure you control", and MemPalace's setup, per its README, offers "a private local palace, a shared-brain hub, or a client connected to an existing hub".
What do the current lists of options not check?
Three of the pages that a web search returned for this title, read on 4 November, are careful in their own ways. Coworker's 9 Best MCP Memory Servers gives every server a stated limitation, asks first "Where does the memory live, and can you export it?" and ends with a test: "Then test it: tell it something, then ask in a new chat." Hjarni's 7 Options Compared states its frame: "This is my assessment of the documented products, not an independent ranking or a hands-on benchmark." Naman Jain's article for teams advises "Do not start with the longest feature list."
On the pages read, none of the three checks whose entry stands in the registry, and none checks default access and the shipping address server by server; Coworker comes closest, noting that mcp-memory-service "binds to localhost by default", that Supermemory "signs you in with OAuth instead of an API key", and that OpenMemory was "removed from Mem0's repository on July 29, 2026". Their lists also leave out claude-mem, MemPalace, Hindsight, agentmemory and Engram, and four of those five had more than 30,000 stars on GitHub on 4 November.
How do thirteen MCP memory servers compare on the three checks?
The thirteen are the servers of the library comparison linked at the end, in alphabetical order.
| Server | Registry entry under the name | Who can reach it by default | Ships from the usual address | Where memory is stored |
|---|---|---|---|---|
| agentmemory | None from rohitg00; other publishers' entries carry the word | Local API and viewer: "Both bind to loopback by default." (README) | Yes, GitHub; npm 0.9.32 | One local store across tools |
| basic-memory | Own, PyPI package | Local clients over stdio; https for the hosted version | Yes, GitHub; PyPI 1.0.0; install needs --prerelease=allow
|
Markdown in ~/basic-memory; the same files in Basic Memory Cloud |
| claude-mem | None from thedotmack | A local worker, "a local HTTP service managed by Bun" that "serves the viewer and search" (README), which "binds to 127.0.0.1 by default" (configuration) |
Yes, GitHub; npm 15.9.0 | Local SQLite and Chroma; optional backup to cmem.ai |
| Engram | None from Gentleman-Programming | Local; the usual setup is stdio, with no server to start | Yes, GitHub; v3.6.2 | One SQLite file; optional Git Sync or a self-hosted Engram Cloud |
| Hindsight | None from vectorize-io; other publishers' entries carry the word | "By default, the MCP endpoint is open (no authentication required)." (MCP page); an API key can be enabled | Yes, GitHub; PyPI hindsight-api 1.2.0 | Memory banks on your server, or Hindsight Cloud |
| mcp-memory-service | None found | Self-hosted: "the server binds to 127.0.0.1 (localhost only) by default." (README) | Yes, back on GitHub; PyPI 12.5.0 | SQLite; Cloudflare, Hybrid or Milvus for shared use |
| Mem0 (hosted MCP) | Own, remote endpoint; com.saastemly/mem0-cloud is another publisher's |
"The server is authenticated, so connecting is not enough on its own." (MCP page) | Hosted, yes; OpenMemory removed from the monorepo | Your Mem0 account |
| memento-mcp | None from gannonh | A process your client starts with npx, per the README's Claude Desktop config; needs your Neo4j and OpenAI credentials | Last release v0.3.9, May 2025 | Your Neo4j 5.13+ database |
| Memori | Own, npm package over stdio | The hosted endpoint takes an "API key via request headers" (README) | Registry package v1.0.0 of March 2026; the README gives the hosted endpoint | Memori Cloud, or your own database |
| MemPalace | None from MemPalace; another publisher's entry carries the word | stdio; "Nothing leaves your machine unless you opt in." (README) | Yes, GitHub (branch develop); PyPI 3.11.0 | ChromaDB on your machine by default |
| Mnemoverse | Own, npm package and remote endpoint | The stdio package with an API key, or the remote endpoint by OAuth sign-in or a bearer key | Yes, npm 0.17.0 | Server-side, hosted by Mnemoverse |
Reference server (server-memory) |
None found | stdio only; each client starts its own process | Yes, GitHub; npm 2.0.1, needs Node.js 24 |
memory.jsonl on your machine, shareable locally through a lock file |
| Supermemory MCP | None from supermemoryai; another publisher's entry carries the word | Remote HTTP: "Supermemory MCP uses OAuth." (setup) | Current docs on supermemory.ai; MCP v1 is being deprecated | Spaces in your Supermemory account |
Read on 4 November 2026 from each project's README or documentation, the official registry API (by product name and by repository owner), npm, PyPI and the GitHub API; not a test of any server. Own: an entry under the namespace of the project's own GitHub account.
Whose entry stands under the name in the official MCP registry?
The registry is where MCP clients look servers up; its README describes it as "like an app store for MCP servers".
A registry entry proves who published it, not what it is. The registry README says "The registry validates namespace ownership when publishing.": a name under io.github.<account>/ is published by someone logged in to GitHub as that account, or from a GitHub Action in its repositories, and a name under a domain needs a DNS or HTTP proof for the domain. Review is another matter, per the moderation policy: "The MCP Registry does not make guarantees about moderation, and consumers should assume minimal-to-no moderation." The same policy lists "Low-quality or buggy servers" and "Servers with security vulnerabilities" among what it does not remove.
A registry search by product name and by repository owner on 4 November gave two outcomes. Four of the thirteen, marked Own, have an entry under the namespace of the GitHub account that holds the project. For the other nine no entry from the project was found, and for several of them the search by name returns entries of other publishers with the same word. Mem0 shows both at once in the same search: its own io.github.mem0ai/mem0, and com.saastemly/mem0-cloud, described as "A hosted agent-memory API shaped like mem0's REST API". This article names such entries and says nothing else about them. The reference server's npm package declares the name io.github.modelcontextprotocol/server-memory in its mcpName field, and a search for that name returned no entry.
So when a client installs from the registry, compare the entry's namespace with the owner of the repository where the project's README lives. A missing entry says only that a client cannot find the server there under that name.
Who can reach a memory server by default?
A stdio server talks only to the client that started it; a server on a port is open to whatever can reach that port unless it checks a key or token; a hosted endpoint answers whoever holds a valid sign-in or key. The table quotes the vendors' defaults where they state one. A few details sit outside it.
claude-mem's README describes an installer that asks for a browser sign-in after setup, and with an explicit --provider flag, CLAUDE_MEM_ONLINE_OPTIN=false or in CI "the installer completes without any account interaction."
Hindsight's MCP page follows its default with the steps to turn on an API key through a tenant extension, and its examples point at localhost:8888; its configuration page gives HINDSIGHT_API_HOST the default bind address 0.0.0.0, while hindsight-api --host 127.0.0.1 binds to localhost only and the embedded daemon binds to 127.0.0.1:8888. The mcp-memory-service README writes MCP_ALLOW_ANONYMOUS_ACCESS=true into the command of its REST quick start, and its first paragraph lists "REST API, MCP, OAuth, CLI, dashboard". memento-mcp's README says "To use semantic search, you'll need to configure OpenAI API credentials:", and it encodes entities with OpenAI's embedding models, so the text you store reaches OpenAI for that step.
Graphiti, Zep's graph engine, is outside the thirteen, and its MCP server README is the most explicit of all: "The server has no authentication, no authorization, and no prompt-injection protection." and "Do not expose the server to an untrusted network." Zep's managed service is a separate product, not covered here.
On the hosted side, Mem0's MCP page says what a client with neither a browser sign-in nor an API key gets: "If neither is set up, the server replies 401 Authentication required and your client reports the connection as failed."
Does the project still ship from the address your guide gives?
- Moved back. The Codeberg copy of mcp-memory-service opens with "This repository has moved to GitHub" and "Active development, issues, pull requests, CI and releases are at https://github.com/doobidoo/mcp-memory-service as of 5 September 2026."
-
Removed path. Mem0 removed OpenMemory from its monorepo in pull request 6530, merged on 29 July 2026; its MCP page describes the hosted server at
https://mcp.mem0.ai/mcp. - Deprecated version. The supermemory-mcp repository opens with "MCP v1 is being deprecated."; the setup page has you add Supermemory "as a remote HTTP MCP server and complete the OAuth flow opened by your client."
-
Changed install line. basic-memory's README installs with
uv tool install basic-memory --prerelease=allowand warns that "without the flag it silently installs an older release." -
Two artifacts. Memori's registry entry is the npm package
@memorilabs/memori-mcpover stdio, version 1.0.0 of 26 March 2026, while the memori-mcp README gives the hosted endpointhttps://api.memorilabs.ai/mcp/. - No release since May 2025. memento-mcp's last release is v0.3.9, and its README requires "Neo4j 5.13+ (required for vector search capabilities)".
- Impostor domains. MemPalace's README names its GitHub repository, its PyPI package and mempalaceofficial.com as its only official sources, and says any other domain "is an impostor and may distribute malware."
- A newer runtime. The reference server's README requires "Node.js 24 or later, when the server runs through npx or from source."
How do I check that the server I picked actually remembers?
The Reddit user maestroh named the risk in a comment of 6 September 2025: "With an integration, everything gets stored by default, but with MCP you would have to make the tool call which risks not storing everything". His next comment asked "But how do you make sure memory is being stored? any ideas?" Mem0's MCP page gives the reason a read-back proves something: "The second answer only works if the memory was really stored, so this is a genuine round-trip test rather than the model repeating itself." MattDTO, on Reddit, names what a read-back does not catch: "Also, if memories are saved by the LLM, then hallucinations get saved into memory and compound over time."
- Run the three checks on the day you install: namespace against repository owner, default access in the vendor's words, address and last release.
- Write one made-up, specific fact, such as an invented codename for a test project, and confirm in the client that a write tool call ran.
- Read it in a new session. Ask for the fact without repeating it and confirm that the answer came from a read tool call. With several assistants, ask in the other client as well.
- Find the record in the store. Open the file, folder, database or account that the table names, and read what was written: what the model stored can differ from what you said.
- Control. In a new session, ask for a second made-up fact that you never wrote. The expected answer is that nothing is stored; an invented answer means step 3 proved nothing.
When two clients both report a connection and still share nothing, the causes are on the library page about memory servers that share state across IDEs. Tests for duplicates, relevance and tenant isolation are on the library page about memory MCP servers in general.
What this article does not claim
It tests none of the thirteen servers and ranks none of them. Every cell comes from the project's own pages, the registry API, npm, PyPI or the GitHub API as read on 4 November 2026, and all of these change. The registry search matches names by substring, so an entry under an unrelated name is not excluded; entries of other publishers are named, not assessed. Default access is quoted from each vendor; no endpoint was probed.
Sources and method. Every quotation and table cell was read on 4 November 2026 between 19:33 and 20:47 UTC, and again with the review's added lines on 5 November 2026 between 13:34 and 14:03 UTC, with two instruments, a browser-like request and a reader service with its cache off: GitHub READMEs on raw.githubusercontent.com, plus the GitHub API; the Cursor forum posts also through the forum's JSON; the Reddit comments, which the reader service is blocked from, through two separate reads of each thread's RSS feed. The registry API was searched by product name and by repository owner. Versions are those that npm or PyPI and the GitHub API both list; Engram's release was read from the GitHub API with both instruments. Stars come from the GitHub API at 19:33 UTC. A made-up address on each host answered 404 as a control, and a made-up registry search returned an empty list; Codeberg refused the browser User-Agent on the page and its control alike and was read with curl's own, control 404. The two claude-mem quotations from its README were read again on 13 November 2026, after the README changed. The text describes those pages as of those dates. The same thirteen servers, with storage models, licences and prices, are compared on the Mnemoverse library page Memory MCP servers compared.
Edward Izgorodin · Mnemoverse · 2026-11-04
Top comments (0)