AI编码助手长期记忆服务

evermemos-mcp是一款为AI编码助手提供长期记忆存储与检索的服务,通过remember和briefing等工具实现跨会话的上下文持久化。

  • by tt-a1i
  • Python
  • 本地部署
  • 24 星标
  • 更新于
在 GitHub 查看 tt-a1i/evermemos-mcp

使用说明

evermemos mcp

英语 | 简体中文

AI编码助手的长期记忆。记住一次,永远记住。

你花了30分钟解释你的架构、命名约定,以及为什么放弃MongoDB。下一次会议——结束了。你再解释一遍。

evermemos mcp修复了这个问题。一 remember call存储它 briefing 调用会将其带回——在任何会话、任何客户端中。

基准:60/60召回率与0/60基线。零归因错误。P95<2s。 (证据)

简介视频: 观看Bilibili

演示视频: 观看Bilibili


快速开始

从获取API密钥 EverMemOS云,然后添加到MCP客户端配置中:

{
  "mcpServers": {
    "evermemos-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["evermemos-mcp@latest"],
      "env": {
        "EVERMEMOS_API_KEY": "your-key-here"
      }
    }
  }
}

或者直接运行:

uvx evermemos-mcp@latest

适用于 Claude Code、Cursor、Cline、Cherry Studio、OpenClaw、Gemini CLI、Aider,以及任何兼容MCP的客户端或代理。看 docs/05-client-integrations.md 用于特定于客户端的设置。

Install from source
git clone https://github.com/tt-a1i/everos-mcp.git
cd everos-mcp
cp .env.example .env   # set EVERMEMOS_API_KEY
uv run evermemos-mcp

源安装的MCP客户端配置:

{
  "mcpServers": {
    "evermemos-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/evermemos-mcp", "evermemos-mcp"],
      "env": { "EVERMEMOS_API_KEY": "your-key-here" }
    }
  }
}

所得

7工具

工具 它做什么
list_spaces 发现可用内存空间
remember 将上下文存储到长期记忆中。自动检测敏感内容(API密钥、密码)并检查冲突内存
request_status 检查是否已提取排队写入
recall 使用6种检索策略(关键字/混合/向量/RRF/代理/自动)搜索记忆
briefing 一个通话会话开始上下文恢复:个人资料+事件+事实+前瞻
forget 通过验证工作流进行有针对性的删除
fetch_history 按类型分页记忆时间线

关键能力

  • 空间隔离 — coding:my-app, chat:preferences, study:ml-notes --记忆永远不会在项目中流失
  • 多空间搜索 --一次最多查询10个空格 recall 具有自动来源归因功能的通话
  • 敏感内容保护 -存储前阻止API密钥、密码、令牌、私钥。请用户确认
  • 内存冲突检测 --自动检查中的类似记忆 chat:* 空间。表面冲突,以便代理可以决定
  • 生命周期跟踪 --每个结果都标记 queued, provisional, fallback,或 searchable 所有工具
  • 可追溯的引用 — memory_type, snippet, timestamp, score, source_message_id 每一个结果
  • Git自动检测 --省略 space_id 它推断 coding:<repo-name> 从git远程
  • 稳健的错误处理 --使用回退重试(429/5xx);遗留v0 GET主体代理/WAF回退(默认v1获取/搜索使用POST主体);结构化错误代码

用例

持久架构上下文:

You: remember we chose PostgreSQL because our data is highly relational
     [space_id: coding:my-saas]

-- next day, new session --

You: what database did we choose and why?
     → "Chose PostgreSQL — highly relational data model"

坚持的个人偏好:

You: remember I prefer dark mode, vim keybindings, and concise responses
     [space_id: chat:preferences]

-- any future session --

You: recall my UI preferences
     → "dark mode, vim keybindings, concise responses"

跨课程学习笔记:

You: remember bias-variance tradeoff — high bias = underfitting, high variance = overfitting
     [space_id: study:ml-notes]

-- later --

You: briefing for study:ml-notes
     → profile + recent episodes + key facts + foresights

为什么选择evermemos mcp

还有其他内存MCP服务器。以下是它的不同之处:

evermemos mcp Mem0 mcp Letta/MemGPT 官方mcp内存
空间隔离 domain:slug 每个项目/主题 否 否 无
生命周期跟踪 排队→ 临时的→ 后备方案→ 可搜索 否 否
敏感内容保护 阻止API密钥、密码、令牌 否 否
冲突检测 聊天空间自动 否 否 不
多空间搜索 一次通话最多10个空格 否 否 不
检索策略 6种方法+自动合并 仅语义 仅语义 None
基准验证 60/60召回率,0个错误 -- -- --
设置 uvx evermemos-mcp 云或自主机 需要自主机 npx

基准

