首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
servers2025-05-2633分享
github
一个使用本地知识图谱的持久内存基本实现的MCP server。这使得Claude能够在聊天中记住关于用户的信息。
By modelcontextprotocol
2025-05-2633
github
详情内容

知识图谱记忆服务器

这是一个基于本地知识图谱的持久化内存基础实现,能让Claude在多次对话中记住用户信息。

核心概念

实体

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

  • 唯一名称(标识符)
  • 实体类型(如"人物"、"组织"、"事件")
  • 观察记录列表

示例:

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

关系

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

示例:

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

观察记录

观察记录是关于实体的离散信息片段。它们具有以下特点:

  • 以字符串形式存储
  • 附加到特定实体
  • 可独立添加或删除
  • 应保持原子性(每个观察记录包含一个事实)

示例:

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

API

工具

  • create_entities

    • 在知识图谱中创建多个新实体
    • 输入:entities(对象数组)
      • 每个对象包含:
        • name(字符串):实体标识符
        • entityType(字符串):类型分类
        • observations(字符串数组):关联观察记录
    • 忽略已存在的实体名称
  • create_relations

    • 创建实体之间的多个新关系
    • 输入:relations(对象数组)
      • 每个对象包含:
        • from(字符串):源实体名称
        • to(字符串):目标实体名称
        • relationType(字符串):主动语态的关系类型
    • 跳过重复关系
  • add_observations

    • 向现有实体添加新观察记录
    • 输入:observations(对象数组)
      • 每个对象包含:
        • entityName(字符串):目标实体
        • contents(字符串数组):要添加的新观察记录
    • 返回每个实体添加的观察记录
    • 如果实体不存在则失败
  • delete_entities

    • 删除实体及其关系
    • 输入:entityNames(字符串数组)
    • 级联删除关联关系
    • 如果实体不存在则静默操作
  • delete_observations

    • 从实体中删除特定观察记录
    • 输入:deletions(对象数组)
      • 每个对象包含:
        • entityName(字符串):目标实体
        • observations(字符串数组):要删除的观察记录
    • 如果观察记录不存在则静默操作
  • delete_relations

    • 从图中删除特定关系
    • 输入:relations(对象数组)
      • 每个对象包含:
        • from(字符串):源实体名称
        • to(字符串):目标实体名称
        • relationType(字符串):关系类型
    • 如果关系不存在则静默操作
  • read_graph

    • 读取整个知识图谱
    • 无需输入
    • 返回包含所有实体和关系的完整图谱结构
  • search_nodes

    • 基于查询搜索节点
    • 输入:query(字符串)
    • 搜索范围:
      • 实体名称
      • 实体类型
      • 观察记录内容
    • 返回匹配的实体及其关系
  • open_nodes

    • 按名称检索特定节点
    • 输入:names(字符串数组)
    • 返回:
      • 请求的实体
      • 请求实体之间的关系
    • 静默跳过不存在的节点

与Claude Desktop配合使用

设置

将以下内容添加到你的claude_desktop_config.json中:

Docker

{
  "mcpServers": {
    "memory": {
      "command": "docker",
      "args": ["run", "-i", "-v", "claude-memory:/app/dist", "--rm", "mcp/memory"]
    }
  }
}

NPX

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ]
    }
  }
}

使用自定义设置的NPX

服务器可以通过以下环境变量进行配置:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ],
      "env": {
        "MEMORY_FILE_PATH": "/path/to/custom/memory.json"
      }
    }
  }
}
  • MEMORY_FILE_PATH:内存存储JSON文件的路径(默认:服务器目录中的memory.json

VS Code安装说明

要快速安装,请使用下面的任一一键安装按钮:

使用NPX在VS Code中安装 在VS Code Insiders中使用NPX安装

在VS Code中使用Docker安装 在VS Code Insiders中使用Docker安装

对于手动安装,请将以下JSON块添加到VS Code的用户设置(JSON)文件中。你可以通过按Ctrl + Shift + P并输入Preferences: Open Settings (JSON)来执行此操作。

或者,你可以将其添加到工作区中的.vscode/mcp.json文件中。这将允许你与他人共享配置。

注意:在.vscode/mcp.json文件中不需要mcp键。

NPX

{
  "mcp": {
    "servers": {
      "memory": {
        "command": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-memory"
        ]
      }
    }
  }
}

Docker

{
  "mcp": {
    "servers": {
      "memory": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "-v",
          "claude-memory:/app/dist",
          "--rm",
          "mcp/memory"
        ]
      }
    }
  }
}

系统提示

使用记忆的提示取决于使用场景。更改提示将帮助模型确定创建记忆的频率和类型。

以下是一个用于聊天个性化的示例提示。你可以在Claude.ai项目的"自定义指令"字段中使用此提示。

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

1. 用户识别:
   - 你应该假设你正在与default_user交互
   - 如果你尚未识别default_user,请主动尝试识别。

2. 记忆检索:
   - 始终以"正在回忆..."开始你的聊天,并从你的知识图谱中检索所有相关信息
   - 始终将你的知识图谱称为你的"记忆"

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

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

构建

Docker:

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

许可证

此MCP服务器根据MIT许可证授权。这意味着你可以在MIT许可证的条款和条件下自由使用、修改和分发该软件。有关详细信息,请参阅项目存储库中的LICENSE文件。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档