Memory logo

Memory

Persistent local knowledge graph for storing, searching, and updating structured memory through MCP tools.

Install Memory

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ],
      "env": {
        "MEMORY_FILE_PATH": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

Memory MCP server gives an AI client persistent storage in a local knowledge graph backed by a JSONL file. It models information as named entities with typed observations and directed relations, then exposes tools for reading, searching, creating, updating, and deleting that data. Use it when an agent needs user or project context to survive across conversations. It runs over stdio and supports both newer and 2025-era MCP protocol handshakes.

Use cases

  • Remember user preferences across conversations
  • Store project facts and relationships
  • Search prior context by entity or observation text
  • Maintain a local graph of people, organizations, and events

Key features

  • Persistent JSONL-backed knowledge graph
  • Entity, relation, and observation management
  • Full-graph and targeted node retrieval
  • Search across names, types, and observations
  • Live resource update notifications
  • Concurrent write locking for shared files

Tools9

What Memory lets your agent do. Expand a tool for its parameters.

Verified live~1.0k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

47/47 checks healthy over the last 88d

What it can do

From the 9 tools this server returned when we ran it; 9 declare their own safety hints.

Can delete or modify data · 3Read-only tools · 6
Network at startup3 connections
Files written at startupNone
Install scriptsprepare
npm provenanceSigned build
Package age700 days
Maintainers6

Observed 2026-10-23 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 1d ago via OSV.dev · @modelcontextprotocol/server-memory (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars91kStargazers on the source repository.
npm downloads827kPackage downloads in the last 30 days.
Last commitTodayMost recent push to the default branch.
Tools exposed9Callable tools this server registers over MCP.
Directory activity14 viewsConfig copies, upvotes, and views on AllMCPs.

How Memory works

What Memory does

Memory stores structured information in a local knowledge graph so an MCP client can reuse context across chats and sessions. The graph contains entities, relations, and observations:

  • Entities are uniquely named nodes with an entity type and a collection of text observations.
  • Relations connect two entities with a directed, active-voice relationship type.
  • Observations are independent, removable facts attached to an entity.

The package is published as @modelcontextprotocol/server-memory. Storage uses a JSONL file, allowing the server to retain data between process runs. The design fits personal preferences, people, organizations, projects, events, and other information that an agent needs to recall later.

How it works

The server communicates with MCP clients over stdio. A client can create entities, add relationships, attach observations, and later search or open selected nodes. It can also read the complete graph when a broad view is needed. Entity names act as identifiers, so creating an existing name does not replace it; additional facts should be added with the observation tool instead.

The knowledge-graph resource at memory://knowledge-graph exposes the complete graph as JSON. Changes made through mutation tools emit resource-update notifications, allowing subscribed clients to refresh their view. Clients use protocol-era-specific subscription requests, while the available tools and resource remain the same.

When multiple MCP clients point to one memory file, each process uses an adjacent lock file during writes. This serializes changes and protects the file from concurrent overwrites. A write that cannot acquire the lock within 60 seconds returns an error.

Setup and configuration

Node.js 24 or later is required when running through npx or from source. The package can be launched with:

config.json
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    }
  }
}

On Windows, launch npx through cmd /c. Docker is also supported; the documented configuration runs mcp/memory with a named volume mounted at /app/dist.

Set MEMORY_FILE_PATH to choose the JSONL storage location. Without it, the server uses memory.jsonl in its server directory. The directory must be writable because the server saves the graph atomically and creates a temporary lock file during writes.

Tools and capabilities

  • create_entities adds multiple uniquely named entities, including their types and initial observations. Duplicate names are skipped.
  • create_relations adds directed links between existing entities and skips duplicate links.
  • add_observations appends facts to existing entities.
  • delete_entities removes entities and cascades deletion to their relations.
  • delete_observations removes selected facts without deleting the entity.
  • delete_relations removes specified links.
  • read_graph returns every entity and relation.
  • search_nodes searches entity names, types, and observation text, returning matching entities and their relations.
  • open_nodes retrieves named entities and relations among the requested nodes.

Limitations and notes

Relations require both endpoint entities to exist. The server silently skips nonexistent nodes when opening them, while deletion operations report missing names or unmatched items in their results. Sharing a file across processes depends on filesystem support for exclusive file creation; a network filesystem that does not honor that behavior is not safe for shared writes. A lock left by a crashed process is eventually treated as stale, and only one waiting process can break it at a time.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Memory

Memory is an MCP server that connects an AI client to a local JSONL-backed knowledge graph. Its main tools create and delete entities, relations, and observations, then read, search, or open graph data. It provides persistent context across conversations and exposes the full graph through the `memory://knowledge-graph` resource.

Install it by configuring an MCP client to run `npx -y @modelcontextprotocol/server-memory`. Node.js 24 or later is required when using `npx` or running from source. Docker is also available through the `mcp/memory` image.

Memory stores the graph in a JSONL file. By default, it uses `memory.jsonl` in the server directory; set `MEMORY_FILE_PATH` to choose another location. The selected directory must be writable for atomic saves and lock-file creation.

Yes, multiple clients can share a memory file when they use the same `MEMORY_FILE_PATH`. Each process takes an exclusive adjacent lock while writing, so local filesystems can serialize changes. Network filesystems that do not honor exclusive file creation are unsafe for this arrangement.

Yes, Memory has VS Code installation options using either `npx` or Docker. The package can also be configured manually as a standard stdio MCP server in the client configuration.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMemory AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/memory?style=directory)](https://allmcps.com/mcp/memory)
HTML Embed
<a href="https://allmcps.com/mcp/memory"><img src="https://allmcps.com/api/badge/memory?style=directory" alt="Memory on AllMCPs" /></a>