首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
内存网格2026-10-23202分享添加福利群:解决AI开发者的「MCP实战痛点」
该项目基于MCP服务器仓库中的知识图谱内存服务器,并保留其核心功能。
By CheMiguel23
2026-10-23202
github
详情内容

MemoryMesh

发布版本 smithery徽章 TypeScript 许可证: MIT GitHub星标

MemoryMesh是一个专为AI模型设计的知识图谱服务器,专注于文本RPG和互动叙事领域。它帮助AI在对话过程中保持一致、结构化的记忆,从而实现更丰富、更动态的交互体验。

该项目基于MCP服务器仓库中的知识图谱记忆服务器,并保留了其核心功能。

MemoryMesh MCP服务器

重要提示

自v0.2.7版本起,模式文件默认存储位置已更改为dist/data/schemas。 此位置未来预计不会更改,但如果您是从旧版本升级,请确保将您的模式文件移动到新位置。

快速链接

概述

MemoryMesh是一个本地知识图谱服务器,可帮助您为AI模型构建和管理结构化信息。它特别适合文本RPG游戏,但其灵活的设计也适用于各种应用场景,包括社交网络模拟、组织规划或任何涉及结构化数据的场景。

核心功能

  • 基于动态模式的工具: 使用模式定义数据结构,MemoryMesh会自动生成用于添加、更新和删除数据的工具。
  • 直观的模式设计: 创建指导AI生成和连接节点的模式,使用必填字段、枚举类型和关系定义。
  • AI指导元数据: 使用元数据提供上下文和结构,帮助AI理解数据的含义和关系。
  • 关系处理: 在模式中定义关系,鼓励AI在相关数据点(节点)之间创建连接(边)。
  • 信息反馈: 向AI提供错误反馈,使其能够从错误中学习并改进与知识图谱的交互。
  • 事件支持: 事件系统跟踪操作,提供关于知识图谱如何被修改的洞察。

节点

节点代表知识图谱中的实体或概念。每个节点包含:

  • name:唯一标识符。
  • nodeType:节点类型(例如,npc、artifact、location),由您的模式定义。
  • metadata:提供节点描述性细节的字符串数组。
  • weight:(可选)表示关系强度的数值,介于0和1之间,默认值为1。

示例节点:

    {
      "name": "Aragorn",
      "nodeType": "player_character",
      "metadata": [
        "种族: 人类",
        "职业: 游侠",
        "技能: 追踪, 剑术",
        "隶属: 护戒同盟"
      ]
    }

边

边代表节点之间的关系。每条边包含:

  • from:源节点的名称。
  • to:目标节点的名称。
  • edgeType:关系类型(例如,owns、located_in)。
{
  "from": "Aragorn",
  "to": "Andúril",
  "edgeType": "owns"
}

模式

模式是MemoryMesh的核心。它们定义了数据的结构并驱动工具的自动生成功能。

模式文件位置

将您的模式文件(.schema.json)放置在构建的MemoryMesh项目的dist/data/schemas目录中。MemoryMesh在启动时会自动检测并处理这些文件。

模式结构

文件名:[name].schema.json。例如,定义'npc'的模式文件名为add_npc.schema.json。

  • name - 模式和内存中节点类型的标识符。重要:模式的名称必须以add_开头才能被识别。
  • description - 用作add_<name>工具的描述,为AI提供上下文。(delete和update工具有通用描述)
  • properties - 每个属性包括其类型、描述和附加约束。
    • property
      • type - 支持的值是string或array。
      • description - 帮助AI理解实体的用途。
      • required - 布尔值。如果为true,AI必须在创建节点时提供此属性。
      • enum - 字符串数组。如果存在,AI必须从给定选项中选择一个。
      • relationship - 定义与另一个节点的连接。如果属性是必需的并且具有关系,AI将始终创建节点和相应的边。
        • edgeType - 要创建的关系类型。
        • description - 帮助AI理解关系的用途。
  • additionalProperties - 布尔值。如果为true,允许AI添加超出必填或可选定义的额外属性。
