Token导航 LogoToken导航TokenDH.com
Mem0 Memory System logo
搜索检索stdio官方级别未说明来源级核验

Mem0 Memory System

MCP Server

@smithery/cli

一个基于Model Context Protocol (MCP)的服务器,为LLM提供持久化记忆存储和检索功能。

工具数

0

提示词数

0

GitHub Stars

95

资源数

0
记忆存储搜索JavaScriptClaudeClaude DesktopClaudeCursorCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

pinkpixel-dev

提供方

pinkpixel-dev

最后核验

2026/5/17 20:19

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx -y @smithery/cli install @pinkpixel-dev/mem0-mcp-server --client claude

详细介绍

Mem0 Logo

](https://badge.fury.io/js/@pinkpixel%2Fmem0-mcp) ![License: MIT](https://opensource.org/licenses/MIT) ](https://nodejs.org/) ![TypeScript](https://www.typescriptlang.org/) ![MCP](https://modelcontextprotocol.io/) ![Mem0](https://mem0.ai) ](https://www.npmjs.com/package/@pinkpixel/mem0-mcp) ](https://github.com/pinkpixel-dev/mem0-mcp) ](https://smithery.ai/server/@pinkpixel-dev/mem0-mcp-server)

@pinkpixel/mem0 mcp mcp服务器✨

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

此服务器使用 mem0ai Node.js SDK的核心功能。

特性🧠

工具

  • add_memory:将一段文本内容存储为与特定内容关联的内存 userId.

- 必修的: content (字符串), userId (字符串) - 可选: sessionId (字符串), agentId (字符串), appId (字符串), metadata (对象) - 高级(云API): includes (字符串), excludes (字符串), infer (布尔值), outputFormat (字符串), customCategories (对象), customInstructions (字符串), immutable (布尔值), expirationDate (字符串) - 存储提供的文本,以便在未来的交互中调用。

  • search_memory:根据自然语言查询搜索存储的记忆中的特定内容 userId.

- 必修的: query (字符串), userId (字符串) - 可选: sessionId (字符串), agentId (字符串), appId (字符串), filters (对象), threshold (编号) - 高级(云API): topK (数字), fields (阵列), rerank (布尔值), keywordSearch (布尔值), filterMemories (布尔值) - 基于语义相似性检索相关记忆。

  • delete_memory:按ID从存储器中删除特定内存。

- 必修的: memoryId (字符串), userId (字符串) - 可选: agentId (字符串), appId (字符串) - 永久删除指定的内存。

先决条件🔑

此服务器支持三种存储模式:

  1. 云存储模式 ☁️ (推荐用于生产)

- 需要a Mem0 API密钥 (提供为 MEM0_API_KEY 环境变量) - 内存持久存储在Mem0的云服务器上 - 不需要本地数据库 - 具有高级过滤和搜索功能的全功能支持

  1. Supabase存储模式 🗄️ (建议自住)

- 需要 Supabase凭据 (SUPABASE_URLSUPABASE_KEY 环境变量) - 需要 OpenAI API密钥 (OPENAI_API_KEY 环境变量)用于嵌入 - 记忆会持久存储在您的Supabase数据库中 - 提供免费套餐,可自住选项 - 需要初始数据库设置(下面提供SQL迁移)

  1. 本地存储模式 💾 (仅用于开发/测试)

- 需要一个 OpenAI API密钥 (提供为 OPENAI_API_KEY 环境变量) - 内存存储在内存向量数据库中(默认情况下为非持久性) - 除非配置为持久存储,否则服务器重新启动时数据会丢失

安装和配置⚙️

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

通过Smithery安装

通过以下方式自动安装Claude Desktop的Mem0内存服务器 铁匠铺:

npx -y @smithery/cli install @pinkpixel-dev/mem0-mcp-server --client claude

1.全球安装(建议经常使用)

全局安装软件包并使用 mem0-mcp 命令:

npm install -g @pinkpixel/mem0-mcp

全局安装后,您可以直接运行服务器:

mem0-mcp

配置您的MCP客户端以使用全局命令:

云存储配置(全局安装)

{
  "mcpServers": {
    "mem0-mcp": {
      "command": "mem0-mcp",
      "args": [],
      "env": {
        "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE",
        "DEFAULT_USER_ID": "user123",
        "DEFAULT_AGENT_ID": "your-agent-id",
        "DEFAULT_APP_ID": "your-app-id"
      },
      "disabled": false,
      "alwaysAllow": [
        "add_memory",
        "search_memory",
        "delete_memory"
      ]
    }
  }
}

基础存储配置(全局安装)

{
  "mcpServers": {
    "mem0-mcp": {
      "command": "mem0-mcp",
      "args": [],
      "env": {
        "SUPABASE_URL": "YOUR_SUPABASE_PROJECT_URL",
        "SUPABASE_KEY": "YOUR_SUPABASE_ANON_KEY",
        "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE",
        "DEFAULT_USER_ID": "user123",
        "DEFAULT_AGENT_ID": "your-agent-id",
        "DEFAULT_APP_ID": "your-app-id"
      },
      "disabled": false,
      "alwaysAllow": [
        "add_memory",
        "search_memory",
        "delete_memory"
      ]
    }
  }
}

本地存储配置(全局安装)

{
  "mcpServers": {
    "mem0-mcp": {
      "command": "mem0-mcp",
      "args": [],
      "env": {
        "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE",
        "DEFAULT_USER_ID": "user123"
      },
      "disabled": false,
      "alwaysAllow": [
        "add_memory",
        "search_memory",
        "delete_memory"
      ]
    }
  }
}

2.使用 npx (建议偶尔使用)

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

云存储配置(npx)

{
  "mcpServers": {
    "mem0-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@pinkpixel/mem0-mcp"
      ],
      "env": {
        "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE",
        "DEFAULT_USER_ID": "user123",
        "DEFAULT_AGENT_ID": "your-agent-id",
        "DEFAULT_APP_ID": "your-app-id"
      },
      "disabled": false,
      "alwaysAllow": [
        "add_memory",
        "search_memory",
        "delete_memory"
      ]
    }
  }
}

