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.