示例模式(add_npc.schema.json):
{
  "name": "add_npc",
  "description": "向记忆中添加NPC的模式" ,
  "properties": {
    "name": {
      "type": "string",
      "description": "NPC的唯一标识符",
      "required": true
    },
    "race": {
      "type": "string",
      "description": "NPC的种族或种类",
      "required": true,
      "enum": [
        "人类",
        "精灵",
        "矮人",
        "兽人",
        "地精"
      ]
    },
    "currentLocation": {
      "type": "string",
      "description": "NPC的当前位置",
      "required": true,
      "relationship": {
        "edgeType": "located_in",
        "description": "NPC的当前位置"
      }
    }
  },
  "additionalProperties": true
}

基于此模式,MemoryMesh会自动创建:

  • add_npc:用于添加新的NPC节点。
  • update_npc:用于修改现有的NPC节点。
  • delete_npc:用于删除NPC节点。

MemoryMesh包含11个为文本RPG设计的预构建模式,为游戏开发提供了现成的基础。

SchemaManager工具

MemoryMesh包含一个SchemaManager工具,用于简化模式的创建和编辑。它提供了一个可视化界面,使您无需直接编写JSON即可轻松定义数据结构。

image

动态工具

MemoryMesh通过动态工具简化了与知识图谱的交互。这些工具不是手动编写的,而是直接从您的模式定义自动生成的。这意味着当您使用模式定义数据结构时,MemoryMesh会智能地创建一组针对该特定数据结构量身定制的工具。

可以这样理解: 您提供一个蓝图(模式),MemoryMesh会自动构建基于该蓝图构建、修改和删除元素所需的工具。

背后的工作原理是什么?

MemoryMesh有一个智能系统,可以读取您的模式定义。它分析您定义的结构,包括实体的属性及其关系。基于此分析,它会为每个实体类型自动创建一组工具:

  • add_<entity>: 用于创建实体新实例的工具。
  • update_<entity>: 用于修改现有实体的工具。
  • delete_<entity>: 用于删除实体的工具。

然后,这些工具通过MemoryMesh内的中央枢纽提供,确保它们可以被任何连接的客户端或AI轻松访问和使用。

本质上,MemoryMesh的动态工具系统提供了一种强大而高效的方式来管理您的知识图谱,让您可以专注于应用程序的内容和逻辑,而不是数据操作的基础机制。

内存文件

默认情况下,数据存储在dist/data/memory.json中的JSON文件中。

内存查看器

内存查看器是一个独立的工具,旨在帮助您可视化和检查MemoryMesh管理的知识图谱的内容。它提供了一个用户友好的界面,用于探索节点、边及其属性。

主要功能:
  • 图形可视化:以交互式节点链接图的形式查看知识图谱。
  • 节点检查:选择节点以查看其nodeType、元数据和连接的边。
  • 边探索:检查节点之间的关系,包括edgeType和方向。
  • 搜索和过滤:快速查找特定节点或按类型过滤。
  • 表格视图:允许您轻松查找和检查特定节点和边,或一次性查看所有内容。
  • 原始JSON视图:允许您查看内存文件中的原始JSON数据。
  • 统计面板:提供关于知识图谱的关键指标和信息:总节点数、总边数、节点类型和边类型。
  • 搜索和过滤:允许您按节点类型或边类型过滤,并选择是否显示节点、边或两者。
访问内存查看器

内存查看器是一个独立的网络应用程序。内存查看器讨论

使用内存查看器
  • 选择内存文件:在内存查看器中,点击"选择内存文件"按钮。
  • 选择文件:导航到您的MemoryMesh项目目录并选择memory.json文件(默认位于dist/data/memory.json)。
  • 探索:内存查看器将加载并显示您的知识图谱内容。

记忆流

image

提示

为了获得最佳效果,请使用Claude的"项目"功能并使用自定义指令。以下是一个您可以开始的提示示例:

您是一个帮助管理文本RPG知识图谱的AI助手。您可以访问以下工具:add_npc、update_npc、delete_npc、add_location、update_location、delete_location以及其他用于管理游戏世界的工具。

当用户提供输入时,首先使用您的可用工具更新知识图谱。然后,以适合文本RPG的方式做出响应。

