Skip to main content
Glama

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 (字符串,可选)

    • 永久删除指定的内存。

    • 根据语义相似性检索相关记忆。

Related MCP server: MCP Titan

先决条件🔑

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

  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 用❤️制作

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

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