mcpField
M
MCP-Mem0: Long-Term Memory for AI Agents

MCP-Mem0: Long-Term Memory for AI Agents

本地服务
github.com/gustavoserafim记忆与知识173 周前更新

关于 MCP-Mem0: Long-Term Memory for AI Agents

MCP-Mem0 是将 Mem0 集成到 MCP 服务中的长期记忆模板,供构建 MCP 服务的开发者和需要持久记忆的 AI Agent 使用。它提供记忆存储、检索与语义搜索,并可作为自建服务的参考实现。

主要功能

  1. 01保存带语义索引的长期记忆
  2. 02检索全部已存记忆
  3. 03语义搜索相关记忆
  4. 04提供自建 MCP 服务模板

适用场景

  1. 01让 AI Agent 保存长期信息
  2. 02为对话检索相关记忆
  3. 03参考模板构建自定义 MCP 服务

MCP 相关

该 MCP 服务向兼容客户端提供保存、读取和搜索记忆的工具,支持 stdio 与 SSE 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP-Mem0:AI Agent 的长期记忆

Mem0 与 MCP 集成

这是一个将 Model Context Protocol (MCP) 服务与 Mem0 集成的模板实现,为 AI Agent 提供持久记忆能力。

你可以将此项目作为参考,自行构建 MCP 服务;也可以将其作为示例提供给 AI 编码助手,并告诉它遵循此示例的结构和代码规范!

概述

本项目演示了如何构建一个 MCP 服务,使 AI Agent 能够使用语义搜索来存储、检索和搜索记忆。它是创建你自己的 MCP 服务的实用模板,仅需使用 Mem0,并提供了一个实用示例。

此实现遵循 Anthropic 制定的 MCP 服务构建最佳实践,可与任何兼容 MCP 的客户端无缝集成。

功能

该服务提供三种基本的记忆管理工具:

  1. save_memory:将任意信息存储到长期记忆中,并进行语义索引
  2. get_all_memories:检索所有已存储的记忆,获取全面的上下文
  3. search_memories:使用语义搜索查找相关记忆

前置条件

  • Python 3.12+
  • Supabase 或任意 PostgreSQL 数据库(用于记忆的向量存储)
  • 你所选大模型提供商(OpenAI、OpenRouter 或 Ollama)的 API 密钥
  • 如果将 MCP 服务作为容器运行,则需要 Docker(推荐)

安装

使用 uv
  1. 如果尚未安装 uv,请先安装:

    pip install uv
    
  2. 克隆此仓库:

    git clone https://github.com/coleam00/mcp-mem0.git
    cd mcp-mem0
    
  3. 安装依赖项:

    uv pip install -e .
    
  4. 根据 .env.example 创建 .env 文件:

    cp .env.example .env
    
  5. 在 .env 文件中配置环境变量(参见“配置”部分)

使用 Docker(推荐)
  1. 构建 Docker 镜像:

    docker build -t mcp/mem0 --build-arg PORT=8050 .
    
  2. 根据 .env.example 创建 .env 文件并配置环境变量

配置

可以在 .env 文件中配置以下环境变量:

变量描述示例
TRANSPORT传输协议(sse 或 stdio)sse
HOST使用 SSE 传输时要绑定的主机0.0.0.0
PORT使用 SSE 传输时要监听的端口8050
LLM_PROVIDER大模型提供商(openai、openrouter 或 ollama)openai
LLM_BASE_URL大模型 API 的基础 URLhttps://api.openai.com/v1
LLM_API_KEY大模型提供商的 API 密钥sk-...
LLM_CHOICE要使用的大模型gpt-4o-mini
EMBEDDING_MODEL_CHOICE要使用的嵌入模型text-embedding-3-small
DATABASE_URLPostgreSQL 连接字符串postgresql://user:pass@host:port/db

运行服务

使用 uv
SSE 传输
# Set TRANSPORT=sse in .env then:
uv run src/main.py

MCP 服务实际上会作为 API 端点运行,你可以使用下方所示的配置连接到它。

Stdio 传输

使用 stdio 时,MCP 客户端本身可以启动 MCP 服务,因此此时无需运行任何内容。

使用 Docker
SSE 传输
docker run --env-file .env -p:8050:8050 mcp/mem0

MCP 服务实际上会在容器内作为 API 端点运行,你可以使用下方所示的配置连接到它。

Stdio 传输

使用 stdio 时,MCP 客户端本身可以启动 MCP 服务容器,因此此时无需运行任何内容。

与 MCP 客户端集成

SSE 配置

使用 SSE 传输运行服务后,可以使用以下配置连接到它:

{
  "mcpServers": {
    "mem0": {
      "transport": "sse",
      "url": "http://localhost:8050/sse"
    }
  }
}

Windsurf 用户须知:请在配置中使用 serverUrl,而不是 url:

{
  "mcpServers": {
    "mem0": {
      "transport": "sse",
      "serverUrl": "http://localhost:8050/sse"
    }
  }
}

n8n 用户须知:请使用 host.docker.internal,而不是 localhost,因为 n8n 需要访问自身容器外部的主机:

因此,MCP 节点中的完整 URL 应为:http://host.docker.internal:8050/sse

如果使用的端口不是默认的 8050,请务必更新端口。

使用 Stdio 的 Python 配置

将此服务添加到 Claude Desktop、Windsurf 或其他 MCP 客户端的配置中:

{
  "mcpServers": {
    "mem0": {
      "command": "your/path/to/mcp-mem0/.venv/Scripts/python.exe",
      "args": ["your/path/to/mcp-mem0/src/main.py"],
      "env": {
        "TRANSPORT": "stdio",
        "LLM_PROVIDER": "openai",
        "LLM_BASE_URL": "https://api.openai.com/v1",
        "LLM_API_KEY": "YOUR-API-KEY",
        "LLM_CHOICE": "gpt-4o-mini",
        "EMBEDDING_MODEL_CHOICE": "text-embedding-3-small",
        "DATABASE_URL": "YOUR-DATABASE-URL"
      }
    }
  }
}
使用 Stdio 的 Docker 配置
{
  "mcpServers": {
    "mem0": {
      "command": "docker",
      "args": ["run", "--rm", "-i", 
               "-e", "TRANSPORT", 
               "-e", "LLM_PROVIDER", 
               "-e", "LLM_BASE_URL", 
               "-e", "LLM_API_KEY", 
               "-e", "LLM_CHOICE", 
               "-e", "EMBEDDING_MODEL_CHOICE", 
               "-e", "DATABASE_URL", 
               "mcp/mem0"],
      "env": {
        "TRANSPORT": "stdio",
        "LLM_PROVIDER": "openai",
        "LLM_BASE_URL": "https://api.openai.com/v1",
        "LLM_API_KEY": "YOUR-API-KEY",
        "LLM_CHOICE": "gpt-4o-mini",
        "EMBEDDING_MODEL_CHOICE": "text-embedding-3-small",
        "DATABASE_URL": "YOUR-DATABASE-URL"
      }
    }
  }
}

构建自己的服务

此模板为构建更复杂的 MCP 服务提供了基础。要构建自己的服务:

  1. 使用 @mcp.tool() 装饰器创建方法,添加自己的工具
  2. 创建自己的生命周期函数,以添加所需的依赖项(客户端、数据库连接等)
  3. 根据 MCP 服务的需要,修改 utils.py 文件以添加辅助函数
  4. 也可以使用 @mcp.resource() 和 @mcp.prompt() 添加提示词和资源

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。