The Knowledge Graph Memory Server enables persistent memory management using a local knowledge graph that allows Claude to remember information across conversations. It provides comprehensive CRUD operations for:
Entities: Create with names, types, and observations; update types and observations; delete entities (removes associated relations); retrieve specific entities by name; search across names, types, and observation content.
Relations: Establish directed connections between entities in active voice; update existing relations; delete specific relations.
Observations: Add factual information to existing entities; remove specific observations from entities.
Graph Operations: Read the entire knowledge graph structure; search nodes by query; open specific nodes with their relations.
Knowledge Graph Memory Server
An improved implementation of persistent memory using a local knowledge graph with a customizable memory path.
This lets Claude remember information about the user across chats.
[!NOTE] This is a fork of the original Memory Server and is intended to not use the ephemeral memory npx installation method.
Server Name
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
Creation date and version tracking
The version tracking feature helps maintain a historical context of how knowledge evolves over time.
Example:
Relations
Relations define directed connections between entities. They are always stored in active voice and describe how entities interact or relate to each other. Each relation includes:
Source and target entities
Relationship type
Creation date and version information
This versioning system helps track how relationships between entities evolve over time.
Example:
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:
API
Tools
create_entities
Create multiple new entities in the knowledge graph
Input:
entities
(array of objects)Each object contains:
name
(string): Entity identifierentityType
(string): Type classificationobservations
(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 nameto
(string): Target entity namerelationType
(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 entitycontents
(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 entityobservations
(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 nameto
(string): Target entity namerelationType
(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
Usage with Cursor, Cline or Claude Desktop
Setup
Add this to your mcp.json or claude_desktop_config.json:
Installing via Smithery
To install Knowledge Graph Memory Server for Claude Desktop automatically via Smithery:
Custom Memory Path
You can specify a custom path for the memory file in two ways:
Using command-line arguments:
Using environment variables:
If no path is specified, it will default to memory.jsonl in the server's installation directory.
System Prompt
The prompt for utilizing memory depends on the use case. Changing the prompt will help the model determine the frequency and types of memories created.
Here is an example prompt for chat personalization. You could use this prompt in the "Custom Instructions" field of a Claude.ai Project.
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
An implementation of persistent memory for Claude using a local knowledge graph, allowing the AI to remember information about users across conversations with customizable storage location.
Related MCP Servers
- AsecurityAlicenseAqualityAn improved implementation of persistent memory using a local knowledge graph with a customizable --memory-path. This lets Claude remember information about the user across chats.Last updated -91,113652MIT License
- AsecurityAlicenseAqualityA basic implementation of persistent memory using a local knowledge graph. This lets Claude remember information about the user across chats.Last updated -971,16668,255MIT License
- -securityAlicense-qualityA persistent memory implementation using a local knowledge graph that lets Claude remember information about users across conversations.Last updated -6MIT License
- AsecurityAlicenseAqualityA persistent memory layer for Claude Code that maintains project information, technology stack, tasks, decisions, and session history between coding sessions, eliminating the need to re-explain project context.Last updated -9MIT License