Memory MCP: a local knowledge graph that persists across chats
The official MCP reference memory server. It stores people, projects and preferences as a small knowledge graph in one local JSONL file.
Project and installation docs
View projecthttps://github.com/modelcontextprotocol/servers
Re-explaining your project and preferences at the start of every chat is the most common complaint about AI assistants. Memory MCP is the official minimal answer. It breaks what it learns into entities, relations and observations, writes them to a JSONL file on your machine, and lets the agent look them up by name or keyword in a later conversation.
What it does
- Write:
create_entitiesadds nodes such as people, organizations or events;create_relationslinks two of them in active voice;add_observationsattaches atomic facts to an entity. - Read:
search_nodesmatches keywords across names, types and observations;open_nodesfetches named entities with their relations;read_graphreturns everything. - Correct: delete an entity (with its relations), a single observation or a single relation. Missing items don’t raise errors.
- Subscribe: the whole graph is exposed as the
memory://knowledge-graphresource, and every write sends an update notification to subscribed clients.
Who it’s for
- People who want Claude Desktop to remember their job, preferences and recurring topics without sending that data to a third-party service.
- Developers about to write their own memory server who want a clean reference implementation first.
Setup
Needs Node.js. MEMORY_FILE_PATH is optional and sets where the JSONL file lives:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"],
"env": {
"MEMORY_FILE_PATH": "/path/to/custom/memory.jsonl"
}
}
}
}
Our take
Memory servers now compete on semantic search, automatic consolidation and decay. This official one stays deliberately plain: no vectors, no model calls, and the data is a text file you can open and read. That makes it the best place to understand what agent memory is, and enough for light personal use. The limits are real, though. Search is keyword matching, and what gets remembered depends entirely on your system prompt; the README’s example prompt has the model say “Remembering…” and query the graph every turn. Once the graph grows, read_graph eats context, and Hindsight or Basic Memory in this same category scale better. It sits in the MCP servers monorepo, which had about 91k stars as of 2026-10-06; licensing is moving from MIT to Apache-2.0.