Knowledge Graph Memory MCP Server 使用说明
项目简介
Knowledge Graph Memory MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,它使用知识图谱来管理实体、关系和观察信息,为大型语言模型(LLM)客户端提供结构化的上下文记忆能力。该服务器旨在帮助LLM应用记住关键信息,并在对话过程中利用这些信息,从而提升LLM的对话质量和应用性能。
主要功能点
- 知识图谱存储与管理:支持创建、读取、更新和删除知识图谱中的实体和关系,使用 JSONL 文件作为持久化存储。
- 数据验证:提供严格的数据验证规则,确保知识图谱的数据一致性和准确性,例如实体名称格式、实体类型、关系类型等。
- 实体和关系操作:提供丰富的工具 (Tools) 用于操作知识图谱,包括:
- 'get_entity': 根据名称获取实体信息。
- 'get_graph': 获取完整的知识图谱数据。
- 'create_entities': 批量创建多个实体。
- 'add_observation': 为实体添加新的观察信息。
- 'create_relation': 在实体之间创建关系。
- 'search_memory': 根据自然语言查询搜索知识图谱。
- 'delete_entities': 批量删除多个实体及其相关关系。
- 'delete_relation': 删除实体之间的关系。
- 'flush_memory': 将内存中的更改持久化到存储。
- 自然语言搜索:支持基于关键词的自然语言搜索,可以根据实体名称、类型或观察信息进行模糊或精确匹配。
- Prompt 模板:提供 Prompt 模板 (Prompts) 用于生成与LLM交互的提示语,例如创建实体的提示、搜索记忆的提示和创建关系的提示。
- 错误处理:定义了明确的错误类型和响应模型,方便客户端进行错误处理。
安装步骤
- 安装服务器:在支持 MCP 协议的客户端(如 Claude Desktop)中,使用 'mcp install' 命令安装该服务器。
mcp install main.py -v MEMORY_FILE_PATH=/path/to/memory.jsonl- '-v MEMORY_FILE_PATH=/path/to/memory.jsonl':这是一个可选参数,用于指定知识图谱数据存储的 JSONL 文件路径。如果不指定,默认会使用 '~/.claude/memory.jsonl' 文件。您可以根据需要修改 '/path/to/memory.jsonl' 为您希望存储知识图谱数据的文件路径。
服务器配置 (MCP 客户端配置)
要将 Knowledge Graph Memory MCP Server 集成到 MCP 客户端,您需要配置服务器的启动命令和参数。以下是 MCP 客户端所需的服务器配置信息(JSON 格式):
{ "server_name": "Memory", "command": "main.py", "args": [ // "-v", "MEMORY_FILE_PATH=/path/to/memory.jsonl" // 可选参数:指定知识图谱数据存储的 JSONL 文件路径。 // 如果需要指定文件路径,取消注释上面一行,并将 "/path/to/memory.jsonl" 替换为您希望使用的路径。 ] }
配置参数说明:
- 'server_name': 服务器名称,设置为 "Memory"。
- 'command': 启动服务器的命令,这里设置为 'main.py',假设 'main.py' 文件位于 MCP 客户端可以执行的路径中。
- 'args': 启动参数列表,目前配置为空列表。如果需要指定 'MEMORY_FILE_PATH',请取消注释 'args' 数组中的行,并修改为您需要的路径。
注意:
- MCP 客户端需要能够找到并执行 'main.py' 文件。通常情况下,'main.py' 文件会和 'mcp install' 命令安装到一起,客户端会自动处理执行路径问题。
- 'args' 参数是可选的。如果您不需要自定义知识图谱数据存储路径,可以保持 'args' 为空列表。
基本使用方法
安装并配置服务器后,您可以使用 MCP 客户端通过 'session.call_tool' 方法调用服务器提供的工具 (Tools) 来管理知识图谱。
例如:
-
创建实体:
entities = [ Entity( name="python-project", entityType="project", observations=["Started development on 2024-01-29"] ) ] result = await session.call_tool("create_entities", { "entities": entities }) -
添加观察信息:
result = await session.call_tool("add_observation", { "entity": "python-project", "observation": "Completed initial prototype" }) -
搜索记忆:
result = await session.call_tool("search_memory", { "query": "python project" }) if result.success: print(result.data)
更多工具的使用方法请参考仓库 README.md 文件中的 "Usage" 部分提供的示例代码。
信息
分类
数据库与文件