Knowledge Graph Memory Server
@edobez
MCP server for enabling memory for Claude through a knowledge graph
Overview
What is Knowledge Graph Memory Server?
Knowledge Graph Memory Server is a Python implementation of persistent memory using a local knowledge graph. It enables Claude to remember information about the user across different chat sessions by storing entities, relations, and observations in a JSON file.
How to use Knowledge Graph Memory Server?
Add the server configuration to your claude_desktop_config.json using uvx with the mcp-memory-py package. Optionally set the MEMORY_FILE_PATH environment variable to specify a custom memory file location. For chat personalization, use the provided system prompt in Claude.ai Project custom instructions.
Key features of Knowledge Graph Memory Server
- Creates, reads, updates, and deletes entities in a knowledge graph
- Manages directed relations between entities with active voice
- Stores atomic observations attached to specific entities
- Provides search and retrieval tools (
search_nodes,open_nodes) - Persists memory to a local JSON file
- Supports custom memory file path via environment variable
Use cases of Knowledge Graph Memory Server
- Make Claude remember user identity, preferences, and behaviors across chats
- Allow Claude to recall past interactions and update memory with new information
- Store and query structured knowledge about people, organizations, and events
- Maintain a persistent graph of personal and professional relationships
FAQ from Knowledge Graph Memory Server
Where does the server store memory data?
By default, memory is stored in memory.json in the server directory. Use the MEMORY_FILE_PATH environment variable to set a custom path.
What runtime is required?
The server runs via uvx and requires Python. It is a port of the Node.js reference server and uses the MCP protocol.
What debugging tools are available?
You can use npx @modelcontextprotocol/inspector to debug the server, and set DEBUG_LOGGING environment variable for daily log files (development only).
How can I customize the memory behavior?
Use the provided system prompt to guide Claude on when and how to create entities, relations, and observations. The prompt can be adjusted for different use cases.
What happens if I try to create a duplicate entity or relation?
Duplicate entities are ignored; duplicate relations are skipped. The operations are silent on duplicates.