数据库存储配置(npx)

{
  "mcpServers": {
    "mem0-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@pinkpixel/mem0-mcp"
      ],
      "env": {
        "SUPABASE_URL": "YOUR_SUPABASE_PROJECT_URL",
        "SUPABASE_KEY": "YOUR_SUPABASE_ANON_KEY",
        "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE",
        "DEFAULT_USER_ID": "user123",
        "DEFAULT_AGENT_ID": "your-agent-id",
        "DEFAULT_APP_ID": "your-app-id"
      },
      "disabled": false,
      "alwaysAllow": [
        "add_memory",
        "search_memory",
        "delete_memory"
      ]
    }
  }
}

本地存储配置(npx)

{
  "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",
        "delete_memory"
      ]
    }
  }
}

3.从克隆存储库运行

注意:此方法要求您首先对存储库进行git克隆。

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

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",
        "DEFAULT_AGENT_ID": "your-agent-id",
        "DEFAULT_APP_ID": "your-app-id"
      },
      "disabled": false,
      "alwaysAllow": [
        "add_memory",
        "search_memory",
        "delete_memory"
      ]
    }
  }
}

上层存储配置(克隆存储库)

{
  "mcpServers": {
    "mem0-mcp": {
      "command": "node",
      "args": [
        "/absolute/path/to/mem0-mcp/build/index.js"
      ],
      "env": {
        "SUPABASE_URL": "YOUR_SUPABASE_PROJECT_URL",
        "SUPABASE_KEY": "YOUR_SUPABASE_ANON_KEY",
        "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE",
        "DEFAULT_USER_ID": "user123",
        "DEFAULT_AGENT_ID": "your-agent-id",
        "DEFAULT_APP_ID": "your-app-id"
      },
      "disabled": false,
      "alwaysAllow": [
        "add_memory",
        "search_memory",
        "delete_memory"
      ]
    }
  }
}

本地存储配置(克隆存储库)

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

重要提示:

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

Supabase设置🗄️

如果选择使用Supabase存储模式,则需要使用所需的表设置Supabase数据库。

1.创建一个Supabase项目

  1. 首选 网站 supabase.com 并创建一个新项目
  2. 注意项目设置中的项目URL和匿名密钥

2.运行SQL迁移

