Skip to main content
Glama

mem0 Memory System

Mem0 徽标

@pinkpixel/mem0-mcp MCP 服务器 ✨

模型上下文协议 (MCP) 服务器与Mem0.ai集成,为 LLM 提供持久内存功能。它允许 AI 代理跨会话存储和检索信息。

该服务器使用mem0ai Node.js SDK 作为其核心功能。

特点🧠

工具

  • add_memory :将一段文本内容存储为与特定userId关联的记忆。
    • 输入: content (字符串,必需)、 userId (字符串,必需)、 sessionId (字符串,可选)、 agentId (字符串,可选)、 metadata (对象,可选)
    • 存储提供的文本,以便在将来的交互中回忆。
  • search_memory :根据特定userId的自然语言查询搜索存储的记忆。
    • 输入: query (字符串,必需)、 userId (字符串,必需)、 sessionId (字符串,可选)、 agentId (字符串,可选)、 filters (对象,可选)、 threshold (数字,可选)
    • 根据语义相似性检索相关记忆。
  • delete_memory :根据 ID 从存储中删除特定内存。
    • 输入: memoryId (字符串,必需)、 userId (字符串,必需)、 sessionId (字符串,可选)、 agentId (字符串,可选)
    • 永久删除指定的内存。
    • 根据语义相似性检索相关记忆。

先决条件🔑

该服务器支持两种存储模式:

  1. 云存储模式☁️(推荐)
    • 需要Mem0 API 密钥(作为MEM0_API_KEY环境变量提供)
    • 记忆永久存储在 Mem0 的云服务器上
    • 无需本地数据库
  2. 本地存储模式💾
    • 需要OpenAI API 密钥(作为OPENAI_API_KEY环境变量提供)
    • 记忆存储在内存向量数据库中(默认情况下是非持久性的)
    • 除非配置为持久存储,否则服务器重启时数据会丢失

安装和配置⚙️

您可以通过两种主要方式运行此服务器:

1. 使用npx (推荐快速使用)

使用 npm 全局安装包:

npm install -g @pinkpixel/mem0-mcp

配置您的 MCP 客户端(例如,Claude Desktop、Cursor、Cline、Roo Code 等)以使用npx运行服务器:

