返回市场
MCP知识图谱

MCP知识图谱

作者:itseasy2156 星标更新:2025-08-08

项目介绍

知识图谱内存服务器

smithery 徽章

通过本地知识图谱实现的一种改进型持久化内存,具有可自定义的内存路径。

这使得Claude能够在不同聊天中记住用户的信息。

<a href="https://glama.ai/mcp/servers/@itseasy21/mcp-knowledge-graph"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=92247412,3703530384&fm=3081&app=3081&f=PNG?w=760&h=400" alt="知识图谱内存服务器 MCP服务器" /> </a>

[!NOTE] 这是原始内存服务器的一个分支,并且旨在不使用临时内存npx安装方法。

服务器名称

mcp-knowledge-graph

服务器名称截图

读取函数

核心概念

实体

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

  • 唯一的名字(标识符)
  • 实体类型(例如,“人”,“组织”,“事件”)
  • 观察列表
  • 创建日期和版本追踪

版本追踪功能有助于维护知识随时间演变的历史背景。

示例:

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

关系

关系定义了实体之间的有向连接。它们总是以主动语态存储,并描述实体之间如何互动或相互关联。每个关系包括:

  • 源实体和目标实体
  • 关系类型
  • 创建日期和版本信息

这种版本控制系统有助于跟踪实体间的关系如何随时间演变。

示例:

{
  "from": "John_Smith",
  "to": "Anthropic",
  "relationType": "在...工作"
}

观察

观察是对实体的具体信息片段。它们:

  • 存储为字符串
  • 附属于特定实体
  • 可独立添加或移除
  • 应该是原子性的(每条观察只包含一个事实)

示例:

{
  "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(字符串数组)
    • 返回:
      • 请求的实体
      • 请求实体之间的关系
    • 静默跳过不存在的节点

使用Cursor、Cline或Claude Desktop

设置

将以下内容添加到您的mcp.json或claude_desktop_config.json中:

{
    "mcpServers": {
      "memory": {
        "command": "npx",
        "args": [
          "-y",
          "@itseasy21/mcp-knowledge-graph"
        ],
        "env": {
          "MEMORY_FILE_PATH": "/path/to/your/projects.jsonl"
        }
      }
    }
  }

通过Smithery安装

要通过Smithery自动安装Claude Desktop的知识图谱内存服务器:

npx -y @smithery/cli install @itseasy21/mcp-knowledge-graph --client claude

自定义内存路径

您可以按两种方式指定内存文件的自定义路径:

  1. 使用命令行参数:
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@itseasy21/mcp-knowledge-graph", "--memory-path", "/path/to/your/memory.jsonl"]
    }
  }
}
  1. 使用环境变量:
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@itseasy21/mcp-knowledge-graph"],
      "env": {
        "MEMORY_FILE_PATH": "/path/to/your/memory.jsonl"
      }
    }
  }
}

如果没有指定路径,默认为服务器安装目录下的memory.jsonl。

系统提示

利用内存的提示取决于具体用例。更改提示可以帮助模型确定创建记忆的频率和类型。

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

遵循以下步骤进行每次交互:

1. 用户识别:
   - 您应假设正在与default_user交互
   - 如果尚未识别default_user,请积极尝试识别。

2. 记忆检索:
   - 总是在开始聊天时仅说“回忆中...”并从您的知识图谱中检索所有相关信息
   - 总是将您的知识图谱称为您的“记忆”

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

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

许可证

此MCP服务器采用MIT许可证。这意味着您可以自由地使用、修改和分发软件,但需遵守MIT许可证的条款和条件。更多详情,请参见项目仓库中的LICENSE文件。 </中文翻译>