关于 Knowledge Graph Memory Server
Knowledge Graph Memory Server 是基于本地知识图谱的持久记忆 MCP 服务,面向需要跨对话保留信息的 Claude 用户。它以实体、关系和观察记录组织记忆,并支持按查询检索。
主要功能
- 01创建实体及有向关系
- 02为实体添加或删除观察记录
- 03搜索节点并查看相关关系
- 04读取完整图谱或指定节点
- 05删除实体及关联关系
适用场景
- 01在不同聊天间保留用户信息
- 02记录人物、组织及其关联
- 03按内容查找已保存的事实
MCP 相关
向 MCP 客户端提供知识图谱的创建、查询、读取和删除工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
知识图谱记忆服务
注意: 此项目从 modelcontextprotocol/servers 中提取,旨在创建一个独立实现。
使用本地知识图谱实现的基础持久化记忆功能。这使 Claude 能够在不同聊天中记住有关用户的信息。
核心概念
实体
实体是知识图谱中的主要节点。每个实体包含:
- 唯一名称(标识符)
- 实体类型(例如,“person”“organization”“event”)
- 一系列观察记录
示例:
{
"name": "John_Smith",
"entityType": "person",
"observations": ["Speaks fluent Spanish"]
}
关系
关系用于定义实体之间的有向连接。关系始终以主动语态存储,用于描述实体之间的交互或关联。
示例:
{
"from": "John_Smith",
"to": "Anthropic",
"relationType": "works_at"
}
观察记录
观察记录是关于某个实体的独立信息片段。它们:
- 以字符串形式存储
- 关联到特定实体
- 可以单独添加或移除
- 应当是原子性的(每条观察记录只包含一个事实)
示例:
{
"entityName": "John_Smith",
"observations": [
"Speaks fluent Spanish",
"Graduated in 2019",
"Prefers morning meetings"
]
}
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)
系统提示词
用于调用记忆的提示词取决于使用场景。更改提示词有助于模型确定创建记忆的频率和类型。
以下是用于聊天个性化的示例提示词。你可以将此提示词用于 Claude.ai 项目中的“自定义说明”字段。
Follow these steps for each interaction:
1. User Identification:
- You should assume that you are interacting with default_user
- If you have not identified default_user, proactively try to do so.
2. Memory Retrieval:
- Always begin your chat by saying only "Remembering..." and retrieve all relevant information from your knowledge graph
- Always refer to your knowledge graph as your "memory"
3. Memory
- While conversing with the user, be attentive to any new information that falls into these categories:
a) Basic Identity (age, gender, location, job title, education level, etc.)
b) Behaviors (interests, habits, etc.)
c) Preferences (communication style, preferred language, etc.)
d) Goals (goals, targets, aspirations, etc.)
e) Relationships (personal and professional relationships up to 3 degrees of separation)
4. Memory Update:
- If any new information was gathered during the interaction, update your memory as follows:
a) Create entities for recurring organizations, people, and significant events
b) Connect them to the current entities using relations
b) Store facts about them as observations
构建
Docker:
docker build -t mcp/memory -f src/Dockerfile .
作为独立程序包使用
若要将其作为独立程序包使用:
npm install mcp-memory-server
或直接使用 npx:
npx mcp-memory-server
许可证
此 MCP 服务采用 MIT 许可证。也就是说,你可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。详情请参阅项目仓库中的 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。