在Supabase SQL编辑器中运行以下SQL命令:

-- Enable the vector extension
create extension if not exists vector;

-- Create the memories table
create table if not exists memories (
  id text primary key,
  embedding vector(1536),
  metadata jsonb,
  created_at timestamp with time zone default timezone('utc', now()),
  updated_at timestamp with time zone default timezone('utc', now())
);

-- Create the vector similarity search function
create or replace function match_vectors(
  query_embedding vector(1536),
  match_count int,
  filter jsonb default '{}'::jsonb
)
returns table (
  id text,
  similarity float,
  metadata jsonb
)
language plpgsql
as $$
begin
  return query
  select
    t.id::text,
    1 - (t.embedding  query_embedding) as similarity,
    t.metadata
  from memories t
  where case
    when filter::text = '{}'::text then true
    else t.metadata @> filter
  end
  order by t.embedding  query_embedding
  limit match_count;
end;
$$;

-- Create the memory_history table for history tracking
create table if not exists memory_history (
  id text primary key,
  memory_id text not null,
  previous_value text,
  new_value text,
  action text not null,
  created_at timestamp with time zone default timezone('utc', now()),
  updated_at timestamp with time zone,
  is_deleted integer default 0
);

3.设置环境变量

将以下内容添加到MCP配置中:

  • SUPABASE_URL:您的Supabase项目URL(例如。, https://your-project.supabase.co)
  • SUPABASE_KEY:您的Supabase匿名密钥
  • OPENAI_API_KEY:您的OpenAI API密钥(用于嵌入)

Supabase模式的好处

永久存储 -数据在服务器重启后仍然存在 ✅ 免费套餐可用 -丰富的免费开发层 ✅ 可自我托管 -可以运行自己的Supabase实例 ✅ 可扩展的 -随着您的需求而成长 ✅ SQL访问 -直接访问数据库以进行高级查询 ✅ 实时功能 -内置实时订阅

参数配置🎯

了解Mem0参数

服务器使用四个关键参数来组织和范围内存:

  1. userId -标识用户(必填)
  2. agentId -标识进行工具调用的LLM/代理(可选)
  3. appId -标识用户的项目/应用程序- 这控制了项目范围! (可选)
  4. sessionId -标识对话会话(映射到 run_id 在Mem0中)(可选)

环境变量回退🔄

MCP服务器支持用户标识和项目设置的环境变量回退:

  • DEFAULT_USER_ID:在工具调用中未提供后备用户ID时
  • DEFAULT_AGENT_ID:用于标识LLM/代理的回退代理ID
  • DEFAULT_APP_ID:用于项目范围界定的后备应用程序ID

优先级顺序(重要!)

  1. 刀具参数 (最高优先级)-LLM在工具调用中提供的值
  2. 环境变量 (回退)-来自MCP配置的值

行为示例:

// Your MCP config
"env": {
  "DEFAULT_USER_ID": "john-doe",
  "DEFAULT_AGENT_ID": "my-assistant",
  "DEFAULT_APP_ID": "my-project"
}

如果LLM提供参数:

{
  "tool": "add_memory",
  "arguments": {
    "content": "Remember this",
    "userId": "session-123",        // ← Overrides DEFAULT_USER_ID
    "agentId": "different-agent",   // ← Overrides DEFAULT_AGENT_ID
    "appId": "special-project"      // ← Overrides DEFAULT_APP_ID
    // sessionId omitted           // ← No fallback, will be undefined
  }
}

结果:用途 session-123, different-agent,以及 special-project

如果LLM省略了参数:

{
  "tool": "add_memory",
  "arguments": {
    "content": "Remember this"
    // All IDs omitted - uses environment variables
  }
}

结果:用途 john-doe, my-assistant,以及 my-project

控制LLM行为

为确保使用环境变量,请指示LLM:

  • *“使用环境中配置的默认用户ID”*
  • *不要指定userId、agentId或appId参数*
  • *“让服务器使用配置的默认值”*

系统提示推荐

为了获得最佳效果,请在系统提示中包含以下说明:

When creating memories, use:
- agentId: "my-assistant"
- appId: "my-project"
- sessionId: "current-conversation-id"

示例配置使用 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",
        "ORG_ID": "your-org-id",
        "PROJECT_ID": "your-project-id"
      }
    }
  }
}

