The definition, the architecture, how to choose one, and an honest comparison of every option — including the GitHub repos that outrank us on this term today.
By Anthony Conti · Astra AI, LLC ·
An MCP memory server is a Model Context Protocol server whose job is to store and retrieve memories on behalf of an AI agent — facts, preferences, decisions, past conversations — so that what an agent learns in one session, on one tool, is still there the next time it is asked, on whatever tool asks it. MCP is the open standard Anthropic open-sourced on November 25, 2024 for connecting AI applications to external tools and data, and it is now supported by Claude, ChatGPT, Cursor, VS Code, Windsurf and dozens of other clients. A memory server is one specific kind of MCP server: instead of exposing a calendar or a Git repository, it exposes memory itself, as two or three callable tools — typically something shaped like store_memory and search_memory.
The one-sentence version.
Without MCP, every AI tool you use has to reinvent memory, and none of them can read what another one remembers. With an MCP memory server in the middle, memory becomes a service any MCP-compatible agent can call — the same way any browser can render any website because HTTP is a shared standard.
Your AI Agent ←→ MCP (JSON-RPC over HTTP or stdio) ←→ MCP Memory Server ←→ Storage
(Claude, Cursor, two or three tools: (this is the part (vector DB,
Windsurf, ChatGPT) store_memory / search_memory) that varies) graph, files...)
Is an MCP memory server the same thing as a vector database?
No — this is the single most common confusion, so it is worth being precise about. A vector database (Pinecone, Weaviate, Qdrant, pgvector) is a storage engine: you send it embeddings, it returns nearest neighbours. It has no concept of a tool call, a session, or an agent. An MCP memory server is the layer above that: it decides what gets stored, when, and how it is exposed to an agent as a callable tool. Several servers in the comparison table below use a vector database as their storage engine internally (Puliczek/mcp-memory runs on Cloudflare Vectorize, for instance) — the vector database itself has no idea MCP exists.
Is an MCP memory server the same as RAG?
They overlap but answer different questions. Retrieval-augmented generation is a technique: fetch the most relevant chunks of text and stuff them into the prompt before generating an answer. An MCP memory server is an integration surface: a standard interface an agent calls as a tool, regardless of what retrieval technique runs behind it. Most MCP memory servers use RAG-style retrieval internally, but RAG is the algorithm and MCP is the protocol carrying the request. You can build a memory server with no RAG at all (a flat key-value store would still qualify), and you can do RAG with no MCP in sight (most chatbot RAG pipelines predate MCP entirely).
The architecture, concretely
Every MCP memory server, however it stores data underneath, is built from the same three MCP primitives, formalised in the 2025-06-18 specification and refined again in the 2025-11-25 revision:
Tools. The callable actions an agent invokes — store_memory, search_memory, sometimes delete_memory or list_memories. Since the 2025-06-18 spec, tools can declare a structured output schema, so the agent gets typed results back instead of a raw string.
Resources. Read-only, URI-addressable context the server can expose — think of a specific saved memory or a document the agent can fetch by reference rather than by search.
Transport. Either local stdio (the server runs as a child process on your machine — simplest, single-user) or remote HTTP (the server runs somewhere else and the agent authenticates over OAuth — multi-device, multi-tool).
How to choose an MCP memory server
Five questions narrow the field fast. Most projects fail at least one of them for most people, which is fine — they were not built to pass all five.
Local file or real storage? A JSON file on disk (okooo5km/memory-mcp-server's default) is fine for one machine and a few hundred memories. It has no semantic search and does not survive a reinstall.
Remote or local-only transport? Local-only (stdio) means the memory lives on one machine. Remote HTTP means any device, any tool, can reach the same memory — the tradeoff is you now depend on someone's uptime.
Self-hosted or hosted? Letta and MIND's local path are fully self-hostable at zero cost. Zep retired its self-hosted Community Edition in 2026 — cloud only now, though the underlying Graphiti engine stays open source.
Does it stop at memory, or is there a product on top? Most entries in the table are pure infrastructure — a server and nothing else. If you personally want to open a page and see what's remembered, that rules most of them out.
One agent, or memory that has to be shared across agents and models? A memory store built for a single coding agent's context cache (JamesANZ/memory-mcp) is a different shape of tool than one meant to be read by five different AI products at once.
The honest landscape
Six real, currently-maintained options, verified against their own repos and pricing pages this session — MIND included, and not flattered. Every one of these is legitimately good at something.
An OS-style memory model — active context is 'RAM', archival memory is 'disk'
Fully open source and self-hostable, or Letta Cloud
23,081 GitHub stars as of this writing — the most-starred project in this table by a wide margin
Star counts and pricing were checked against each project's own GitHub repo or pricing page during this session (2026-09-07); all three change constantly — verify against the source before deciding.
What tools does an MCP memory server usually expose?
Almost every project in the table above converges on the same small tool surface, even though the storage underneath is completely different from one to the next:
store_memory (or add_memory). Takes a piece of text plus optional metadata — a user id, tags, a timestamp — and writes it. This is where the interesting engineering differences actually live: does it deduplicate, does it consolidate near-duplicate facts, does it run an extraction step first to decide what is even worth keeping.
search_memory (or retrieve_memory). Takes a query and returns the most relevant stored memories, typically ranked by vector similarity, graph proximity, or recency. Zep and MIND both add graph traversal on top of similarity search; the smaller local-file projects do straightforward keyword or vector search only.
delete_memory / list_memories. Not every project implements these, but a memory server without a way to see or remove what it stored is hard to trust with anything sensitive — this is worth checking before adopting one for real use.
Where is MCP itself headed?
Worth knowing if you are betting infrastructure on this protocol: Anthropic open-sourced MCP as a company project in November 2024, but has since moved to hand off governance. Anthropic announced it is donating MCP to a newly established Agentic AI Foundation, moving the specification out from under a single vendor and toward the kind of neutral stewardship that standards like HTTP or OAuth have. For anyone choosing an MCP memory server today, that is a modest but real signal that the protocol itself is built to outlast any one company's roadmap — including Astra AI's.
Where MIND fits
Full disclosure: this page is published by Astra AI, LLC, which builds MIND. Here is the honest version anyway. Every project above except MIND stops at the server — there is infrastructure, and then it's your job to build something a person actually opens. MIND is an MCP memory server (connect it in one paste at /mcp-memory-server/setup) backed by a real knowledge graph, with a web and mobile app on top, so the same memory Claude Code just wrote is visible to you, searchable, and readable by 50+ other LLM models the next time you switch tools. If you specifically want the leanest possible memory API for one coding agent and nothing else, Mem0 or Letta may be the better fit — we would rather say that than sell you the wrong tool.
Is an MCP memory server the same as a vector database?
No. A vector database (Pinecone, Weaviate, Qdrant, pgvector) is a storage engine for embeddings — it answers similarity queries. An MCP memory server sits on top of some storage engine (a vector database, a knowledge graph, a plain document store, or all three) and exposes it to an AI agent through the Model Context Protocol's tool-calling interface. Several of the servers in the table above use a vector database internally; the vector database itself has no idea what MCP is.
Is an MCP memory server the same as RAG?
They overlap but answer different questions. Retrieval-augmented generation is a technique — fetch relevant chunks, stuff them into the prompt. An MCP memory server is an integration surface — a standard way for an agent to call store_memory and search_memory as tools, regardless of what retrieval technique runs underneath. Most MCP memory servers use RAG-style retrieval internally, but MCP is the protocol, not the algorithm.
Can I just use a local JSON file instead of a real memory server?
For a single-machine, single-user coding assistant that never needs to search or grow past a few hundred entries, yes — several of the projects above started exactly there. It stops working the moment you need semantic search over the memories, multiple agents writing concurrently, or memory that follows you to a second machine.
Does MIND compete with Mem0, Zep, and Letta?
Partially, and we say so on purpose. Mem0, Zep, and Letta are excellent developer-infrastructure choices if you are building a single coding agent and want the leanest possible memory API. MIND is the pick if a person, not just one agent, needs to open a product, see their own graph, and have every AI they use — not one integrated app — read and write to it.
MIND is an MCP memory server backed by a real knowledge graph — the memory layer Claude, GPT, Gemini, Cursor and Windsurf all read from. Free tier, no credit card.