mem0-mcp
pinkpixel-dev/mem0-mcp加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你让 AI 助手帮你记住"我喜欢喝不加糖的美式咖啡"。下一次对话时,它完全忘了这件事,重新问你"你喝什么咖啡?"。这是所有对话式 AI 的通病——无状态性,每次交互都是一张白纸。
对于个人 AI 助手来说,这个问题还算可以忍受。但如果你是开发者,构建的是需要跨会话理解用户偏好的 AI Agent,比如医疗问诊助手、法律咨询机器人、长期客户关系管理系统,这个问题就成了致命的体验缺陷。
Mem0 是这个问题的专门解决方案。它是一个专为 AI 应用设计的记忆层(Memory Layer),专注于存储、检索和推理用户/Agent 的历史信息。mem0-mcp 则是 Mem0 的 MCP(Model Context Protocol)协议实现,让任何兼容 MCP 的 AI 工具(比如 Cursor、Cline、Claude Desktop)都能直接调用 Mem0 的记忆能力,而无需额外部署或编写适配代码。
本项目的作者是 pinkpixel-dev,背后是一个专注于开发者工具的个人工作室,官网 pinkpixel.dev。Mem0 官方也将该项目列为推荐的 MCP 集成方式之一,项目已上架 smithery.ai(一个 MCP Server 目录平台)。
mem0-mcp 的设计核心是一个后端抽象层(Backend Abstraction Layer),支持三种完全不同的存储后端,开发者可以根据场景自由切换:
| 存储模式 | 配置要求 | 适用场景 |
|---|---|---|
| Cloud(推荐) | MEM0_API_KEY | 生产环境,完全托管 |
| Supabase | SUPABASE_URL + SUPABASE_KEY + OPENAI_API_KEY | 自托管,需 PostgreSQL |
| Local | OPENAI_API_KEY | 开发调试,轻量使用 |
最简单的方式。只需申请一个 Mem0 API Key(mem0.ai 官网注册),配置 MEM0_API_KEY 环境变量即可。项目使用 mem0ai Node.js SDK(v3.0.10)调用 Mem0 云端 API,底层通过 HTTPS 与 Mem0 服务器通信。
Cloud 模式支持 Mem0 V3 的全部高级特性,包括语义+BM25 混合搜索、记忆评分反馈(rate_memory)、记忆历史审计(get_memory_history)、批量操作等。
在没有 Mem0 账号的情况下,可以利用 OPENAI_API_KEY 启用本地向量存储模式。此时 Mem0 会使用 OpenAI 的 text-embedding-3-small 模型生成向量,在进程内存中维护向量数据库,适合开发调试或极轻量使用场景。
适合需要数据自主可控的团队。Mem0 支持将向量存储和历史记录存储在自托管的 Supabase(基于 PostgreSQL + pgvector)实例中。Supabase 的 pgvector 扩展提供了向量相似度搜索能力,OpenAI API 负责生成 Embedding,完全免费且可私有部署。
mem0-mcp 通过 MCP 协议暴露了 14 个工具,覆盖了记忆的全生命周期管理:
add_memory:向记忆库添加新的记忆内容。支持两种输入模式——纯文本或结构化消息数组(role/content)。可选参数非常丰富:infer(自动推断关系)、customInstructions(自定义记忆组织策略)、waitForCompletion(异步/同步模式切换)。异步模式是这个工具的亮点——默认会轮询 Mem0 后台队列直到操作完成,但也支持 waitForCompletion: false 立即返回 eventId,避免长时间阻塞。search_memories:核心搜索工具。提供语义搜索(基于向量相似度)和 BM25 关键词搜索的混合模式。可通过 threshold(相似度阈值)、topK(返回条数)、rerank(重排序)、filters(多维度过滤)等参数精确控制结果质量。自动处理 V3 API 的 filters 嵌套结构,避免 API 校验错误。list_memories:分页列出指定范围内的记忆记录,适合构建记忆管理界面。get_memory / get_memory_history:获取单条记忆详情及其修订历史。update_memory / delete_memory / batch_delete_memories:记忆的修改和删除。get_memory_capabilities:查询当前后端支持的功能特性矩阵,用于构建功能降级策略。rate_memory:对记忆质量打分(positive/negative/very_negative),帮助 Mem0 优化后续记忆的存储策略(Cloud 模式专属)。create_memory_export / get_memory_export:异步导出记忆数据到指定格式,支持自定义 schema(Cloud 模式专属)。这套工具集设计得非常完整,从写入→检索→管理→评估→导出,覆盖了记忆系统的全部核心需求。
mem0-mcp 没有 Web 界面,这是一个需要明确的点。它是一个纯 MCP Server,运行在命令行模式下,通过 stdio(标准输入/输出)与 MCP Client 通信。
npm install -g @pinkpixel/mem0-mcp),或通过 Docker 运行。项目提供多阶段 Dockerfile,基于 node:lts-alpine,最终镜像约 200MB。MEM0_API_KEY。也可以通过 MCP 客户端的配置界面注入。FROM node:lts-alpine AS builder
WORKDIR /app
COPY package*.json tsconfig.json ./
COPY src ./src
RUN npm install && npm run build
FROM node:lts-alpine AS runner
COPY --from=builder /app/build ./build
COPY --from=builder /app/node_modules ./node_modules
CMD ["node", "build/index.js"]
Dockerfile 设计规范,多阶段构建将编译产物与运行时依赖分离,最终镜像干净整洁。但没有提供 docker-compose,无法一键启动 Mem0 + MCP Server + 某 MCP Client 的完整链路,需要用户自行编排。
几乎可以忽略不计——Node.js 运行时,无需 GPU,内存 512MB 起步,磁盘 200MB。适合部署在树莓派、轻量 VPS 等边缘设备上。
项目采用清晰的四层架构:
src/index.ts:主入口,负责 MCP Server 初始化、工具注册、信号处理(SIGINT/SIGTERM)。值得注意的是,所有日志输出(console.log/error/warn)被静默覆盖为空函数,避免破坏 MCP 的 stdio 协议。src/types.ts:TypeScript 类型定义。src/backends/base.ts:抽象基类 MemoryBackend,定义所有后端必须实现的接口。src/backends/cloud.ts / local.ts / supabase.ts:三个具体后端实现,各自初始化 Mem0 配置并挂载工具方法。这种策略模式(Strategy Pattern)的设计,让新增存储后端变得极为简单——只需实现 MemoryBackend 接口即可,无需改动核心逻辑。
"type": "module")扣分项主要集中在:缺乏自动化测试(package.json 中无 test 脚本)、文档依赖外部 README 而非代码内注释、安全方面(API Key 通过环境变量注入是安全做法,但缺乏 HTTPS 强制校验)。整体代码结构清晰,TypeScript 类型严谨,分层合理。
customInstructions 参数可以微调,但调优空间有限。text-embedding-3-small,对中文语义理解可能不如专用中文模型。随着 AI Agent 概念持续火热(Manus、Claude Agent、OpenAI Operator),一个核心矛盾浮现出来:Agent 需要跨会话、跨任务地理解用户,但通用 LLM API 本身是无状态的。
Mem0 精准切中了这个需求。GitHub 上 mem0ai/mem0 主仓库已获得超过 3.5 万 Star,pinkpixel-dev/mem0-mcp 作为其 MCP 协议绑定,在 MCP Server 这个细分赛道中具有先发优势。随着 MCP 协议被越来越多人接受(Cursor 全面支持、Cline 生态繁荣),这类工具的市场空间还在持续扩大。
该项目代表了 AI 应用基础设施的一个趋势:从"让 AI 有记忆"到"让 AI 有可编程的记忆",记忆不再是一个黑箱,而是可以通过工具精确增删改查的结构化数据资产。