Two ideas set this apart from a note store: relations carry a confidence that decays over time unless something reinforces them, and nothing is overwritten, so you can ask what the graph believed at an earlier moment. The cost is real infrastructure — a Neo4j instance and an embedding key — rather than a file on disk.
A knowledge-graph memory server backed by Neo4j, holding entities and typed relations with vector embeddings, complete version history and rich metadata.
- Entities: create_entities, add_observations, delete_entities and delete_observations
- Relations carrying strength, confidence and custom metadata: create_relations, get_relation, update_relation and delete_relations
- Graph access: read_graph, search_nodes and open_nodes
- semantic_search finds entities by meaning, with a similarity threshold, entity-type filters, and a hybrid mode that blends keyword and vector recall at a weight you choose
- get_entity_embedding returns the vector for a single entity
- Time travel: get_entity_history and get_relation_history for full version history, get_graph_at_time for the graph as it stood at a given moment
- get_decayed_graph applies time-based confidence decay, so relations nothing has reinforced lose certainty on a half-life you configure
- Updates create new versions instead of overwriting, and every change is timestamped
A Neo4j instance recent enough for vector search — desktop or container — with its connection details and credentials. Node to run the server. Semantic search generates embeddings through OpenAI, so it needs an API key; without one, embedding generation is mocked and only useful for testing.
One command plus a key — npx -y @gannonh/memento-mcp, then supply credentials
