内存网格添加福利群:解决AI开发者的「MCP实战痛点」MemoryMesh是一个专为AI模型设计的知识图谱服务器,专注于文本RPG和互动叙事领域。它帮助AI在对话过程中保持一致、结构化的记忆,从而实现更丰富、更动态的交互体验。
该项目基于MCP服务器仓库中的知识图谱记忆服务器,并保留了其核心功能。
自v0.2.7版本起,模式文件默认存储位置已更改为dist/data/schemas。
此位置未来预计不会更改,但如果您是从旧版本升级,请确保将您的模式文件移动到新位置。
MemoryMesh是一个本地知识图谱服务器,可帮助您为AI模型构建和管理结构化信息。它特别适合文本RPG游戏,但其灵活的设计也适用于各种应用场景,包括社交网络模拟、组织规划或任何涉及结构化数据的场景。
节点代表知识图谱中的实体或概念。每个节点包含:
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添加超出必填或可选定义的额外属性。{
"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会自动创建:
MemoryMesh包含11个为文本RPG设计的预构建模式,为游戏开发提供了现成的基础。
MemoryMesh包含一个SchemaManager工具,用于简化模式的创建和编辑。它提供了一个可视化界面,使您无需直接编写JSON即可轻松定义数据结构。
MemoryMesh通过动态工具简化了与知识图谱的交互。这些工具不是手动编写的,而是直接从您的模式定义自动生成的。这意味着当您使用模式定义数据结构时,MemoryMesh会智能地创建一组针对该特定数据结构量身定制的工具。
可以这样理解: 您提供一个蓝图(模式),MemoryMesh会自动构建基于该蓝图构建、修改和删除元素所需的工具。
MemoryMesh有一个智能系统,可以读取您的模式定义。它分析您定义的结构,包括实体的属性及其关系。基于此分析,它会为每个实体类型自动创建一组工具:
add_<entity>: 用于创建实体新实例的工具。update_<entity>: 用于修改现有实体的工具。delete_<entity>: 用于删除实体的工具。然后,这些工具通过MemoryMesh内的中央枢纽提供,确保它们可以被任何连接的客户端或AI轻松访问和使用。
本质上,MemoryMesh的动态工具系统提供了一种强大而高效的方式来管理您的知识图谱,让您可以专注于应用程序的内容和逻辑,而不是数据操作的基础机制。
默认情况下,数据存储在dist/data/memory.json中的JSON文件中。
内存查看器是一个独立的工具,旨在帮助您可视化和检查MemoryMesh管理的知识图谱的内容。它提供了一个用户友好的界面,用于探索节点、边及其属性。
内存查看器是一个独立的网络应用程序。内存查看器讨论
memory.json文件(默认位于dist/data/memory.json)。
为了获得最佳效果,请使用Claude的"项目"功能并使用自定义指令。以下是一个您可以开始的提示示例:
您是一个帮助管理文本RPG知识图谱的AI助手。您可以访问以下工具:add_npc、update_npc、delete_npc、add_location、update_location、delete_location以及其他用于管理游戏世界的工具。 当用户提供输入时,首先使用您的可用工具更新知识图谱。然后,以适合文本RPG的方式做出响应。
您还可以直接在聊天中指示AI执行特定操作。
尝试不同的提示,找到最适合您用例的方法!
添加几个城市,一些NPC,城市周围的一些地点供探索,隐藏一两件神器

要通过Smithery为Claude Desktop自动安装MemoryMesh:
npx -y @smithery/cli install memorymesh --client claude
克隆仓库:
git clone https://github.com/CheMiguel23/memorymesh.git
cd memorymesh

安装依赖项:
npm install
构建项目:
npm run build
此命令将TypeScript代码编译为dist目录中的JavaScript,并将示例模式和数据文件复制到其中。
验证文件复制(可选):
data文件夹复制到dist。dist/data是否存在并包含.json文件。还要验证dist/data/schemas是否存在并包含.schema.json文件。配置Claude Desktop:
打开您的Claude Desktop配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonmcpServers部分添加一个memorymesh条目。您可以选择以下配置选项之一:"mcpServers": {
"memorymesh": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/YOUR/PROJECT/memorymesh/dist/index.js"]
}
}

/ABSOLUTE/PATH/TO/YOUR/PROJECT/替换为您的memorymesh项目目录的实际绝对路径。"command": "node",
"args": ["/Users/yourusername/Projects/memorymesh/dist/index.js"]

"command": "node",
"args": ["C:\\Projects\\memorymesh\\dist\\index.js"]

重启Claude Desktop: 完全重启Claude Desktop以使更改生效。
add_npc、update_npc等),您的服务器正在工作并正确暴露工具。在更新之前,请确保备份您的dist/data目录,以避免丢失内存数据。
服务器未出现在Claude中:
claude_desktop_config.json中的路径。确保它们是绝对路径且正确。dist目录是否存在并包含编译的JavaScript文件,包括index.js。~/Library/Logs/Claude/mcp-server-memorymesh.log(和mcp.log)%AppData%\Claude下的Logs文件夹中)工具未显示:
npm run build命令没有错误地完成。dist/data/schemas中,并遵循正确的命名约定(add_[entity].schema.json)。MemoryMesh提供了几种超出基本设置的自定义其行为的方法:
您可以在/config/config.ts中覆盖默认设置
dist/data/memory.json)dist/data/schemas/memory.json)欢迎贡献、反馈和想法! 这个项目是一个将结构化数据与AI推理能力集成的个人探索。欢迎贡献、反馈和想法以推动它进一步发展或激发新项目。