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 集成