Because facts are attached to named entities and joined by typed relations, a later question can be answered by walking the graph instead of re-reading everything. The deletes are the part people underestimate: an observation can be retracted on its own, so a fact that stops being true does not have to live forever next to the ones that still are.
Persistent memory stored as a local knowledge graph. Entities carry a name, a type and a list of observations; relations connect them in active voice.
- Entities created in batches, each with a type and its own observations
- Relations between entities, stored directionally and in active voice — works_at, for instance
- Observations added to an entity that already exists, one fact per observation
- Deletion at every level: whole entities and their relations, single relations, or individual observations
- Search across entity names, types and observation text, returning the matches with their relations
- Named nodes opened directly, with the relations that run between them
- The whole graph read back at once, also exposed as a readable resource at memory://knowledge-graph that updates as tools change it
No account and no key — storage is a JSONL file on your own disk. Published on npm as @modelcontextprotocol/server-memory and run through npx, or from the mcp/memory Docker image with a volume mounted. MEMORY_FILE_PATH points it at a file of your choosing; without it, memory.jsonl in the server directory is used.
One command — npx -y @modelcontextprotocol/server-memory
