简短答案
将外部记忆层附加到您的自定义 MCP 服务器,而不是将状态存储在进程内部。创建一个 MemoryLake 项目,生成一个 MCP 服务器端点,并通过在处理程序中调用带有 Secret 的 Bearer 令牌的端点 URL 来读取或写入上下文——记忆在每个会话中持久存在,您服务器的任何实例都可以访问相同的存储。
为什么自定义 MCP 服务器中的进程内记忆不够用
将记忆添加到您编写的服务器的最快方法是使用模块级字典或与代码捆绑在一起的简单 SQLite 文件。这在开发中有效,但在第一个边缘案例中模型会崩溃:重启进程时字典会清空;部署两个实例时它们会分歧;将项目交给团队成员时,他们将从没有历史记录的空白状态开始。
更深层次的问题是,进程内存储混淆了两个职责。服务器是请求处理程序——它的工作是解释工具调用并返回结果。当它还拥有状态持久性时,您最终需要在应专注于工具逻辑的代码中管理架构迁移、备份计划和导出管道。
外部化记忆可以清晰地分离这些关注点。您的处理程序保持精简:调用记忆层,结合返回的上下文,执行工具逻辑,选择性地写回新事实。记忆层处理持久性、版本控制、检索和访问控制。您可以在重启和实例之间获得持久的历史,而无需向服务器的代码库添加基础设施。
开始之前
您需要:
- 一个免费的 MemoryLake 账户
- 一个您编写并可以修改的自定义 MCP 服务器代码库
- 您希望持久化的上下文——用户偏好、项目规则或参考文件(PDF、Word、Excel、PowerPoint、Markdown 或图像)
如何将长期记忆添加到自定义 MCP 服务器(逐步)
第 1 步:构建记忆项目
登录 MemoryLake 并打开 项目管理。点击 创建项目,并为其命名,以映射到您服务器的域——例如,“自定义服务器记忆”或每个租户的标签。打开 文档驱动器,使用 上传 推送任何您的服务器处理程序应该能够读取的参考文件。然后打开 文档标签 → 添加文档 → 确认 将它们附加到项目。对于规则、约束或用户事实,打开 记忆标签 → 添加记忆,输入条目,然后点击 保存。

第 2 步:生成 MCP 服务器端点
导航到 MCP 服务器标签 → 添加 MCP 服务器。给它一个描述性的标签——例如,“自定义 MCP 后端”——然后点击 生成。MemoryLake 返回三个值:Key ID、Secret 和 Endpoint URL。立即复制 Secret;它只显示一次,关闭面板后无法检索。

第 3 步:通过 MCP 将您的服务器连接到 MemoryLake
在您自定义服务器的 MCP 配置中,粘贴 Endpoint URL 并将 Secret 设置为 Bearer 令牌。您的处理程序现在可以在工具调用开始时调用端点以读取上下文,或在结束时写入新事实。由于身份验证是按请求进行的,您服务器的每个实例都可以访问相同的项目,记忆在运行多少个副本时都能一致地累积。请参阅 MCP 设置指南 以获取完整的配置参考。[免费试用 MemoryLake]

自定义服务器内置存储与 MemoryLake
| 维度 | 进程内/捆绑存储 | MemoryLake |
|---|---|---|
| 跨会话持久 | 否(重启时清除) | 是 |
| 在其他 AI 中工作 | 否 | 是——ChatGPT、Claude、Gemini、任何 MCP 工具 |
| 容量 | 受本地磁盘/记忆限制 | 无限项目和文档 |
| 版本控制 | 否 | 是(Git 风格历史) |
| 数据所有权 | 不稳定,无导出保证 | 您拥有它(AES-256,随时导出/删除) |
| 基准 | — | LoCoMo #1 — 94.03% |
提示与最佳实践
- 每个逻辑租户或工作区范围内一个项目,以便您的服务器可以通过在请求中传递项目标识符来路由读取,保持不同用户的记忆隔离。
- 在记忆条目中存储结构化规则和事实,并在文档驱动器中存储较大的参考文档——短条目在工具处理程序的往返中检索更快。
- 在处理程序开始时读取上下文,在结束时写入更新的事实;这使每次调用自包含,并允许任何实例处理任何请求而无需本地状态。
- 定期轮换 Bearer 令牌,通过撤销旧密钥并在 MCP 服务器标签中生成新密钥来实现——在您的部署配置中更新并重新部署,无需排空会话。
故障排除
- 处理程序返回过时或缺失的上下文: 验证您的服务器配置中的 Endpoint URL 指向正确的项目,并且没有被之前构建的本地环境变量覆盖。
- 身份验证被拒绝,错误代码 401: Bearer 令牌必须与复制的 Secret 值完全相同,而不是 Key ID。仔细检查在您的 MCP 配置中设置的值。
- 启动时出现“未找到 Secret”错误: Secret 只显示一次。打开 MCP 服务器标签,撤销现有密钥,然后点击生成以生成新的 Key ID、Secret 和 Endpoint URL。
给您的自定义服务器一个它能保持的记忆
您的服务器处理工具逻辑;MemoryLake 处理所有需要持续超过单个请求的内容。