或者直接与 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"
      }
    }
  }
}

存储模式比较🔄

云存储(Mem0 API)☁️

  • 默认情况下为持久 -您的记忆在会话和服务器重启期间仍然可用
  • 不需要本地数据库 -所有数据都存储在Mem0的服务器上
  • 更高的检索质量 -使用Mem0的优化搜索算法
  • 附加字段 -支持 agent_idthreshold 参数
  • 完全管理 -无需设置或维护
  • 需要 -一个Mem0 API密钥

上层存储🗄️

  • 持久存储 -数据存储在您的Supabase PostgreSQL数据库中
  • 免费套餐可用 -为开发和小型项目提供丰富的免费层
  • 自助式 -可以运行自己的Supabase实例以实现完全控制
  • SQL访问 -直接访问数据库以进行高级查询和分析
  • 可扩展的 -随着您的需求而增长,从免费版到企业版
  • 矢量搜索 -使用pgvector扩展进行高效的相似性搜索
  • 实时功能 -内置实时订阅和webhooks
  • 需要 -Subabase项目设置和用于嵌入的OpenAI API密钥

本地存储(OpenAI API)💾

  • 默认情况下在内存中 -数据仅存储在RAM中 长期不持久。虽然可能会出现一些缓存,但您不应该依赖它进行永久存储。
  • 数据丢失风险 -内存数据将在服务器重新启动、系统重新启动或进程终止时丢失
  • 推荐 -仅用于开发、测试或临时使用
  • 用于持久存储 -如果您需要可靠的长期内存,请使用云存储或Supabase选项
  • 使用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检查器:此工具可以监控MCP协议通信:
npm run inspector
  1. 控制台的日志:添加控制台日志时,始终使用 console.error() 而不是 console.log() 避免干扰MCP协议
  1. 环境文件:使用a .env 用于本地开发的文件,以简化设置API密钥和其他配置选项

技术实施说明🔧

高级Mem0 API参数

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

高级参数 add_memory:

参数类型说明
metadataobject存储有关内存的其他上下文(例如,位置、时间、标识符)。这可用于检索过程中的过滤。
includesstring要包含在内存中的特定首选项。
excludesstring要从内存中排除的特定首选项。
inferboolean是推断记忆还是直接存储消息(默认值:true)。
output_formatstring格式版本,v1.0(默认,已弃用)或v1.1(推荐)。
custom_categoriesobject包含名称和描述的类别列表。
custom_instructionsstring处理和组织记忆的项目特定指南。
immutableboolean内存是否不可变(默认值:false)。
expiration_datestring内存何时过期(格式:YYYY-MM-DD)。
org_idstring与此内存关联的组织ID。
project_idstring与此内存关联的项目ID。
versionstring内存版本(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 参数:

参数类型说明
filtersobject具有逻辑运算符和比较条件的复杂筛选器
top_kinteger要返回的顶部结果数(默认值:10)
fieldsstring\[\]要包含在响应中的特定字段
rerankboolean是否重新排序内存(默认值:false)
keyword_searchboolean是否基于关键字搜索(默认值:false)
filter_memoriesboolean是否过滤内存(默认值:false)
thresholdnumber结果的最小相似性阈值(默认值:0.3)
org_idstring用于筛选内存的组织ID
project_idstring用于筛选内存的项目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是“旅行社”或“体育社”,最多返回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
  • DEFAULT_AGENT_ID:用于标识LLM/代理的默认代理ID
  • DEFAULT_APP_ID:项目范围的默认应用程序ID

重要提示:

  • 会话ID 作为工具参数传递(例如。, "sessionId": "my-session"),不是环境变量
  • 当使用工具时。, agentId, appId, sessionId)优先于环境变量,为您提供最大的灵活性
  • org_id和project_id由Mem0自动设置 用户无法更改-使用 appId 改为项目范围界定

______________________________________________________________________

由...制作❤️ 由粉红色像素

目录标签

目录标签

记忆存储搜索JavaScriptClaude本地部署语义搜索会话持久化AI代理工具向量数据库

支持客户端

Claude DesktopClaudeCursorCline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@smithery/cli

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP