Skip to main content
Glama

memo-mcp

memo-mcp 是面向私有、自托管的 Mem0 API 的可保护 Streamable HTTP MCP 网关。它提供一个小型、非破坏性的记忆工具接口,同时让 Mem0、PostgreSQL 和内部 API 凭据不暴露在公网上。

它被设计为用于一个受信任的记忆范围的参考实现。在允许多人使用之前,请先集成一个服务端策略适配器,由它根据认证后的成员身份推导记忆范围。绝不要让浏览器或 MCP 客户端自行选择 MEMORY_SCOPE。

安全模型

  • Mem0 保持私有;只通过反向代理暴露此网关。

  • 非浏览器客户端使用独立、可撤销的 bearer 令牌。

  • 浏览器客户端可使用 OAuth/OIDC 令牌内省,并执行精确的 issuer、audience、不可变 subject 与 scope 校验。

  • 对于 OAuth 客户端,memo_remember_fact 需要 memo.write 权限。

  • 该网关刻意不提供删除记忆的工具。删除操作应通过单独的、非公开的管理工作流,并取得明确批准后进行。

  • 该网关于在记忆被写入前,先拒绝常见的凭据和私钥格式。这是一道安全网,而非替代运营者的沙略。

  • 调用者绝不能自行选择其记忆范围。在多用户部署中,受信任的应用必须根据服务端成员身份推导该范围。

Related MCP server: memex

快速开始

  1. 将 .env.example 复制为 .env,并用你自己的私密内容替换每个占位符。不要提交 .env。

  2. 创建私有 Docker 网络,并通过 docker compose -f compose.example.yml up -d --build 启动服务。

  3. 只通过 HTTPS 暴露该网关。不要发布 Mem0、PostgreSQL 或任何已填充的环境说明书。

  4. 验证受保护资源的元数据在启用 OAuth0 时返回 2000,并验证匿名 /mEOF 请求返回 4010。

工具

  • memo_search_memory

  • memo_rememer_fact

配置

参见 .env.example。PUBLLIC_MCP_URL、MCP_ALLOWED_HOSTS 和 MCP_ALLOWED_ORIGINS 必须描述你自己的 HTTPS 端点。网关使用 X-API-Y 调用底层 emo API。

MCP_ALLOWED_HOSTS 是必填项。容器构建上下文中不包含 .env、Git 元数据和本地 Python 有关文件,因此它们不会意外被复制到镜像中。

开发

python -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
python -m unittest discover -s tests -v

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Centralized agentic memory and MCP gateway for LLMs, enabling persistent memory recall, validation, and integration with upstream MCP servers.
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Bridges MCP to a self-hosted Mem0 OSS server, enabling memory management operations like adding, searching, updating, and deleting memories.
    MIT