Memento MCP gives an MCP-capable LLM client a persistent knowledge graph to use as long-term memory. Entities are the nodes — each with a name, a type such as person or organization, a list of observations, vector embeddings, and full version history — and relations are directed edges between them carrying a strength score, a confidence score, and metadata such as source and timestamps.
Neo4j is the storage backend, holding both the graph and the vector index in one database. Vector search requires Neo4j 5.13 or later; the schema is created automatically on first connection, and command-line utilities exist for testing the connection and re-initializing indexes with different dimensions or similarity functions.
Retrieval combines vector similarity with keyword search. Entities are embedded with OpenAI embedding models, and the search layer chooses between vector-only, keyword-only, and hybrid modes depending on the query and the embeddings available, falling back to text search when vector search fails. Defaults are a 0.6 similarity threshold with hybrid search on and a semantic weight of 0.6.
The graph is temporal rather than overwritten in place. Updates create new versions, createdAt, updatedAt, validFrom, and validTo timestamps are recorded automatically, and the graph can be read back as it stood at a given timestamp. Relation confidence decays over time on a configurable half-life, defaulting to 30 days, with a minimum floor and the original value preserved alongside the decayed one; new observations reinforce a relation.
| Embedding model | Dimensions |
|---|---|
| text-embedding-3-small | 1536 |
| text-embedding-3-large | 3072 |
| text-embedding-ada-002 | 1536 |
Features
- Entity management: create_entities, add_observations, delete_entities, and delete_observations
- Relation management: create_relations, get_relation, update_relation, and delete_relations, with strength, confidence, and metadata fields
- Graph operations: read_graph, search_nodes, and open_nodes
- Semantic search: semantic_search with limit, minimum similarity, entity-type filters, and hybrid weighting, plus get_entity_embedding
- Temporal queries: get_entity_history, get_relation_history, get_graph_at_time, and get_decayed_graph
- Confidence decay: time-based decay on a configurable half-life with minimum floors and non-destructive originals
- Unified storage: Neo4j holds graph data and vector embeddings in a single database
- Diagnostics: embedding verification, vector index status checks, and text-search fallback
