Is the Memory MCP server official?
Yes. It is one of the reference servers in the official `modelcontextprotocol/servers` repository. It is published as `@modelcontextprotocol/server-memory` on npm and `mcp/memory` on Docker.

@modelcontextprotocol
Basic information
Model Context Protocol Servers
Documentation reviewed 2026-10-25
This reference server stores entities, observations and relations in a knowledge graph. Choose it for explicit facts and connections rather than a Markdown notebook or document-search system.
Set MEMORY_FILE_PATH to a deliberate persistent location. Different clients must use the same intended file to share memory. Start with a disposable entity, retrieve it in a new session, then remove it. The reference implementation is not a managed cloud memory account.
These notes check the linked documentation, not a live authenticated connection. Suggested checks are steps for you to run.
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"memory": {
"command": "docker",
"args": [
"run",
"-i",
"-v",
"claude-memory:/app/dist",
"--rm",
"mcp/memory"
]
}
}
}Create multiple new entities in the knowledge graph
Create multiple new relations between entities
Add new observations to existing entities
Remove entities and their relations
Remove specific observations from entities
Remove specific relations from the graph
Read the entire knowledge graph
Search for nodes based on query
Retrieve specific nodes by name
Memory MCP Server (Knowledge Graph) is the reference MCP memory server from the Model Context Protocol project: it gives Claude and other clients persistent memory by storing entities, relations and observations in a local knowledge graph file, so facts carry over between chats.
It ships on npm as @modelcontextprotocol/server-memory and on Docker as mcp/memory, from the official modelcontextprotocol/servers repository (MIT License). It runs locally over stdio, with no API key and no external database.
Prerequisites: Node.js (for npx) or Docker. No account or API key is required.
The only setting is the optional MEMORY_FILE_PATH environment variable, the path to the JSONL file that stores the graph. If it is not set, the server writes memory.jsonl in its own server directory.
Add this to claude_desktop_config.json:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"],
"env": {
"MEMORY_FILE_PATH": "/path/to/custom/memory.jsonl"
}
}
}
}
To use Docker instead, with the graph kept in a named volume:
{
"mcpServers": {
"memory": {
"command": "docker",
"args": ["run", "-i", "-v", "claude-memory:/app/dist", "--rm", "mcp/memory"]
}
}
}
On Windows, launch npx through cmd: set "command": "cmd" and "args": ["/c", "npx", "-y", "@modelcontextprotocol/server-memory"].
Register the same npx command with the Claude Code CLI:
claude mcp add memory -e MEMORY_FILE_PATH=/path/to/custom/memory.jsonl -- npx -y @modelcontextprotocol/server-memory
Cursor reads the same mcpServers JSON shown for Claude Desktop. Put it in ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project).
The README offers one-click install buttons for VS Code and VS Code Insiders. To add it by hand, run MCP: Open User Configuration from the Command Palette, or create .vscode/mcp.json in your workspace. Note that VS Code uses a servers key:
{
"servers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
The server only stores what the model decides to write. The README includes an example system prompt for chat personalization. It tells the model to start each chat by retrieving its "memory", to watch for identity, behaviors, preferences, goals and relationships, and to save them as entities, relations and observations. Put a prompt like that in your project or custom instructions. It decides how often memories are created and what kind.
works_at), and atomic observations, one fact each.memory://knowledge-graph (application/json). Write tools send notifications/resources/updated, so subscribed clients see changes live.MEMORY_FILE_PATH to keep the graph wherever you like.<memory file>.lock, so several client processes can share one file without losing writes. Stale locks are cleaned up automatically.The tools fall into three groups:
create_entities adds new nodes and skips names that already exist. create_relations links two existing entities and skips duplicates. add_observations appends facts to an existing entity.delete_entities removes entities and, in cascade, their relations. delete_observations and delete_relations remove specific items. None of the three fails on a missing target; each reports what was found or deleted.read_graph returns the full graph. search_nodes matches a query against entity names, types and observation text. open_nodes fetches specific entities by name, along with the relations between them.As an MCP memory option, it is deliberately basic: a JSONL graph, text search over names, types and observations, and no embeddings. That keeps it easy to inspect and back up. Among related servers, the Filesystem MCP Server lets a model read and write ordinary files, and the Obsidian MCP Server uses an Obsidian vault as long-term notes. Choose those if you want memory as human-readable documents instead of a graph. Community forks of the memory MCP server add features such as per-project files or timestamps.
npx fails to start on Windows: launch it through cmd /c npx -y @modelcontextprotocol/server-memory, as the README shows.memory.jsonl in the server directory. Set MEMORY_FILE_PATH to an absolute path you know, so every client uses the same file.mcp/memory volume contains an index.js file that the new container could overwrite. Delete that file from the old volume before starting the new container.Yes. It is one of the reference servers in the official `modelcontextprotocol/servers` repository. It is published as `@modelcontextprotocol/server-memory` on npm and `mcp/memory` on Docker.
It is free and open source under the MIT License. It needs no API key or account, because everything runs locally.
In a JSONL file: `memory.jsonl` in the server directory by default, or any path you set with `MEMORY_FILE_PATH`. The Docker config keeps it in the `claude-memory` volume.
Yes. It is a standard stdio MCP server, so any MCP client can launch it with the npx or Docker command. VS Code uses a `servers` key instead of `mcpServers`.
Local. It runs as a process started by your MCP client over stdio. Your data does not leave your machine through the server.
Yes. Point both at the same `MEMORY_FILE_PATH`. Each write takes an exclusive lock file, so writes from different processes take turns. This relies on a local filesystem.
No. `search_nodes` matches the query against entity names, entity types and observation content. It does not do semantic search.
The model can create and delete anything in the graph, and the data is stored as plain text. Don't let it record secrets, and protect or back up the JSONL file like any other personal data.

Sooveryn gives Claude Code a team of AI personas that remembers your project. Soov, the partner and team lead, keeps your decisions and how you work in a lasting memory, and finds them again by words and by meaning, from
Project context your AI can query through MCP — with source evidence.

Islamic source data for assistants: Quran, hadith, tafsir, duas, prayer times and qibla. Answers come from real sources with citations instead of recalled text, so verses and hadith are not hallucinated. 36,000+ hadiths
Local MCP server and CLI that keeps a Git-versioned, model-written index of a codebase and its database schema, so coding agents start each task with the whole system in view.

AI agents start every session with amnesia — you re-explain the project, repeat your preferences, and correct the same mistakes over and over. PLUR gives them a memory that persists. Your agent's corrections, preference
Comments