M

MCP持久记忆服

@coleam00/mcp-mem0
1 Stars 417 次浏览 coleam00 更新于 2026-08-23

一种模型上下文协议服务器,通过Mem0为AI代理提供持久内存功能,使它们能够存储、检索和语义搜索记忆。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "mem0": {
      "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"
      ],
      "command": "docker",
      "env": {
        "DATABASE_URL": "YOUR-DATABASE-URL",
        "EMBEDDING_MODEL_CHOICE": "text-embedding-3-small",
        "LLM_API_KEY": "YOUR-API-KEY",
        "LLM_BASE_URL": "https://api.openai.com/v1",
        "LLM_CHOICE": "gpt-4o-mini",
        "LLM_PROVIDER": "openai",
        "TRANSPORT": "stdio"
      }
    }
  }
}

服务介绍

这是一个 Model Context Protocol (MCP) 服务器的模板实现,集成了 Mem0,为AI代理提供持久的记忆功能。

你可以将其作为构建自己的MCP服务器的参考点,或者将此示例提供给AI编码助手,并告诉它按照这个示例来组织结构和代码正确性!

概述

本项目演示了如何构建一个MCP服务器,使AI代理能够通过语义搜索存储、检索和搜索记忆。它作为一个实用模板,用于使用Mem0创建你自己的MCP服务器。

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

功能

服务器提供了三个基本的记忆管理工具:

  1. save_memory: 使用语义索引将任何信息存储在长期记忆中
  2. get_all_memories: 检索所有存储的记忆以获得全面的上下文
  3. search_memories: 使用语义搜索查找相关记忆

先决条件

  • Python 3.12+
  • Supabase 或任何 PostgreSQL 数据库(用于记忆的向量存储)
  • 为你选择的LLM提供商(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 LLM 提供者 (openai, openrouter, 或 ollama) openai
LLM_BASE_URL LLM API 的基础 URL https://api.openai.com/v1
LLM_API_KEY LLM 提供者的 API 密钥 sk-...
LLM_CHOICE 要使用的 LLM 模型 gpt-4o-mini
EMBEDDING_MODEL_CHOICE 要使用的嵌入模型 text-embedding-3-small
DATABASE_URL PostgreSQL 连接字符串 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 用户的注意事项:由于 n8n 必须从其自己的容器外部到达主机机器,请使用 host.docker.internal 代替 localhost:

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

如果您使用的是默认 8050 以外的其他端口号,请确保更新端口。

Python 使用 Stdio 配置

将此服务器添加到您的 MCP 配置中以用于 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"
      }
    }
  }
}

Docker 使用 Stdio 配置

{
  "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. 根据需要修改 utils.py 文件,为您的 MCP 服务器添加任何辅助函数。
  4. 也可以自由地使用 @mcp.resource()@mcp.prompt() 添加提示和资源。

相关 MCP 服务