您还可以直接在聊天中指示AI执行特定操作。

尝试不同的提示,找到最适合您用例的方法!

示例

  1. 一个简单示例带有自定义指令。
  2. 一个为了示例而创建的示例,带有可视化 (不是功能的一部分)

添加几个城市,一些NPC,城市周围的一些地点供探索,隐藏一两件神器

image

安装

通过Smithery安装

要通过Smithery为Claude Desktop自动安装MemoryMesh:

npx -y @smithery/cli install memorymesh --client claude

先决条件

  • Node.js: 版本18或更高。您可以从nodejs.org下载。
  • npm: 通常随Node.js一起提供。
  • Claude for Desktop: 确保您已从claude.ai/download安装了最新版本。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/CheMiguel23/memorymesh.git
    cd memorymesh
    
  2. 安装依赖项:

    npm install
    
  3. 构建项目:

    npm run build
    

    此命令将TypeScript代码编译为dist目录中的JavaScript,并将示例模式和数据文件复制到其中。

  4. 验证文件复制(可选):

    • 构建过程应自动将data文件夹复制到dist。
    • 检查dist/data是否存在并包含.json文件。还要验证dist/data/schemas是否存在并包含.schema.json文件。
  5. 配置Claude Desktop:

    打开您的Claude Desktop配置文件:

    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
    • 在mcpServers部分添加一个memorymesh条目。您可以选择以下配置选项之一:
    "mcpServers": {
      "memorymesh": {
        "command": "node", 
        "args": ["/ABSOLUTE/PATH/TO/YOUR/PROJECT/memorymesh/dist/index.js"]
      }
    }
    
    • 将/ABSOLUTE/PATH/TO/YOUR/PROJECT/替换为您的memorymesh项目目录的实际绝对路径。
    • 示例(macOS):
      "command": "node",
      "args": ["/Users/yourusername/Projects/memorymesh/dist/index.js"]
      
    • 示例(Windows):
      "command": "node",
      "args": ["C:\\Projects\\memorymesh\\dist\\index.js"]
      
  6. 重启Claude Desktop: 完全重启Claude Desktop以使更改生效。

验证安装

  1. 启动Claude Desktop。
  2. 打开一个新聊天。
  3. 查看右上角的MCP插件图标。如果它在那里,您的配置可能是正确的。
  4. 点击图标。您应该在连接的服务器列表中看到"memorymesh"。
  5. 点击图标。如果您看到列出的工具(例如,add_npc、update_npc等),您的服务器正在工作并正确暴露工具。

更新

在更新之前,请确保备份您的dist/data目录,以避免丢失内存数据。

故障排除

  • 服务器未出现在Claude中:

    • 仔细检查claude_desktop_config.json中的路径。确保它们是绝对路径且正确。
    • 验证dist目录是否存在并包含编译的JavaScript文件,包括index.js。
    • 检查Claude Desktop日志中的错误:
      • macOS:~/Library/Logs/Claude/mcp-server-memorymesh.log(和mcp.log)
      • Windows:(可能在%AppData%\Claude下的Logs文件夹中)
  • 工具未显示:

    • 确保您的npm run build命令没有错误地完成。
    • 验证您的模式文件是否正确放置在dist/data/schemas中,并遵循正确的命名约定(add_[entity].schema.json)。
    • 检查服务器的控制台输出或日志以查找初始化期间的任何错误。

高级配置

MemoryMesh提供了几种超出基本设置的自定义其行为的方法:

变量

您可以在/config/config.ts中覆盖默认设置

  • MEMORY_FILE:指定用于存储知识图谱数据的JSON文件的路径。(默认值:dist/data/memory.json)
  • SCHEMAS_DIR:模式文件目录的路径。(默认值:dist/data/schemas/memory.json)

限制

  1. 节点删除: AI可能不愿意从知识图谱中删除节点。如果需要,通过提示鼓励它。

贡献

欢迎贡献、反馈和想法! 这个项目是一个将结构化数据与AI推理能力集成的个人探索。欢迎贡献、反馈和想法以推动它进一步发展或激发新项目。

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