云存储配置(推荐)
{ "mcpServers": { "mem0-mcp": { "command": "npx", "args": [ "-y", "@pinkpixel/mem0-mcp" ], "env": { "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE", "DEFAULT_USER_ID": "user123" }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory" ] } } }

**注意:**"YOUR_MEM0_API_KEY_HERE"替换为您的实际 Mem0 API 密钥。

本地存储配置(替代)
{ "mcpServers": { "mem0-mcp": { "command": "npx", "args": [ "-y", "@pinkpixel/mem0-mcp" ], "env": { "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE", "DEFAULT_USER_ID": "user123" }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory" ] } } }

**注意:**用您的实际 OpenAI API 密钥替换"YOUR_OPENAI_API_KEY_HERE"

2. 从克隆的存储库运行

注意:此方法要求您先 git clone 存储库。

克隆存储库、安装依赖项并构建服务器:

git clone https://github.com/pinkpixel-dev/mem0-mcp cd mem0-mcp npm install npm run build

然后,配置您的 MCP 客户端以使用node直接运行构建的脚本:

{ "mcpServers": { "mem0-mcp": { "command": "node", "args": [ "/absolute/path/to/mem0-mcp/build/index.js" ], "env": { "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE", "DEFAULT_USER_ID": "user123" // OR use "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE" for local storage }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory" ] } } }

重要提示:

  1. /absolute/path/to/mem0-mcp/替换为克隆存储库的实际绝对路径
  2. 使用build/index.js文件,而不是src/index.ts文件
  3. MCP 服务器需要干净的标准输出来进行协议通信 - 任何写入标准输出的库或代码都可能干扰协议

默认用户 ID(可选后备)

add_memorysearch_memory工具都需要一个userId参数来将记忆与特定用户关联。

为了方便测试或单用户场景,您可以在启动服务器时选择性地设置DEFAULT_USER_ID环境变量。如果设置了此变量,并且在调用search_memory工具时省略了userId参数,则服务器将使用DEFAULT_USER_ID的值进行搜索。

**注意:**虽然存在此后备方案,但通常建议调用代理(LLM)明确提供正确的userId以添加和搜索记忆,以避免歧义。

使用DEFAULT_USER_ID的示例配置:

{ "mcpServers": { "mem0-mcp": { "command": "npx", "args": [ "-y", "@pinkpixel/mem0-mcp" ], "env": { "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE", "DEFAULT_USER_ID": "user123" }, } } }

或者直接使用node运行时:

git clone https://github.com/pinkpixel-dev/mem0-mcp cd mem0-mcp npm install npm run build
{ "mcpServers": { "mem0-mcp": { "command": "node", "args": [ "path/to/mem0-mcp/build/index.js" ], "env": { "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE", "DEFAULT_USER_ID": "user123" }, } } }

云存储 vs. 本地存储

云存储(Mem0 API)

  • 默认持久化- 您的记忆在会话和服务器重启后仍然可用
  • 无需本地数据库- 所有数据都存储在 Mem0 的服务器上
  • 更高的检索质量- 使用 Mem0 优化的搜索算法
  • 附加字段- 支持agent_idthreshold参数
  • 需要- Mem0 API 密钥

本地存储(OpenAI API)

  • 默认内存存储- 数据仅存储在 RAM 中,不会长期持久化。虽然可能会进行一些缓存,但不应将其用作永久存储。
  • 数据丢失风险——服务器重启、系统重启或进程终止时,内存数据将丢失
  • 推荐用于- 仅限开发、测试或临时使用
  • 对于持久存储- 如果您需要可靠的长期内存,请使用带有 Mem0 API 的云存储选项
  • 使用 OpenAI 嵌入- 用于向量搜索功能
  • 自包含- 所有数据都保留在您的机器上
  • 需要- OpenAI API 密钥

发展💻

克隆存储库并安装依赖项:

git clone https://github.com/pinkpixel-dev/mem0-mcp cd mem0-mcp npm install

构建服务器:

npm run build

对于文件更改时自动重建的开发:

npm run watch

调试🐞

由于 MCP 服务器通过 stdio 进行通信,因此调试起来可能比较困难。以下是一些方法:

  1. 使用 MCP Inspector :此工具可以监控 MCP 协议通信:
npm run inspector
  1. 控制台日志:添加控制台日志时,请始终使用console.error()而不是console.log()以避免干扰 MCP 协议
  2. 环境文件:使用.env文件进行本地开发,以简化设置 API 密钥和其他配置选项

技术实现说明

高级 Mem0 API 参数

使用 Mem0 API 的 Cloud Storage 模式时,您可以利用其他参数进行更复杂的内存管理。虽然工具架构中未明确公开这些参数,但在添加内存时可以将其包含在metadata对象中:

add_memory的高级参数:
范围类型描述
metadata目的存储关于记忆的额外上下文信息(例如,位置、时间、标识符)。这可以在检索过程中用于筛选。
includes细绳包含在记忆中的具体偏好。
excludes细绳从记忆中排除的特定偏好。
infer布尔值是否推断记忆或直接存储消息(默认值:true)。
output_format细绳格式版本,v1.0(默认,已弃用)或 v1.1(推荐)。
custom_categories目的带有名称和描述的类别列表。
custom_instructions细绳处理和组织记忆的项目特定指南。
immutable布尔值内存是否不可变(默认值:false)。
expiration_date细绳内存何时过期(格式:YYYY-MM-DD)。
org_id细绳与此记忆关联的组织 ID。
project_id细绳与此内存关联的项目 ID。
version细绳内存版本(v1 已弃用,建议新应用程序使用 v2)。

要在 MCP 服务器中使用这些参数,请在调用add_memory工具时将它们添加到元数据对象中。例如:

{ "content": "Important information to remember", "userId": "user123", "sessionId": "project-abc", "metadata": { "includes": "important context", "excludes": "sensitive data", "immutable": true, "expiration_date": "2025-12-31", "custom_instructions": "Prioritize this memory for financial questions", "version": "v2" } }
search_memory的高级参数:

Mem0 v2 搜索 API 提供了强大的过滤功能,可以通过filters参数使用:

范围类型描述
filters目的具有逻辑运算符和比较条件的复杂过滤器
top_k整数返回的顶级结果数(默认值:10)
fields细绳[]响应中要包含的特定字段
rerank布尔值是否对记忆进行重新排序(默认值:false)
keyword_search布尔值是否根据关键字搜索(默认值:false)
filter_memories布尔值是否过滤记忆(默认值:false)
threshold数字结果的最小相似度阈值(默认值:0.3)
org_id细绳用于筛选记忆的组织 ID
project_id细绳用于筛选记忆的项目 ID

filters参数支持复杂的逻辑运算(AND、OR)和各种比较运算符:

操作员描述
in匹配任何指定的值
gte大于或等于
lte小于或等于
gt大于
lt少于
ne不等于
icontains不区分大小写的包含检查

使用search_memory工具的复杂过滤器的示例:

{ "query": "What are Alice's hobbies?", "userId": "user123", "filters": { "AND": [ { "user_id": "alice" }, { "agent_id": {"in": ["travel-agent", "sports-agent"]} } ] }, "threshold": 0.5, "top_k": 5 }

这将搜索与 Alice 的爱好相关的记忆,其中 user_id 为“alice”并且 agent_id 为“travel-agent”或“sports-agent”,返回最多 5 个结果,相似度得分至少为 0.5。

有关这些参数的更多详细信息,请参阅Mem0 API 文档

安全记录器

MCP 服务器实现了一个SafeLogger类,该类可以选择性地将 console.log 调用从 mem0ai 库重定向到 stderr,而不会中断 MCP 协议:

  • 拦截 console.log 调用并检查堆栈跟踪以确定来源
  • 仅重定向来自 mem0ai 库或我们自己的代码的日志调用
  • 为 MCP 协议通信保留干净的标准输出
  • 进程退出时自动清理资源

这允许 MCP 客户端正常运行,同时保留有用的调试信息。

环境变量

服务器识别几个控制其行为的环境变量:

  • MEM0_API_KEY :云存储模式的 API 密钥
  • OPENAI_API_KEY :本地存储模式(嵌入)的 API 密钥
  • DEFAULT_USER_ID :内存操作的默认用户ID

由 Pink Pixel 用❤️制作

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

用于 AI 应用的灵活内存系统,支持多个 LLM 提供程序,可用作 MCP 服务器或直接库集成,无需明确命令即可实现自主内存管理。

  1. 特点🧠
    1. 工具
  2. 先决条件🔑
    1. 安装和配置⚙️
      1. 使用npx (推荐快速使用)
      2. 从克隆的存储库运行
      3. 默认用户 ID(可选后备)
    2. 云存储 vs. 本地存储
      1. 云存储(Mem0 API)
      2. 本地存储(OpenAI API)
    3. 发展💻
      1. 调试🐞
        1. 技术实现说明
          1. 高级 Mem0 API 参数
          2. 安全记录器
          3. 环境变量

        Related MCP Servers

        • -
          security
          F
          license
          -
          quality
          An MCP server that allows Claude and other LLMs to manage persistent memories across conversations through text file storage, enabling commands to add, search, delete and list memory entries.
          Last updated -
          2
          TypeScript
        • -
          security
          A
          license
          -
          quality
          An MCP server that provides persistent memory capabilities for Claude, offering tiered memory architecture with semantic search, memory consolidation, and integration with the Claude desktop application.
          Last updated -
          5
          Python
          MIT License
        • -
          security
          A
          license
          -
          quality
          An MCP-native server that enables intelligent task delegation from advanced AI agents like Claude to more cost-effective LLMs, optimizing for cost while maintaining output quality.
          Last updated -
          80
          Python
          MIT License
        • -
          security
          A
          license
          -
          quality
          A Model Context Protocol server that provides AI agents with persistent memory capabilities through Mem0, allowing them to store, retrieve, and semantically search memories.
          Last updated -
          2
          Python
          MIT License

        View all related MCP servers

        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/pinkpixel-dev/mem0-mcp'

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