首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
Memo0 MCP服务器2026-05-10210分享添加福利群:解决AI开发者的「MCP实战痛点」
MCP-Mem0 是一个与 Mem0 集成的模型上下文协议(MCP)服务器模板,旨在为 AI 代理提供长期记忆功能。通过语义搜索,AI 代理可以存储、检索和搜索记忆,增强其上下文理解能力。该服务器提供了三个核心功能:`save_memory` 用于存储信息,`get_all_memories` 用于检索所有记忆,`search_memories` 用于查找相关记忆。它支持多种 LLM 提供商(如 OpenAI、OpenRouter 或 Ollama),并可通过 Docker 或 Python 运行。该模板遵循最佳实践,帮助开发者构建自定义 MCP 服务器,适用于各种 MCP 兼容客户端。
By coleam00
2026-05-10210
github
详情内容

MCP-Mem0: AI 代理的长期记忆

Mem0 和 MCP 集成

这是一个与 Mem0 集成的 模型上下文协议 (MCP) 服务器的模板实现,旨在为 AI 代理提供持久记忆功能。

你可以将其作为参考,自行构建你的 MCP 服务器,或者将其作为示例提供给 AI 编码助手,并告诉它遵循此示例以确保结构和代码的正确性!

概述

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

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

功能

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

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

前提条件

  • Python 3.12+
  • Supabase 或任何 PostgreSQL 数据库(用于记忆的向量存储)
  • 所选 LLM 提供商的 API 密钥(OpenAI、OpenRouter 或 Ollama)
  • 如果将 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 传输

# 在 .env 中设置 TRANSPORT=sse 然后:
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,请确保更新端口。

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 文件以获取你需要的任何辅助函数
  4. 还可以随意使用 @mcp.resource()@mcp.prompt() 添加提示和资源
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档