Memory
Memory is Anthropic's reference MCP server for persistent recall. It keeps a knowledge graph of entities, relations and observations in a local JSON file, and exposes nine tools an assistant can call to write facts down and read them back in a later session. It ships as @modelcontextprotocol/server-memory and runs over stdio.
How we started it
npx -y @modelcontextprotocol/server-memoryUse it, but understand you are buying a note-taking habit, not a memory. We started it and it came up clean with no configuration at all, which is rare in this batch. The cost against you is that nothing writes to the graph unless your system prompt nags the model into calling create_entities and add_observations, and the retrieval tools do substring matching over a JSON file, so recall gets vague once the graph is large. For a single developer's assistant it is the cheapest persistence you can bolt on. For a team knowledge base, it is the wrong shape.
Use it if
Skip it if
The bill for your context window
| Tool | Est. tokens | Described? | Required params |
|---|---|---|---|
| search_nodes | ~368 | yes (56 chars) | 1 |
| open_nodes | ~363 | yes (57 chars) | 1 |
| create_relations | ~338 | yes (106 chars) | 1 |
| create_entities | ~335 | yes (51 chars) | 1 |
| read_graph | ~326 | yes (31 chars) | 0 |
| add_observations | ~279 | yes (64 chars) | 1 |
| delete_relations | ~254 | yes (50 chars) | 1 |
| delete_observations | ~237 | yes (65 chars) | 1 |
Nine tools cost about 2,688 tokens of tools/list, from a payload of 10,750 bytes, estimated at chars/4 and measured on our run. That is above the median for this batch and it buys you a fairly small vocabulary: create, delete and read, across entities, relations and observations. The weight is not in the descriptions, which are terse, but in the JSON schemas; create_entities and create_relations carry nested array schemas that dwarf their one-line descriptions. Compared with Notion, the heaviest server we measured in this batch, Memory is cheap. Compared with what it does, it is a real charge on every single turn, paid whether or not the model ever writes a note.
Setup reality
There is nothing to configure. We ran it with npx and a clean environment, no API keys, no config file, and the harness picked up no environment variable hints at all. It announced itself on stderr as the Knowledge Graph MCP Server and spoke protocol version 2025-06-18 as memory-server 0.6.3. The only knob worth knowing is the memory file path, which its docs describe as settable through an environment variable; leave it unset and you get a JSON file next to the installed package, which is a bad place for anything you want to survive an npx cache clear. Point it somewhere you back up. Boot was 5.1 seconds on our box, most of that npx fetching the package.
Questions people ask
Does the Memory MCP server remember things automatically?
No. It only stores what the model explicitly saves by calling a tool. You have to instruct the assistant in its system prompt to record facts and to read the graph at the start of a conversation, otherwise the graph stays empty.
Where does the Memory MCP server store data?
In a single local JSON file on the same machine, written over stdio by the server process. Its docs let you override the path with an environment variable, which you should do, because the default sits inside the installed package directory.
Is it worth 9 tools of context?
If you actually write memories, yes; about 2,688 tokens per turn is less than re-explaining your project every session. If you install it and never prompt the model to use it, you're paying that on every turn for nothing.
Can two people share one memory graph?
Not safely. There is no auth, no locking and no sync; it is one process reading and writing one file. Two agents pointed at the same file will overwrite each other's observations.
How this page is made: the server is spawned as an unprivileged user with a clean environment and no credentials, then asked for its tools, resources and prompts over stdio. Token figures are estimates at four characters per token, not a tokenizer count. One run, one machine. Corrections: contact the desk.