This optimized memory MCP server, developed by Herman Wong, provides a persistent knowledge graph for AI systems using SQLite as a backend. Built with Python and leveraging libraries like aiofiles and mcp, it offers tools for creating, updating, and querying entities, relations, and observations in a graph structure. The server is designed for efficient memory management and seamless integration with Claude Desktop. By abstracting knowledge storage and retrieval into a standardized MCP interface, it enables AI assistants to maintain context and personalize interactions across conversations. This implementation is particularly useful for applications requiring long-term memory and relationship modeling, such as personalized chat systems, knowledge management tools, or AI-powered personal assistants.
No reviews yet. Be the first to review!
Sign in to join the conversation
Create multiple new entities in the knowledge graph. Input: entities (array of objects) containing name (string), entityType (string), and observations (string[]). Ignores entities with existing names.
Create multiple new relations between entities. Input: relations (array of objects) containing from (string), to (string), and relationType (string). Skips duplicate relations.
Add new observations to existing entities. Input: observations (array of objects) containing entityName (string) and contents (string[]). Returns added observations per entity and fails if entity doesn't exist.
Remove entities and their relations. Input: entityNames (string[]). Cascading deletion of associated relations; silent operation if entity doesn't exist.
Remove specific observations from entities. Input: deletions (array of objects) containing entityName (string) and observations (string[]). Silent operation if observation doesn't exist.
Remove specific relations from the graph. Input: relations (array of objects) containing from (string), to (string), and relationType (string). Silent operation if relation doesn't exist.
Read the entire knowledge graph. No input required; returns complete graph structure with all entities and relations.
Search for nodes based on query. Input: query (string). Searches across entity names, entity types, and observation content. Returns matching entities and their relations.
Retrieve specific nodes by name. Input: names (string[]). Returns requested entities and relations between requested entities; silently skips non-existent nodes.