Knowledge Graph Memory Server

Knowledge Graph Memory Server

镜子 (jìng zi)

MCP-Mirror

研究与数据
访问服务器

README

知识图谱记忆服务器

这是一个使用本地知识图谱实现的持久化记忆的基本实现。它可以让 Claude 记住用户在聊天中的信息,并通过课程系统从过去的错误中学习。

核心概念

实体

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

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

示例:

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

关系

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

示例:

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

观察

观察是关于实体的离散信息片段。它们是:

  • 存储为字符串
  • 附加到特定实体
  • 可以独立添加或删除
  • 应该是原子性的(每个观察一个事实)

示例:

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

课程

课程是特殊的实体,用于捕获关于错误及其解决方案的知识。每个课程都有:

  • 一个唯一的名称(标识符)
  • 错误模式信息(类型、消息、上下文)
  • 解决方案步骤和验证
  • 成功率跟踪
  • 环境上下文
  • 元数据(严重性、时间戳、频率)

示例:

{
  "name": "NPM_VERSION_MISMATCH_01",
  "entityType": "lesson",
  "observations": [
    "当使用不兼容的包版本时发生错误",
    "特别影响 Windows 环境",
    "解决方案需要版本锁定"
  ],
  "errorPattern": {
    "type": "dependency",
    "message": "找不到包 @shadcn/ui",
    "context": "包安装"
  },
  "metadata": {
    "severity": "high",
    "environment": {
      "os": "windows",
      "nodeVersion": "18.x"
    },
    "createdAt": "2025-02-13T13:21:58.523Z",
    "updatedAt": "2025-02-13T13:22:21.336Z",
    "frequency": 1,
    "successRate": 1.0
  },
  "verificationSteps": [
    {
      "command": "pnpm add shadcn@latest",
      "expectedOutput": "成功安装 shadcn",
      "successIndicators": ["added shadcn"]
    }
  ]
}

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

课程管理工具

  • create_lesson

    • 从错误及其解决方案创建一个新课程
    • 输入:lesson(对象)
      • 包含:
        • name(字符串):唯一标识符
        • entityType(字符串):必须为“lesson”
        • observations(字符串数组):关于错误和解决方案的注释
        • errorPattern(对象):错误详细信息
          • type(字符串):错误类别
          • message(字符串):错误消息
          • context(字符串):错误发生的位置
          • stackTrace(字符串,可选):堆栈跟踪
        • metadata(对象):附加信息
          • severity(“low” | “medium” | “high” | “critical”)
          • environment(对象):系统详细信息
          • frequency(数字):遇到次数
          • successRate(数字):解决方案成功率
        • verificationSteps(数组):解决方案验证
          • 每个步骤包含:
            • command(字符串):要采取的行动
            • expectedOutput(字符串):预期结果
            • successIndicators(字符串数组):成功标记
    • 自动初始化元数据时间戳
    • 验证所有必需字段
  • find_similar_errors

    • 查找类似的错误及其解决方案
    • 输入:errorPattern(对象)
      • 包含:
        • type(字符串):错误类别
        • message(字符串):错误消息
        • context(字符串):错误上下文
    • 返回按成功率排序的匹配课程
    • 使用模糊匹配来查找错误消息
  • update_lesson_success

    • 更新课程的成功跟踪
    • 输入:
      • lessonName(字符串):要更新的课程
      • success(布尔值):解决方案是否有效
    • 更新:
      • 成功率(加权平均)
      • 频率计数器
      • 上次更新时间戳
  • get_lesson_recommendations

    • 获取当前上下文的相关课程
    • 输入:context(字符串)
    • 搜索范围:
      • 错误类型
      • 错误消息
      • 错误上下文
      • 课程观察
    • 返回按以下内容排序的课程:
      • 上下文相关性
      • 成功率
    • 包括完整的解决方案详细信息

文件管理

服务器现在处理两种类型的文件:

  • memory.json:存储基本实体和关系
  • lesson.json:存储包含错误模式的课程实体

如果文件超过 1000 行,将自动拆分以保持性能。

Cursor MCP 客户端设置

要将此记忆服务器与 Cursor MCP 客户端集成,请按照以下步骤操作:

  1. 克隆存储库:
git clone [repository-url]
cd [repository-name]
  1. 安装依赖项:
pnpm install
  1. 构建项目:
pnpm build
  1. 配置服务器:
  • 找到已构建服务器文件的完整路径:/path/to/the/dist/index.js
  • 使用 Node.js 启动服务器:node /path/to/the/dist/index.js
  1. 在 Cursor 中激活:
  • 使用键盘快捷键 Ctrl+Shift+P
  • 键入“reload window”并选择它
  • 等待几秒钟以激活 MCP 服务器
  • 提示时选择 stdio 类型

现在,记忆服务器应该已与您的 Cursor MCP 客户端集成并可以使用。

与 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

系统提示

利用记忆的提示取决于用例。更改提示将有助于模型确定创建的记忆的频率和类型。

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

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

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

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

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

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

构建

Docker:

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

许可证

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

新工具

  • create_lesson

    • 从错误及其解决方案创建一个新课程
    • 输入:lesson(对象)
      • 包含错误模式、解决方案步骤和元数据
      • 自动跟踪创建时间和更新
      • 验证解决方案步骤是否完整
  • find_similar_errors

    • 查找类似的错误及其解决方案
    • 输入:errorPattern(对象)
      • 包含错误类型、消息和上下文
      • 返回按成功率排序的匹配课程
      • 包括相关的解决方案和验证步骤
  • update_lesson_success

    • 更新课程的成功跟踪
    • 输入:
      • lessonName(字符串):要更新的课程
      • success(布尔值):解决方案是否有效
    • 更新成功率和频率指标
  • get_lesson_recommendations

    • 获取当前上下文的相关课程
    • 输入:context(字符串)
    • 返回按相关性和成功率排序的课程
    • 包括完整的解决方案详细信息和验证步骤

非常感谢此存储库的所有者提供的基础代码,我使用课程和文件管理对其进行了增强

非常感谢! https://github.com/modelcontextprotocol/servers jerome3o-anthropic https://github.com/modelcontextprotocol/servers/tree/main/src/memory

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python