Back to MCP directory
publicPublicdnsLocal runtime

optimized-memory-mcp-server

一个基于知识图谱的Python内存MCP服务器,使用SQLite作为后端,实现跨会话的持久化记忆存储与管理。

article

README

🚀 优化内存 MCP 服务器

本项目旨在测试和演示 Claude AI 的编程能力,以及展示良好的 AI 工作流程和提示设计。它是一个基于 Python 的本地知识图谱记忆 MCP 服务器(官方实现采用 Java 编写)的分支版本,使用 SQLite 作为后端数据库。

🚀 快速开始

在聊天开始时,Claude 会主动检索所有相关记忆,并以“正在回忆...”开头提示用户。在整个对话过程中,Claude 会注意收集新信息,并将其更新到知识图谱中。

✨ 主要特性

知识图谱内存服务器

实现了基本的知识图谱持久化内存功能,让 Claude 能够记住用户在聊天中的信息。

📦 安装指南

使用 Docker 进行构建:

docker build -t mcp/memory -f src/memory/Dockerfile .

💻 使用示例

基础用法

建议根据具体的使用场景调整提示内容,以便模型决定记忆的频率和类型。以下是一个用于聊天个性化的示例提示:

按照以下步骤进行每次交互:

1. 用户识别:
   - 您应假设与 default_user 对话
   - 如果尚未确定 default_user,请主动尝试识别。

2. 记忆检索:
   - 总是从“正在回忆...”开始,从知识图谱中检索所有相关信息。
   - 将知识图谱称为您的“记忆”。

3. 记忆内容:
   - 在与用户交流时,注意收集以下类别的新信息:
     a) 基本人格(年龄、性别、位置、职位、教育水平等)
     b) 行为(兴趣、习惯等)
     c) 偏好(沟通风格、首选语言等)
     d) 目标(目标、目标、抱负等)
     e) 关系(个人和专业关系,直到三度分离)

4. 更新记忆:
   - 如果在交互中收集到任何新信息,请按照以下方式更新您的记忆:
     a) 为反复出现的组织、人物和重要事件创建实体
     b) 使用关系将它们与当前实体连接
     c) 将有关它们的事实存储为观察结果

📚 详细文档

核心概念

实体

实体是知识图谱中的主要节点。每个实体都有:

  • 唯一名称(标识符)
  • 实体型(例如,“人”,“组织”,“事件”)
  • 观察结果列表

示例:

{
  "name": "John_Smith",
  "entityType": "person",
  "observations": ["会说流利的西班牙语"]
}

关系

关系定义了实体之间的定向连接。它们始终以主动语态存储,并描述实体如何相互作用或关联。

示例:

{
  "from": "John_Smith",
  "to": "Anthropic",
  "relationType": "works_at"
}

观察结果

观察结果是对实体的离散信息片段。它们是:

  • 以字符串形式存储
  • 附加到特定实体
  • 可以独立添加或删除
  • 应该是原子化的(每个观察结果表示一个事实)

示例:

{
  "entityName": "John_Smith",
  "observations": [
    "会说流利的西班牙语",
    "2019年毕业",
    "喜欢早晨会议"
  ]
}

API

工具

实体管理
  • getEntities(): 获取所有实体。
  • addEntity(entity): 添加新实体。
  • updateEntity(entityId, updates): 更新指定实体的属性。
关系管理
  • getRelations(): 获取所有关系。
  • addRelation(relation): 添加新关系。
  • removeRelation(relationId): 删除指定关系。
观察结果管理
  • getObservations entityId: 获取指定实体的所有观察结果。
  • addObservation(entityId, observation): 添加新的观察结果到指定实体。
  • updateObservation(observationId, updates): 更新指定的观察结果。

📄 许可证

此 MCP 服务器根据 MIT License 分发。这意味着您可以自由地使用、修改和分发软件,但需遵守 MIT 许可证的条款和条件。有关更多详细信息,请参阅项目存储库中的 LICENSE 文件。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client