项目简介

Memory MCP Server 是一个基于 Python 开发的 MCP 服务器,它实现了 Model Context Protocol,旨在为大型语言模型(LLM)应用提供结构化的知识图谱作为上下文记忆。该服务器允许 LLM 客户端通过 MCP 协议管理和查询存储在知识图谱中的实体和关系,从而增强 LLM 的记忆能力和知识检索能力。

主要功能点

  • 知识图谱管理: 服务器核心功能是维护和管理一个知识图谱,支持存储实体(Entities)和关系(Relations)。
  • 数据访问能力: 提供创建、读取、搜索知识图谱中实体和关系的工具,允许 LLM 客户端访问和利用这些信息。
  • MCP 协议: 完全实现了 MCP 服务器端的核心功能,通过 JSON-RPC 协议与客户端通信。
  • 工具注册与执行: 注册了一系列工具 (Tools),例如 'create_entities', 'create_relations', 'read_graph', 'search_nodes' 等,允许 LLM 客户端调用这些工具来操作知识图谱。
  • 持久化存储: 使用 JSON Line 格式的文件 ('memory.jsonl') 存储知识图谱数据,支持数据持久化。
  • 标准IO传输: 通过标准输入/输出 (stdio) 与 MCP 客户端进行通信。

安装步骤

  1. 安装 'uv': 如果你的环境中没有 'uv',请先安装 'uv' 包管理器。推荐使用 'uv' 进行安装,以获得更快的速度和更好的依赖管理。

    pip install uv
  2. 安装 'memory-mcp-server': 使用 'uv' 包管理器安装 'memory-mcp-server'。

    uv pip install evangstav_python-memory-mcp-server

    或者,你也可以从 GitHub 仓库直接安装:

    uv pip install git+https://github.com/MCP-Mirror/evangstav_python-memory-mcp-server.git

服务器配置

为了让 MCP 客户端(例如 Claude Desktop)连接到 Memory MCP Server,你需要在客户端的配置文件中添加服务器配置信息。以 'claude_desktop_config.json' 为例,你需要添加 'mcpServers' 配置项,并指定服务器名称、启动命令和参数。

{
  "mcpServers": {
    "memory": {  // 服务器名称,可以自定义
      "command": "uvx", // 启动服务器的命令,这里使用 uvx 运行 memory-mcp-server
      "args": ["memory-mcp-server"] // 命令参数,这里没有额外的参数
    }
  }
}

配置参数说明:

  • '"memory"': 这是你在客户端配置中为该 MCP 服务器指定的名称,可以根据需要自定义,客户端会使用这个名称来引用该服务器。
  • '"command": "uvx"': 指定了启动 MCP 服务器的命令。'uvx' 是 'uv' 包管理器提供的可执行命令,用于运行已安装的 Python 包的可执行入口。
  • '"args": ["memory-mcp-server"]': 指定了传递给启动命令的参数。'memory-mcp-server' 是该项目提供的可执行入口名称,'uvx memory-mcp-server' 命令会执行 'memory_mcp_server' 包的 'main' 函数,从而启动 MCP 服务器。

环境变量配置:

服务器运行时需要设置以下环境变量:

  • 'DATABASE_URL': (注意: 根据仓库信息,实际上并没有 'DATABASE_URL' 这个环境变量,'memory-mcp-server' 默认使用 'memory.jsonl' 文件存储知识图谱,并通过命令行参数 '--path' 指定文件路径。如果需要自定义存储路径,可以通过修改 'main.py' 中的默认路径或添加环境变量配置。) 如果未来版本或配置需要数据库,'DATABASE_URL' 环境变量可能用于配置数据库连接 URL,例如 SQLite 数据库的 URL。

基本使用方法

  1. 启动服务器: 安装完成后,可以直接在终端运行以下命令启动 Memory MCP Server。

    uvx memory-mcp-server

    或者,如果你使用源码安装,可以运行:

    python -m memory_mcp_server

    服务器默认会使用项目目录下的 'memory.jsonl' 文件存储知识图谱。你可以通过命令行参数 '--path' 指定其他文件路径,例如:

    uvx memory-mcp-server --path /path/to/my_memory.jsonl
  2. 配置 MCP 客户端: 在你的 MCP 客户端(例如 Claude Desktop)的配置文件中,添加上面提供的服务器配置信息,确保客户端能够找到并连接到正在运行的 Memory MCP Server。

  3. 使用 LLM 应用: 配置完成后,你的 LLM 应用就可以通过 MCP 客户端与 Memory MCP Server 交互,利用知识图谱进行上下文增强和知识检索等操作了。例如,Claude Desktop 可以调用 'create_entities' 工具向知识图谱中添加新的实体,或者调用 'search_nodes' 工具查询相关信息。

注意: 首次运行服务器时,如果 'memory.jsonl' 文件不存在,服务器会自动创建该文件。知识图谱的数据将以 JSON Line 格式逐行追加到该文件中。

信息

分类

数据库与文件