Skip to main content
Glama

Universal Memory MCP Server

基于 memory-lancedb-pro 构建 — 将其生产级记忆引擎从 OpenClaw 原生插件移植为标准 MCP Server,让 任何支持 MCP 的 AI 工具 (Antigravity, OpenCode, Cursor, Claude Desktop 等) 都能共享同一份智能记忆。

Based on memory-lancedb-pro MCP License: MIT


⚠️ 与 OpenClaw 原生插件的区别

原生 memory-lancedb-pro 插件运行在 OpenClaw Gateway 内部,可以自动拦截消息流(通过 hooks),实现完全无感知的记忆管理。而 MCP Server 是一个被动工具服务,AI 需要主动调用 tool 才能存取记忆。

能力

OpenClaw 原生插件

MCP Server (本项目)

手动存储/召回

✅ 18 个 MCP Tools

LLM 智能提取

✅ 自动 (hook)

✅ 手动调用 memory_extract

会话反思

✅ 自动 (hook)

✅ 手动调用 memory_reflect

对话前自动注入记忆

before_agent_start

❌ 需要 Rules 引导 AI 主动调用

对话后自动提取

agent_end

❌ 需要 Rules 引导 AI 主动调用

衰减/分层/治理

✅ 内嵌

✅ 完全移植

跨工具共享

❌ OpenClaw 专属

✅ 任何 MCP 客户端

远程多设备接入

✅ HTTP/SSE 模式

数据兼容

-

✅ 共享同一份 LanceDB

如何弥补 autoRecall / autoCapture 的差距?

通过在 AI 工具的 System Prompt / Rules 中引导 AI 主动使用记忆工具。项目提供了现成的规则文件(见下方 规则示例),效果约覆盖原生体验的 80-90%。

💡 未来展望: 当 MCP 客户端支持 Sampling 后,MCP Server 将可以主动请求 AI 做事,从而实现与原生插件完全等价的自动记忆管理。


Related MCP server: OpenMemory

🚀 快速开始

1. 安装

git clone https://github.com/DevMinions/universal-memory-mcp.git
cd universal-memory-mcp
npm install && npm run build

2. 配置

复制默认配置并填入你的 API Key:

cp config.default.json config.json

编辑 config.json,至少填入 Jina API Key:

{
  "embedding": {
    "apiKey": "jina_你的key"
  },
  "retrieval": {
    "rerankApiKey": "jina_你的key"
  }
}

📝 config.json 只需要写你要覆盖的字段,其余自动继承 config.default.json 的生产默认值。

📝 获取 Jina API Key: https://jina.ai/api-key (有免费额度)

3. 接入 AI 工具

stdio 模式(本地单机,推荐):

{
  "mcpServers": {
    "universal-memory": {
      "command": "node",
      "args": ["/path/to/universal-memory-mcp/dist/index.js"]
    }
  }
}

HTTP 模式(远程多设备共享):

MCP_MODE=http MCP_AUTH_TOKEN="your-secret" node dist/index.js

客户端配置:

{
  "mcpServers": {
    "universal-memory": {
      "url": "http://your-server:3100/mcp",
      "headers": { "Authorization": "Bearer your-secret" }
    }
  }
}

📖 规则示例(Rules)

由于 MCP 无法像原生插件那样自动拦截消息流,需要通过 Rules 引导 AI 主动使用记忆工具。以下是现成的规则文件,直接复制到你的项目中即可。

Antigravity / Gemini

将以下内容添加到你项目的 .agents/rules/memory-rules.md 或全局 rules 中:

# 记忆管理规则 (Universal Memory MCP)

你已连接 `universal-memory` MCP Server。请在对话中自动管理用户记忆。

## 对话开始时 — 自动召回
当用户发来第一条消息时(非简单问候),立即调用 `memory_recall` 检索相关记忆:
- 用消息核心意图作为 query,limit 设为 5
- 将召回的记忆纳入回复上下文(不需要告知用户)

## 对话过程中 — 自动存储
发现以下信息时静默存储:
- 偏好 → `memory_store(text, category="preference")`
- 事实 → `memory_store(text, category="fact")`
- 决策 → `memory_store(text, category="decision")`
- 实体 → `memory_store(text, category="entity")`

## Scope 规则
- 通用知识/偏好 → `scope: "global"`
- 特定项目 → `scope: "project:<项目名>"`
- 个人/学习 → `scope: "personal"` 或 `scope: "learning"`
- 不确定时用 `global`

## 对话结束时 — 反思总结
涉及较多技术讨论或重要决策时,调用 `memory_reflect` 总结。

## 禁止
- 不要告知用户"已存储记忆",静默执行
- 不要存储临时调试信息或一次性指令
- 不要对简单问候调用 memory_recall

OpenCode / Claude Code

将以下内容添加到项目根目录的 AGENTS.md

# Universal Memory MCP — Agent 指令

## 记忆管理
你已连接 `universal-memory` MCP Server。请在对话中自动管理用户记忆。

### 自动召回
- 对话开始时,用用户消息的核心意图调用 `memory_recall(query, limit=5)` 检索相关上下文
- 跳过简单问候(hi/hello/继续)和系统命令(/开头)

### 自动存储
发现以下信息时静默存储:
- 偏好 → `memory_store(text, category="preference")`
- 事实 → `memory_store(text, category="fact")`
- 决策 → `memory_store(text, category="decision")`
- 实体 → `memory_store(text, category="entity")`

