Memory

SSE

by modelcontextprotocol

88.1k 6.5k downloads Not rated yet

About

Memory is an MCP server that provides persistent memory using a local knowledge graph. It lets AI assistants like Claude remember information about the user across chats by storing entities, relations, and observations.

Details

Transport
SSE

Explore

- Persistent memory via local knowledge graph
- Entities with types and atomic observations
- Directed relations in active voice
- CRUD tools for graph manipulation
- Readable knowledge graph resource with live updates
- Configurable JSONL file storage

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Memory
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Add this to your claude_desktop_config.json:

For quick installation, use one of the one-click installation buttons below:

Install with NPX in VS Code Install with NPX in VS Code Insiders

Install with Docker in VS Code Install with Docker in VS Code Insiders

For manual installation, you can configure the MCP server using one of these methods:

Method 1: User Configuration (Recommended)
Add the configuration to your user-level MCP configuration file. Open the Command Palette (Ctrl + Shift + P) and run MCP: Open User Configuration. This will open your user mcp.json file where you can add the server configuration.

Method 2: Workspace Configuration
Alternatively, you can add the configuration to a file called .vscode/mcp.json in your workspace. This will allow you to share the configuration with others.

> For more details about MCP configuration in VS Code, see the official VS Code MCP documentation.

name

(string): Entity identifier

entityType

(string): Type classification

observations

(string[]): Associated observations

from

(string): Source entity name

to

(string): Target entity name

relationType

(string): Relationship type in active voice

entityName

(string): Target entity

contents

(string[]): New observations to add

- create_entities
- Create multiple new entities in the knowledge graph
- Input: entities (array of objects)
- Each object contains:
- name (string): Entity identifier
- entityType (string): Type classification
- observations (string[]): Associated observations
- Ignores entities with existing names

- create_relations
- Create multiple new relations between entities
- Input: relations (array of objects)
- Each object contains:
- from (string): Source entity name
- to (string): Target entity name
- relationType (string): Relationship type in active voice
- Skips duplicate relations

- add_observations
- Add new observations to existing entities
- Input: observations (array of objects)
- Each object contains:
- entityName (string): Target entity
- contents (string[]): New observations to add
- Returns added observations per entity
- Fails if entity doesn't exist

- delete_entities
- Remove entities and their relations
- Input: entityNames (string[])
- Cascading deletion of associated relations
- Silent operation if entity doesn't exist

- delete_observations
- Remove specific observations from entities
- Input: deletions (array of objects)
- Each object contains:
- entityName (string): Target entity
- observations (string[]): Observations to remove
- Silent operation if observation doesn't exist

- delete_relations
- Remove specific relations from the graph
- Input: relations (array of objects)
- Each object contains:
- from (string): Source entity name
- to (string): Target entity name
- relationType (string): Relationship type
- Silent operation if relation doesn't exist

- read_graph
- Read the entire knowledge graph
- No input required
- Returns complete graph structure with all entities and relations

- search_nodes
- Search for nodes based on query
- Input: query (string)
- Searches across:
- Entity names
- Entity types
- Observation content
- Returns matching entities and their relations

- open_nodes
- Retrieve specific nodes by name
- Input: names (string[])
- Returns:
- Requested entities
- Relations between requested entities
- Silently skips non-existent nodes

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "memory": {
            "memory": {
                "command": "docker",
                "args": [
                    "run",
                    "-i",
                    "-v",
                    "claude-memory:/app/dist",
                    "--rm",
                    "mcp/memory"
                ]
            }
        }
    }
}

McpServers

{
    "memory": {
        "command": "docker",
        "args": [
            "run",
            "-i",
            "-v",
            "claude-memory:/app/dist",
            "--rm",
            "mcp/memory"
        ]
    }
}

Knowledge Graph Memory Server

A basic implementation of persistent memory using a local knowledge graph. This lets Claude remember information about the user across chats.

Published on npm as @modelcontextprotocol/server-memory.

Core Concepts

Entities

Entities are the primary nodes in the knowledge graph. Each entity has: - A unique name (identifier) - An entity type (e.g., "person", "organization", "event") - A list of observations

Example:

{
"name": "John_Smith",
"entityType": "person",
"observations": ["Speaks fluent Spanish"]
}

Relations

Relations define directed connections between entities. They are always stored in active voice and describe how entities interact or relate to each other.

Example:

{
"from": "John_Smith",
"to": "Anthropic",
"relationType": "works_at"
}

Observations


Observations are discrete pieces of information about an entity. They are:

- Stored as strings
- Attached to specific entities
- Can be added or removed independently
- Should be atomic (one fact per observation)

Example:

{
"entityName": "John_Smith",
"observations": [
"Speaks fluent Spanish",
"Graduated in 2019",
"Prefers morning meetings"
]
}

API

Tools

- create_entities - Create multiple new entities in the knowledge graph - Input: entities (array of objects) - Each object contains: - name (string): Entity identifier - entityType (string): Type classification - observations (string[]): Associated observations - Ignores entities with existing names

- create_relations
- Create multiple new relations between entities
- Input: relations (array of objects)
- Each object contains:
- from (string): Source entity name
- to (string): Target entity name
- relationType (string): Relationship type in active voice
- Skips duplicate relations

- add_observations
- Add new observations to existing entities
- Input: observations (array of objects)
- Each object contains:
- entityName (string): Target entity
- contents (string[]): New observations to add
- Returns added observations per entity
- Fails if entity doesn't exist

- delete_entities
- Remove entities and their relations
- Input: entityNames (string[])
- Cascading deletion of associated relations
- Silent operation if entity doesn't exist

- delete_observations
- Remove specific observations from entities
- Input: deletions (array of objects)
- Each object contains:
- entityName (string): Target entity
- observations (string[]): Observations to remove
- Silent operation if observation doesn't exist

- delete_relations
- Remove specific relations from the graph
- Input: relations (array of objects)
- Each object contains:
- from (string): Source entity name
- to (string): Target entity name
- relationType (string): Relationship type
- Silent operation if relation doesn't exist

- read_graph
- Read the entire knowledge graph
- No input required
- Returns complete graph structure with all entities and relations

- search_nodes
- Search for nodes based on query
- Input: query (string)
- Searches across:
- Entity names
- Entity types
- Observation content
- Returns matching entities and their relations

- open_nodes
- Retrieve specific nodes by name
- Input: names (string[])
- Returns:
- Requested entities
- Relations between requested entities
- Silently skips non-existent nodes

Resources

- knowledge-graph (memory://knowledge-graph)
- The full knowledge graph as a readable MCP Resource
- MIME type: application/json
- Returns the same shape as read_graph (entities and relations)
- Mutation tools (create_entities, create_relations, add_observations, delete_entities, delete_observations, delete_relations) emit notifications/resources/updated for this URI, so subscribed clients see live changes

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.

Videos about Memory

Relevant YouTube tutorials, setups, and demos