使用说明(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与计算