在编码、聊天和学习空间的固定60个查询集上进行了测试。

度量 有内存 无内存
命中率 60/60(100%) 0/60(0%)
归因错误 0 --
P95延迟 1958毫秒 --

证据:


运作原理

MCP Client (Claude Code / Cursor / Cline / Cherry Studio / OpenClaw / any agent)
        │
        │  MCP stdio
        ▼
┌─────────────────────────────┐
│     evermemos-mcp server    │
│  ┌───────────────────────┐  │
│  │   7 Tool Handlers     │  │
│  └──────────┬────────────┘  │
│  ┌──────────▼────────────┐  │
│  │   Memory Service      │  │  Content guard → Conflict check → Cloud write → Lifecycle tracking
│  └──────────┬────────────┘  │
│  ┌──────────▼────────────┐  │
│  │ Space Catalog Service │  │  Space registry, metadata sync, cross-session recovery
│  └──────────┬────────────┘  │
│  ┌──────────▼────────────┐  │
│  │  EverMemOS HTTP Client│  │  Auth, retries, rate-limit backoff, error normalization
│  └──────────┬────────────┘  │
└─────────────┼───────────────┘
              │  HTTPS
              ▼
       EverMemOS Cloud API
  • 云优先 --所有的记忆都存在于EverMemOS Cloud中。没有一个地方州会输。
  • 异步提取 — remember 将内容排队以进行AI提取。使用 request_status 跟踪进展。
  • 不是薄包装 --2500多行编排:回退层次结构、多方法搜索合并、身份镜像、部分故障恢复。

空间模板

模板 使用它
chat:preferences 持久的个人偏好、姓名、语气、用户界面喜好
chat:daily 不应泄露到项目中的持续聊天上下文
coding:<repo> 架构决策、惯例、错误、项目背景
study:<topic> 学习笔记、主题进度、复习背景

什么时候用什么工具

目标 工具 为什么
开始新会话 briefing 在一次调用中恢复上下文的最快方法
找到一个具体的事实 recall 跨空间的相关性排名搜索
回顾发生的事情 fetch_history 按时间顺序排列的时间线>审计排名搜索
删除前后验证 fetch_history 删除前/删除后检查的稳定时间表

配置

变量 默认值 描述
EVERMEMOS_API_KEY (必填) EverMemOS云API密钥
EVERMEMOS_USER_ID mcp-user 默认用户身份
EVERMEMOS_DEFAULT_SPACE (自动) 默认空间。从git remote自动检测到 coding:<repo>
EVERMEMOS_BASE_URL https://api.evermind.ai API终点
EVERMEMOS_DEFAULT_TIMEZONE UTC 元数据的时区
EVERMEMOS_ENABLE_CONVERSATION_META true 同步对话元数据
Advanced configuration
变量 默认值 描述
EVERMEMOS_API_VERSION v1 API版本(v0 遗产)
EVERMEMOS_LLM_CUSTOM_SETTING_JSON -- 自定义LLM提取设置
EVERMEMOS_USER_DETAILS_JSON -- 对话的用户配置文件详细信息

flush 规则

场景 flush
交谈中,更多信息即将到来 false
会话结束/主题切换/总结 true
不确定 true (更安全)

Advanced: Memory Lifecycle States
状态 含义
queued 写入已接受,提取尚未确认
provisional 答复来自 pending_messages 在提取过程中
fallback 答复来自 pending_messages 和/或元数据回退,而正式存储器尚不可搜索;在Cloud v1上,只有有限的组元数据(名称/描述)被持久镜像
searchable 从正式提取的记忆中得到答案

所有7个工具均兼容 lifecycle 块,以便代理始终知道内存成熟度。

Advanced: Forget Safety

云删除是异步的,尽最大努力。evermemos mcp提供了一个验证优先的工作流程:

  1. 确认目标 memory_id 通过 fetch_history 或 recall
  2. 呼叫 forget(memory_ids=[...], space_id=...)
  3. 证实 fetch_history
  4. 如果目标持续存在,生命周期模型将透明地显示

这是经过深思熟虑的:将真实状态暴露给代理,而不是假装删除是即时的。


发展

uv sync --group dev       # Install dev dependencies
uv run ruff check         # Lint
uv run pytest             # Tests (285 pass)

文档

文档 描述
docs/02-architecture.md 技术架构
docs/05-client-integrations.md 客户端设置指南
docs/auto-memory-prompt.md 自动记忆提示模板
docs/06-benchmark.md 基准协议
CHANGELOG.md 版本历史

另请查看

MCO --代理编排CLI。让你的主代理(Claude Code、Cursor、Aider)并行地将任务分派给多个编码代理。与evermemos mcp配合得很好:MCO处理并行执行,evermemos mcp处理持久内存。

许可证

麻省理工学院