rememberLABSCO SUMMARY
Memory that can disagree with itself, and knows which note won.
error_check before a task and memory_contradict for supersession are the pieces most memory servers lack: the first asks whether this has already failed, the second records that a newer fact replaced an older one instead of leaving both in the index. Recall expands through bonds, so a hit pulls its neighbours with it.
What it is
A local-first memory server on SQLite. Memories are typed atoms joined by typed bonds; recall combines full-text search, semantic similarity from local Ollama embeddings, confidence, recency and expansion through the graph.
What you get
- 40 tools over the memory store
- remember, recall, working_set, semantic_search, get_atom, list_atoms, merge_atoms, export_atom
- link and unlink, search_graph, suggest_bonds and suggest_bonds_all for the knowledge graph
- curator_run, learning_run, cognitive_status, decay_run, reindex_embeddings and the cleanup tools for maintenance
- error_check, error_log, error_list and preference_search — remembered mistakes, with promotion to preferences after repeated failures
- memory_contradict, list_contradictions, classify_memory_tier and memory_impact for supersession and dependency analysis
- import_markdown for existing notes, one-way, so your human-readable files stay intact
- backup_database, restore_database, export_all and import_data
- An optional web UI for graph exploration and contradiction browsing
Requirements
Docker with the published image, or Python. It serves SSE on port 8085 by default. All four environment variables are optional: MEMORY_DB_PATH, MARKDOWN_SOURCE, MEMORY_PORT and MEMORY_API_TOKEN — setting the token makes every request require a bearer. Semantic search wants Ollama with nomic-embed-text; without it, full-text recall still works.
Setup effort
Build from source — git clone https://github.com/SimoneB79/memory-engine-mcp.git
USE CASES
Not repeating a mistake from last week
Check past failures before starting a task, and log the mistake with its correction when one happens.
Assembling context for one task
Build a task-oriented context pack rather than dumping everything the store knows.
Recording that something changed
Supersede the old atom with the newer contradictory one, then list the contradictions to see what has moved.
Bringing existing notes in without giving them up
Import a markdown directory one-way into atoms; the original files stay where they are and stay readable.
40 tools
Listed in project docs. Your client may show a different list.
recallworking_setsemantic_searchget_atomlist_atomsmerge_atomsexport_atomlinkunlinksearch_graphsuggest_bondssuggest_bonds_allcurator_runcognitive_statuslearning_runask_pendinganswer_humandecay_runcleanup_sessionscleanup_duplicatesreindex_embeddingserror_checkerror_logerror_listpreference_searchimport_markdownmemory_summarystatsversionrecall_sessionsession_summarymemory_contradictlist_contradictionsclassify_memory_tiermemory_impactbackup_databaserestore_databaseexport_allimport_dataBEFORE YOU INSTALL
What to know first
Tools you get
40 tools named in the project's documentation. The README summary says 35 tools, but its tables list 40, including newer tools such as memory_impact, classify_memory_tier and list_contradictions.
Where it runs
All 4 documented clients run the server on your machine.
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/SimoneB79/memory-engine-mcp.git
cd memory-engine-mcp
docker compose up -d --buildPoint your MCP client at http://localhost:8085/sse using the configuration under MCP Clients.
MCP Clients
Cursor
{
"mcpServers": {
"memory-engine": {
"url": "http://localhost:8085/sse"
}
}
}Cline, Any MCP client
{
"mcpServers": {
"memory-engine": {
"url": "http://localhost:8085/sse",
"type": "sse"
}
}
}OpenClaw
{
"mcp": {
"servers": {
"memory-engine": {
"type": "sse",
"url": "http://localhost:8085/sse"
}
}
}
}