Memory Engine
БесплатноНе проверенLiving memory system for AI assistants — SQLite + MCP with decay, learning, and knowledge graph
Описание
Living memory system for AI assistants — SQLite + MCP with decay, learning, and knowledge graph
README
🧠 Memory Engine MCP
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
Why Memory Engine?
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:
- full-text search (SQLite FTS5)
- semantic similarity via local Ollama embeddings
- confidence, recency, and weight
- graph expansion from related memories
The goal is not just storage. The goal is a memory system that can recall, connect, decay, curate, and learn over time.
Highlights
- Local-first — SQLite database, optional local embeddings via Ollama, no required cloud API.
- MCP-native — exposes 35 tools through FastMCP.
- Graph-aware recall — expands top hits through bidirectional bonds for richer context.
- Semantic search — meaning-based retrieval with
nomic-embed-text. - Markdown coexistence — import existing notes one-way without replacing your human-readable memory.
- Error memory — remembers mistakes and corrections, with auto-promotion to preferences after repeated failures.
- Cognitive curator — non-destructive maintenance pass for compaction, bond suggestions, duplicate detection, and isolated atom classification.
- Session watcher — optional OpenClaw JSONL ingestion with short-lived raw messages and permanent session digests.
- Backup & restore — full SQLite snapshots, JSON export/import, verified restores with automatic safety backups.
- Auth & hardening — optional API token, secure bind, input validation, rate limiting.
- Test suite — 135 tests covering CRUD, ranking, migrations, auth, backup, concurrency.
- Benchmark — CLI recall quality suite with Precision@K, MRR, latency percentiles.
Architecture
AI assistant / MCP client
│
▼
FastMCP server — 35 tools
│
▼
Memory engine — hybrid ranking, graph recall, decay, learning
│
├── SQLite — atoms, bonds, FTS5, JSON metadata, versions
├── Ollama — optional local embeddings
├── Curator — conservative maintenance
└── Session watcher — optional OpenClaw session ingestion
MCP Tools
Memory
| 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 |
Knowledge graph
| 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 |
Learning and maintenance
| 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 |
Error memory and preferences
| 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 |
Import and introspection
| 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 |
Backup, restore & export
| 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) |
Web UI (optional)
Memory Engine includes an optional web UI for graph exploration, atom inspection, contradiction browsing, and impact analysis.
# In docker-compose.yml, add:
# environment:
# - MEM_UI_PORT=6000
# expose:
# - "6000"
Or run standalone:
python3 web_ui.py
# Open http://localhost:6000
Web UI: interactive graph, atom details, contradiction browser, stats dashboard
Quick start with Docker
Option A — Use the pre-built image (recommended)
# docker-compose.yml
services:
memory-engine:
image: ghcr.io/simoneb79/memory-engine-mcp:1.7.0
ports:
- "8085:8085"
volumes:
- memory-data:/data
restart: unless-stopped
volumes:
memory-data:
docker compose up -d
Pin the version. Use an explicit tag like
:1.7.0in production. Avoid:latest— it can change without notice.
Option B — Build from source
git clone https://github.com/SimoneB79/memory-engine-mcp.git
cd memory-engine-mcp
cp docker-compose.yml docker-compose.local.yml
# Edit volume paths in docker-compose.local.yml if needed
docker compose -f docker-compose.local.yml up -d --build
Default endpoint:
http://localhost:8085/sse
Example MCP client config:
{
"mcpServers": {
"memory-engine": {
"url": "http://localhost:8085/sse",
"transport": "sse"
}
}
}
See docs/INSTALL.md for Docker, local Python, Claude Desktop, Cursor, and OpenClaw examples.
Local Python
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python server.py
Configuration
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:
{
"ollama": {
"enabled": true,
"host": "http://ollama:11434",
"model": "nomic-embed-text"
}
}
If you do not use Ollama, set ollama.enabled to false; FTS recall still works.
Memory model
Atoms have:
titlebodytype:fact,decision,event,preference,log,procedure,note, etc.domain: project or topic namespaceconfidenceweighttags- optional TTL
Bonds connect atoms with relation types:
is_a · part_of · depends_on · contradicts · refines · derived_from · detail_of · related_to
Example usage
remember(
title="Use PostgreSQL for analytics",
body="SQLite is kept for local memory, PostgreSQL is used for multi-user analytics.",
type="decision",
domain="project:analytics",
confidence=0.9,
tags=["database", "architecture"]
)
recall(query="what database did we choose for analytics?", limit=5)
working_set(
query="continue the analytics backend work",
domain="project:analytics",
limit=8,
graph_depth=1
)
Security
By default, Memory Engine runs in open mode (no auth) — safe for stdio or trusted local environments.
To enable API token auth:
// config.json
{
"security": {
"api_token": "your-secret-token",
"allow_remote": false
}
}
Or via environment variable:
MEMORY_API_TOKEN=your-secret-token
When auth is enabled:
- MCP SSE requests must include
Authorization: Bearer <token> - Web UI API endpoints require
?token=<token>or Bearer header - Server binds to
127.0.0.1unlessallow_remote: true - Input validation (title/body size limits) and rate limiting are always active
See CHANGELOG.md for the full list of security features.
Publishing and registries
This repository is prepared for MCP discovery:
- MCP Registry name:
io.github.simoneb79/memory-engine-mcp - Registry metadata: server.json
- Docker/OCI verification label: included in Dockerfile
- Client config example: mcp.json
See docs/PUBLISHING.md for the publication checklist.
Repository status
- Public GitHub repository: https://github.com/SimoneB79/memory-engine-mcp
- Existing listing: https://mcpmarket.com/server/memory-engine
- License: MIT
License
MIT — see LICENSE.
Made with 🧠 by SimoneB79
Установка Memory Engine
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/SimoneB79/memory-engine-mcpFAQ
Memory Engine MCP бесплатный?
Да, Memory Engine MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Memory Engine?
Нет, Memory Engine работает без API-ключей и переменных окружения.
Memory Engine — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Memory Engine в Claude Desktop, Claude Code или Cursor?
Открой Memory Engine на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
wenb1n-dev/SmartDB_MCP
A universal database MCP server supporting simultaneous connections to multiple databases. It provides tools for database operations, health analysis, SQL optim
автор: wenb1n-devPostgres Server
This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools
автор: madhurprashPostgres
Query your database in natural language
автор: AnthropicPostgreSQL
Read-only database access with schema inspection.
автор: modelcontextprotocolCompare Memory Engine with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории data