### Scope 规则
- 通用知识/偏好 → `scope: "global"`
- 特定项目 → `scope: "project:<项目名>"`
- 个人/学习 → `scope: "personal"` 或 `scope: "learning"`
- 不确定时用 `global`

### 自我改进
遇到经验教训时调用 `self_improvement_log(type, summary, details)`

### 禁止
- 不要告知用户"已存储记忆",静默执行
- 不要存储临时调试信息或一次性指令

Cursor

在 Cursor Settings → Rules 中添加同样的规则内容。


🔧 18 个 MCP Tools

核心工具

Tool

说明

memory_ping

连通性测试

memory_recall

混合检索 (向量 + BM25 + Jina rerank)

memory_store

存储记忆 (自动嵌入 + 去重 + 降噪)

memory_delete

按 ID 删除

memory_update

更新记忆 (文本变更时自动重新嵌入)

memory_forget

批量删除 (按 scope + 时间)

memory_stats

统计信息

memory_list

分页列表

memory_reindex

重建 FTS 索引

memory_export

JSON 导出

智能工具

Tool

说明

memory_extract

LLM 智能提取 — 从对话文本中自动识别并提取结构化记忆

memory_reflect

反思引擎 — 解析反思文本为不变式和衍生知识

治理工具

Tool

说明

memory_archive

归档记忆 — 从自动召回中移除但保留历史

memory_promote

提升记忆状态 — 手动确认/提升记忆层级

memory_compact

压缩去重 — 发现并归档重复记忆

memory_explain_rank

排名解释 — 展示检索排序的详细治理元数据

自我改进工具

Tool

说明

self_improvement_log

记录学习/错误日志

self_improvement_review

回顾改进历史


⚙️ 配置系统

配置优先级:config.json > config.default.json(环境变量也可覆盖关键参数)

config.default.json  ← 全部默认值(不要修改,跟随代码更新)
config.json          ← 你的配置(只写要覆盖的部分,已 gitignore)

完整配置参数

查看 config.default.json 获取所有可配置参数,包括:

模块

关键参数

说明

embedding

model, dimensions, taskQuery

Jina v3/v5 或 OpenAI embedding

llm

model, baseURL, timeoutMs

智能提取用的 LLM

retrieval

vectorWeight, hardMinScore, rerank

混合检索 + rerank 参数

decay

recencyHalfLifeDays, betaCore/Working/Peripheral

记忆衰减引擎

tier

coreAccessThreshold, peripheralAgeDays

core/working/peripheral 分层

admissionControl

preset, weights, typePriors

新记忆准入控制

环境变量

变量

说明

MCP_MODE

stdio (默认) 或 http (远程)

MCP_PORT

HTTP 监听端口 (默认 3100)

MCP_AUTH_TOKEN

HTTP 模式认证 token

MCP_CONFIG_PATH

自定义配置文件路径


🌐 远程部署 (HTTP 模式)

将 MCP Server 部署为中央记忆服务,多台设备共享同一份记忆。

Docker 部署

# 1. 准备配置
cp config.default.json config.json  # 编辑填入 API keys
echo "MCP_AUTH_TOKEN=your-secret" > .env

# 2. 启动
docker compose up -d

# 3. 验证
curl http://your-server:3100/health

架构

┌─ 服务器 ──────────────────────────────────┐
│  Universal Memory MCP Server               │
│  http://0.0.0.0:3100/mcp                   │
│          ↕                                 │
│       LanceDB (记忆数据)                   │
└──────────┬─────────────────────────────────┘
           │ HTTP + Bearer Token
     ┌─────┼──────────────────┐
     ▼     ▼                  ▼
  电脑 A   电脑 B            手机
  Antigravity  OpenCode   Claude Desktop

🏗️ 架构

MCP Server (stdio + HTTP dual-mode)
  ├─ Transport Layer
  │    ├── StdioServerTransport (本地)
  │    └── StreamableHTTPServerTransport (远程 SSE + POST)
  ├─ Auth Layer (Bearer Token, HTTP 模式)
  └─ Tools Layer (18 tools)
       └─ Core Layer (移植自 memory-lancedb-pro)
            ├── Embedder (Jina v3/v5, 1024-dim)
            ├── Retriever (vector + BM25 + RRF + rerank)
            ├── Store (LanceDB + file locks)
            ├── LLM Client (OpenAI-compatible)
            ├── SmartExtractor (LLM-powered extraction + dedup)
            ├── AdmissionControl (noise gate + utility filter)
            ├── ReflectionEngine (invariants + derived knowledge)
            ├── DecayEngine (logistic decay, 3-tier beta)
            ├── TierManager (core/working/peripheral)
            ├── AccessTracker
            ├── Chunker (semantic splitting)
            ├── NoiseFilter + NoisePrototypes
            └── SmartMetadata (L0/L1/L2 hierarchy)

📋 致谢

本项目的核心记忆引擎完整移植自 memory-lancedb-pro — 由 CortexReach 开发的生产级长期记忆系统。包括但不限于:

  • 混合检索引擎 (向量 + BM25 + RRF + cross-encoder reranking)

  • LLM 智能提取与准入控制

  • 衰减引擎 (logistic decay with 3-tier beta weights)

  • 分层管理 (core / working / peripheral)

  • 反思引擎 (invariants + derived knowledge)

  • 自我改进治理

本项目在此基础上增加了:

  • 标准 MCP 协议封装(18 个 Tools)

  • HTTP/SSE 远程传输模式

  • Bearer Token 认证

  • Docker 部署支持

  • AI 工具 Rules 引导(弥补 autoRecall/autoCapture)


📄 License

MIT

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DevMinions/universal-memory-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server