Memory Engine MCP

io.github.SimoneB79由 GitHub 帳號 SimoneB79 發布v1.5.3更新於 Oct 24, 2026

Local-first graph memory for AI assistants with SQLite, semantic search, and MCP tools.

發布方自己的服務:Memory.fit

已驗證STDIO僅桌面資料庫知識與記憶

概覽

AI 產生的概覽

為 AI 助理提供本機優先的長期記憶,將具型別的原子與關聯存入 SQLite,並支援全文與語意混合檢索。

可以做什麼
提供 35 個 MCP 工具,用於建立與更新記憶原子、帶圖形擴展的混合召回、語意搜尋,以及面向任務的工作集。它也會管理具型別的知識圖譜與關聯,執行整理與衰減流程,記錄錯誤記憶與修正,匯入 markdown,擷取工作階段,並支援 SQLite 備份、還原與 JSON 匯出。檢索結合 SQLite FTS5、可選的本機 Ollama 嵌入、信心度、時效性、權重與圖形擴展。
適用情境
適合助理需要跨工作階段或跨專案維持持久記憶的情境,也適合希望使用帶語意召回的的本機知識圖譜,而非簡單鍵值儲存的使用者。適用於需要連續性、矛盾追蹤與經過整理的長期上下文的工作流程。
執行需求
以本機程序執行,通常透過 Docker/OCI 映像 ghcr.io/simoneb79/memory-engine-mcp,或從本機 Python 啟動。需要透過 MEMORY_DB_PATH 指定 SQLite 資料庫路徑,並透過 MEMORY_PORT 指定 SSE 連接埠。語意搜尋需要可連線的 Ollama 執行個體與 nomic-embed-text;沒有它時全文召回仍可使用。可選的 MARKDOWN_SOURCE 設定 markdown 匯入目錄。
安裝前請注意
預設以無驗證的開放模式執行;除非環境可信任,否則應啟用 MEMORY_API_TOKEN 並維持安全綁定。伺服器會寫入、合併、衰減與刪除記憶資料,restore_database 會取代資料庫,因此應先備份。匯入與工作階段擷取會讀取本機 markdown 與 OpenClaw 工作階段資料。若啟用 Ollama,記憶文字會傳送到該嵌入端點。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Memory Engine MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[Version] [License: MIT] [Python] [MCP Registry Ready] [Docker]

[Memory Engine Logo]

🧠 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 — canonical OpenClaw SQLite ingestion (schema 17), reset-aware digests, and JSONL legacy fallback.
  • 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 — 144 tests covering CRUD, ranking, migrations, auth, backup, concurrency, and transcript ingestion.
  • Benchmark — CLI recall quality suite with Precision@K, MRR, latency percentiles.

Architecture

text
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 — OpenClaw SQLite + JSONL fallback

MCP Tools

Memory

ToolPurpose
rememberCreate or update an atom
recallSmart hybrid recall with graph expansion
working_setBuild a task-oriented context pack
semantic_searchPure semantic search
get_atomRead one atom with bonds
list_atomsBrowse atoms by domain/type/status
merge_atomsMerge duplicate atoms
export_atomExport one atom as markdown

Knowledge graph

ToolPurpose
link / unlinkCreate or remove typed bonds
search_graphTraverse the graph from one atom
suggest_bondsSuggest bonds for one atom
suggest_bonds_allSuggest or create bonds in bulk

Learning and maintenance

ToolPurpose
curator_runConservative curation pass
cognitive_statusGraph and memory health metrics
learning_runDetect contradictions, weak atoms, merge candidates, gaps
ask_pending / answer_humanHuman-in-the-loop clarification
decay_runRun decay cycle
cleanup_sessionsRemove expired session atoms
cleanup_duplicatesRemove duplicate session atoms
reindex_embeddingsRebuild embeddings

Error memory and preferences

ToolPurpose
error_checkCheck past failures before doing a task
error_logRecord a mistake and the correction
error_listBrowse unresolved/resolved errors
preference_searchSearch structured preferences

Import and introspection

ToolPurpose
import_markdownImport markdown notes into atoms
memory_summary3-level summary: global → domain → detail
statsDatabase statistics
versionServer version
recall_sessionSearch one OpenClaw session
session_summarySummarize one OpenClaw session
memory_contradictSupersede an old atom with a newer contradictory one
list_contradictionsList explicit contradiction/supersession records
classify_memory_tierInfer the 3-tier class (episodic/semantic/procedural)
memory_impactImpact analysis: what depends on this atom

Backup, restore & export

ToolPurpose
backup_databaseCreate, list, verify, or clean up SQLite snapshots
restore_databaseRestore from a backup (with automatic safety backup)
export_allExport all memory data as portable JSON
import_dataImport 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.

bash
# In docker-compose.yml, add:#   environment:#     - MEM_UI_PORT=6000#   expose:#     - "6000"

Or run standalone:

bash
python3 web_ui.py# Open http://localhost:6000

[Memory Engine Web UI — graph explorer]
Web UI: interactive graph, atom details, contradiction browser, stats dashboard

Quick start with Docker

Option A — Use the pre-built image (recommended)

yaml
# docker-compose.ymlservices:  memory-engine:    image: ghcr.io/simoneb79/memory-engine-mcp:2.1.0    ports:      - "8085:8085"    volumes:      - memory-data:/data    restart: unless-stopped
volumes:  memory-data:
bash
docker compose up -d

Pin the version. Use an explicit tag like :1.7.0 in production. Avoid :latest — it can change without notice.

Option B — Build from source

bash
git clone https://github.com/SimoneB79/memory-engine-mcp.gitcd memory-engine-mcpcp docker-compose.yml docker-compose.local.yml# Edit volume paths in docker-compose.local.yml if neededdocker compose -f docker-compose.local.yml up -d --build

Default endpoint:

text
http://localhost:8085/sse

Example MCP client config:

json
{  "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

bash
python -m venv .venvsource .venv/bin/activatepip install -r requirements.txtpython server.py

Configuration

Main configuration file: config.json

Important environment variables:

VariableDefaultPurpose
MEMORY_DB_PATH/data/memory.dbSQLite database path
MARKDOWN_SOURCE/workspace/memoryMarkdown directory for import
MEMORY_HOST127.0.0.1Server bind address (secure default)
MEMORY_PORT8085SSE 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/sessionsLegacy JSONL fallback when no agent DB is configured
SESSION_DIGEST_DIR/data/session_digestsOptional 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:

json
{  "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:

  • title
  • body
  • type: fact, decision, event, preference, log, procedure, note, etc.
  • domain: project or topic namespace
  • confidence
  • weight
  • tags
  • optional TTL

Bonds connect atoms with relation types:

text
is_a · part_of · depends_on · contradicts · refines · derived_from · detail_of · related_to

Example usage

python
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"])
python
recall(query="what database did we choose for analytics?", limit=5)
python
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:

json
// config.json{  "security": {    "api_token": "your-secret-token",    "allow_remote": false  }}

Or via environment variable:

bash
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.1 unless allow_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

License

MIT — see LICENSE.


Made with 🧠 by SimoneB79

來源:README.md,提交 b48c69e

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.5.3最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Memory 整合