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

MCP-Mem0: Long-Term Memory for AI Agents

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

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

MCP-Mem0 是一个基于 Mem0 的 MCP 服务模板,为 AI Agent 提供持久化的长期记忆能力。项目使用 Python 实现,支持语义搜索,适合作为构建自定义 MCP 服务的参考。它既可直接部署使用,也可作为 AI 编码助手的示例代码。

主要功能

  1. 01保存、获取全部与语义搜索记忆三类工具
  2. 02基于 Mem0 与 PostgreSQL 或 Supabase 存储向量
  3. 03支持 SSE 与 stdio 两种传输方式
  4. 04提供 uv 与 Docker 两种运行方式
  5. 05可作为 Python 构建自定义 MCP 服务的模板

适用场景

  1. 01为 AI Agent 提供跨会话的长期记忆
  2. 02作为 Python MCP 服务的开发起点
  3. 03让 AI 编码助手参照该结构生成新的 MCP 服务

MCP 相关

该服务向 MCP 客户端暴露 save_memory、get_all_memories 与 search_memories 三个工具,客户端可通过 SSE 或 stdio 连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。