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.
暂无评论. 成为第一个评论的人!
登录以参与讨论
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 the 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 skipping non-existent nodes.