The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Memory Engine MCP listing page.
Local-first, graph-aware long-term memory for AI assistants.
SQLite + semantic search + knowledge graph + MCP tools for agents that need continuity.
Works with Claude Desktop · Claude Code · Cursor · Cline · Windsurf · OpenClaw · any MCP client
Most MCP memory servers are either simple key-value stores or plain text search wrappers.
Memory Engine is different: it models memory as typed atoms connected by typed bonds, then retrieves context with a hybrid ranking pipeline that combines:
The goal is not just storage. The goal is a memory system that can recall, connect, decay, curate, and learn over time.
nomic-embed-text.| Tool | Purpose |
|---|---|
remember | Create or update an atom |
recall | Smart hybrid recall with graph expansion |
working_set | Build a task-oriented context pack |
semantic_search | Pure semantic search |
get_atom | Read one atom with bonds |
list_atoms | Browse atoms by domain/type/status |
merge_atoms | Merge duplicate atoms |
export_atom | Export one atom as markdown |
| Tool | Purpose |
|---|---|
link / unlink | Create or remove typed bonds |
search_graph | Traverse the graph from one atom |
suggest_bonds | Suggest bonds for one atom |
suggest_bonds_all | Suggest or create bonds in bulk |
| Tool | Purpose |
|---|---|
curator_run | Conservative curation pass |
cognitive_status | Graph and memory health metrics |
learning_run | Detect contradictions, weak atoms, merge candidates, gaps |
ask_pending / answer_human | Human-in-the-loop clarification |
decay_run | Run decay cycle |
cleanup_sessions | Remove expired session atoms |
cleanup_duplicates | Remove duplicate session atoms |
reindex_embeddings | Rebuild embeddings |
| Tool | Purpose |
|---|---|
error_check | Check past failures before doing a task |
error_log | Record a mistake and the correction |
error_list | Browse unresolved/resolved errors |
preference_search | Search structured preferences |
| Tool | Purpose |
|---|---|
import_markdown | Import markdown notes into atoms |
memory_summary | 3-level summary: global → domain → detail |
stats | Database statistics |
version | Server version |
recall_session | Search one OpenClaw session |
session_summary | Summarize one OpenClaw session |
memory_contradict | Supersede an old atom with a newer contradictory one |
list_contradictions | List explicit contradiction/supersession records |
classify_memory_tier | Infer the 3-tier class (episodic/semantic/procedural) |
memory_impact | Impact analysis: what depends on this atom |
| Tool | Purpose |
|---|---|
backup_database | Create, list, verify, or clean up SQLite snapshots |
restore_database | Restore from a backup (with automatic safety backup) |
export_all | Export all memory data as portable JSON |
import_data | Import from JSON (merge or replace mode) |
Memory Engine includes an optional web UI for graph exploration, atom inspection, contradiction browsing, and impact analysis.
Or run standalone:
Web UI: interactive graph, atom details, contradiction browser, stats dashboard
Pin the version. Use an explicit tag like
:1.7.0in production. Avoid:latest— it can change without notice.
Default endpoint:
Example MCP client config:
See docs/INSTALL.md for Docker, local Python, Claude Desktop, Cursor, and OpenClaw examples.
Main configuration file: config.json
Important environment variables:
| Variable | Default | Purpose |
|---|---|---|
MEMORY_DB_PATH | /data/memory.db | SQLite database path |
MARKDOWN_SOURCE | /workspace/memory | Markdown directory for import |
MEMORY_HOST | 127.0.0.1 | Server bind address (secure default) |
MEMORY_PORT | 8085 | SSE port |
MEMORY_API_TOKEN | (none) | Optional API token for auth (see Security) |
OPENCLAW_AGENT_DB | (none) | Preferred per-agent OpenClaw SQLite DB (schema 17) |
OPENCLAW_SESSIONS_DIR | /sessions | Legacy JSONL fallback when no agent DB is configured |
SESSION_DIGEST_DIR | /data/session_digests | Optional session digest output |
For the SQLite mount, WAL/SHM handling, filtering, and security boundary, see OpenClaw transcript ingestion.
Semantic search requires Ollama reachable from the container or host. Default:
If you do not use Ollama, set ollama.enabled to false; FTS recall still works.
Atoms have:
titlebodytype: fact, decision, event, preference, log, procedure, note, etc.domain: project or topic namespaceconfidenceweighttagsBonds connect atoms with relation types:
By default, Memory Engine runs in open mode (no auth) — safe for stdio or trusted local environments.
To enable API token auth:
Or via environment variable:
When auth is enabled:
Authorization: Bearer <token>?token=<token> or Bearer header127.0.0.1 unless allow_remote: trueSee CHANGELOG.md for the full list of security features.
This repository is prepared for MCP discovery:
io.github.simoneb79/memory-engine-mcpserver.jsonDockerfilemcp.jsonSee docs/PUBLISHING.md for the publication checklist.
MIT — see LICENSE.
Made with 🧠 by SimoneB79