使用说明(Markdown 格式简要概览):

  • 项目简介

    • 这是一个基于 MCP(Model Context Protocol)实现的内存服务端,面向 LLM 客户端提供标准化的上下文资源、工具和提示渲染能力,支持会话管理、路由决策与语义检索等核心功能。
  • 主要功能点

    • MCP 服务端:通过 STDIO 与 MCP 客户端通信,接收并响应 JSON-RPC 风格请求。
    • 11 个 MCP 工具:提供存储对话、检索记忆、列出活跃主题、获取主题历史、获取和更新用户档案、添加/查询/删除事实、归档与删除主题等能力。
    • 存储与向量检索:基于 Charm KV 的后端存储,集成向量化存储和语义检索,结合嵌入向量进行记忆候选的筛选。
    • 主题路由器(Governor):实现 4 种路由场景,按主题和关键词匹配进行对话分支管理。
    • OpenAI 集成与事实抽取:可选地通过 OpenAI 客户端进行元数据抽取、事实抽取等。
    • 异步用户画像学习(Scribe):后台异步更新用户档案,提升上下文个性化。
    • 安全与可观测性:支持优雅的关停、并发保护和错误处理。
  • 安装步骤

    • 安装与构建
      • 需要 Go 环境,克隆源码后在项目目录执行构建。
      • 构建命令示例(请按实际路径执行):go build -o bin/memory-mcp-server ./cmd/server
    • 运行方式
      • 启动 MCP 服务器(标准做法为通过 CLI 调用 memory mcp,后端通过 STDIO 与客户端通信)。
      • 示例:直接在命令行执行 memory mcp,服务器将通过 STDIO 监听并响应 MCP 客户端消息。
    • 依赖与环境
      • 如使用 OpenAI 特性,需要设置 OPENAI_API_KEY 等环境变量(OpenAI 模型可通过 MEMORY_OPENAI_MODEL 指定,例如 gpt-4o-mini)。
      • 存储层使用 Charm KV,需要 Charm 环境配置正确,默认路径按 XDG 规范保存。
  • 服务器配置(供 MCP 客户端使用的配置示例) 说明:MCP 客户端需要提供启动服务器的命令与参数,以建立与 MCP 服务器的连接。下面给出一个典型的 JSON 配置示例及字段含义。 示例配置(JSON,客户端不需要额外代码,仅供参考): { "server_name": "remember", "command": "memory", "args": ["mcp"] } 字段说明:

    • server_name:逻辑名称,用于识别 MCP 服务器(如 remember)。
    • command:启动记忆 MCP 服务器的命令。由于该实现通过 CLI 的 mcp 子命令启动,因此通常对应 memory 二进制。
    • args:传递给命令的参数。启动 MCP 服务时需使用子命令 mcp,因此应包含 ["mcp"]。 注释说明:客户端不需要连接的额外代码,只需要知道启动命令与参数即可自动建立与 MCP 服务器的连接。
  • 基本使用方法

    • 启动与运行
      • 构建后通过执行 memory mcp 启动 MCP 服务器,服务器将以 STDIO 方式与 Claude 等 MCP 客户端对接。
    • 常用操作
      • 通过 MCP 客户端调用工具,例如 store_conversation、retrieve_memory、get_user_profile 等,传入相应的参数,服务器返回标准的 JSON-RPC 响应。
    • 典型工作流
      • 客户端发送一段用户对话文本,服务端将基于路由规则决定所属的桥块(Block),存储对话、抽取事实与元数据、并在需要时异步更新用户画像。
    • 维护与扩展
      • 服务器具备优雅关机能力,异步任务(如 Scribe)在关闭时等待完成,确保数据完整性。

信息

分类

AI与计算