使用说明

项目简介

Optimized Memory 是一个基于 Model Context Protocol (MCP) 的知识图谱内存服务器实现。它使用 SQLite 数据库作为后端,旨在为大型语言模型(LLM)应用提供持久化的知识记忆功能。通过存储和管理实体、关系以及实体相关的观察信息,该服务器允许 LLM 在对话过程中记住用户的相关信息,实现更个性化和上下文感知的交互体验。

主要功能点

  • 知识图谱存储: 使用 SQLite 数据库持久化存储实体和关系,确保数据在服务器重启后依然可用。
  • 实体和关系管理: 支持创建、读取、更新和删除实体(Entities)及其属性(Observations)和实体之间的关系(Relations)。
  • 高效检索: 提供基于关键词的实体和关系搜索功能,帮助 LLM 快速检索相关知识。
  • MCP 协议兼容: 遵循 Model Context Protocol,通过 JSON-RPC 协议与 MCP 客户端进行通信,提供标准化的上下文服务接口。
  • 工具化API: 通过定义一系列工具 (Tools),例如 'create_entities', 'create_relations', 'search_nodes' 等,向 LLM 提供结构化知识的访问和操作能力。

安装步骤

  1. 克隆仓库
    git clone https://github.com/AgentWong/optimized-memory-mcp-server
    cd optimized-memory-mcp-server
  2. 安装 Python 包 确保你的 Python 环境满足 'setup.py' 中 'python_requires' 指定的版本要求(>=3.12)。然后使用 pip 安装项目依赖:
    pip install .
    或者,为了方便开发,可以使用可编辑模式安装:
    pip install -e .

服务器配置

要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要提供服务器的启动命令和参数。以下是配置示例 JSON,通常在 MCP 客户端的配置文件中设置(例如 'claude_desktop_config.json'):

{
  "mcpServers": {
    "memory": {
      "command": "optimized-memory-mcp-server",
      "args": []
    }
  }
}

配置参数说明:

  • '"server name"': '"memory"' (服务器名称,可以自定义,例如 "knowledge_graph_memory")
  • '"command"': '"optimized-memory-mcp-server"' (服务器启动命令。安装成功后,此命令会被添加到系统路径中。或者,您可以使用 'python -m optimized_memory_mcp_server.main' 作为命令)
  • '"args"': '[]' (启动参数。默认情况下无需额外参数。如果需要指定 SQLite 数据库文件的路径,可以使用 '--database-url' 参数,例如 '["--database-url", "sqlite:///path/to/your/memory.db"]')

基本使用方法

  1. 启动服务器: 在安装并配置好 MCP 客户端后,启动客户端,客户端会自动尝试连接配置的 MCP 服务器。
  2. 通过客户端与服务器交互: 客户端(例如 Claude Desktop)会根据配置,通过 stdio 管道与 'optimized-memory-mcp-server' 建立连接,并使用 MCP 协议进行通信。
  3. 利用工具 (Tools) 进行知识管理: 客户端可以通过调用服务器提供的工具 (例如 'create_entities', 'create_relations', 'search_nodes' 等) 来操作和查询知识图谱。具体的工具及其输入输出参数可以参考仓库的 'README.md' 文件和 'optimized_memory_mcp_server/main.py' 中 'list_tools' 函数的定义。
  4. 在 LLM 应用中使用: 在 LLM 应用的系统提示或指令中,引导 LLM 使用这些工具来管理和检索知识,从而实现记忆和上下文理解能力。例如,可以指示 LLM 在对话开始时调用 'search_nodes' 工具检索与当前用户相关的记忆信息,并在对话过程中根据新的信息调用 'create_entities' 或 'add_observations' 工具来更新知识图谱。

信息

分类

数据库与文件