Local-first graph memory for AI assistants with SQLite, semantic search, and MCP tools.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
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_SESSIONS_DIR | /sessions | Optional OpenClaw sessions directory |
SESSION_DIGEST_DIR | /data/session_digests | Optional session digest output |
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
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/memory-engine-mcp)<a href="https://allmcps.com/mcp/memory-engine-mcp"><img src="https://allmcps.com/api/badge/memory-engine-mcp?style=directory" alt="Memory Engine MCP on AllMCPs" /></a>