项目简介

Memory Bank Loader MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在帮助 LLM 应用高效地加载和管理 Memory Bank 数据。该服务器可以将指定目录下的所有文件读取并整理成结构化的文本内容,作为一个工具提供给 LLM 客户端调用,从而简化 Memory Bank 的加载流程,并优化提供给 AI 模型的上下文信息。

主要功能点

  • 递归读取目录文件: 能够递归读取指定目录及其子目录下的所有文件。
  • 智能文件排序: 支持根据预定义的优先级顺序和文件路径对文件进行排序,确保重要文件优先加载,并保持内容组织的有序性。
    • 根目录文件优先于子目录文件。
    • 根目录下的特定优先级文件(如 'projectbrief.md' 等)最先排列。
    • 其余文件(非优先级根目录文件和所有子目录文件)按相对路径字母顺序排序。
  • 结构化文本输出: 将每个文件的内容包裹在 Markdown 代码块中,并添加文件名作为标题,方便 LLM 理解和处理。
  • 提供 MCP 工具: 通过 MCP 协议提供 'read-memory-bank' 工具,允许 LLM 客户端通过简单的调用即可获取 Memory Bank 的全部内容。

安装步骤

该项目可以通过 NPX 直接运行,或者先进行构建再运行。

方法一:使用 NPX (无需构建)

  1. 前提条件: 确保已安装 Node.js 和 npm。
  2. 配置 MCP 客户端: 在 MCP 客户端的服务器配置中,添加以下 JSON 配置,即可使用 NPX 运行 Memory Bank Loader MCP Server。
{
  "mcpServers": {
    "memory-bank-loader": {
      "command": "npx",  // 使用 npx 命令
      "args": [
        "-y",                   // 自动确认安装包
        "memory-bank-loader-mcp@latest" //  要运行的 npm 包名和版本,latest 表示最新版本
      ],
      "description": "Memory Bank Loader MCP Server (NPX 运行)" //  (可选) 服务器描述,方便识别
    }
  }
}

方法二:构建后运行 (推荐)

  1. 克隆仓库: 将 GitHub 仓库 'https://github.com/abeyuya/memory-bank-loader-mcp' 克隆到本地。
  2. 安装依赖: 在仓库根目录下,打开终端并运行 'npm install' 安装项目依赖。
  3. 构建项目: 运行 'npm run build' 构建项目,构建产物将生成在 'build' 目录下。
  4. 配置 MCP 客户端: 在 MCP 客户端的服务器配置中,添加以下 JSON 配置,指定 'node' 命令和构建后的 'index.js' 文件路径。
{
  "mcpServers": {
    "memory-bank-loader": {
      "command": "node",  // 使用 node 命令运行 JavaScript 文件
      "args": [
        "/full/path/to/memory-bank-loader-mcp/build/index.js" //  构建后的 index.js 文件的完整路径,请替换为实际路径
      ],
      "description": "Memory Bank Loader MCP Server (构建后运行)" // (可选) 服务器描述,方便识别
    }
  }
}

注意: 请将 '/full/path/to/memory-bank-loader-mcp/build/index.js' 替换为 'index.js' 文件在您本地文件系统中的实际完整路径。

服务器配置

无需额外服务器端配置。服务器启动后将监听标准输入输出 (stdio) 进行 MCP 通信。

基本使用方法

  1. 启动 MCP 服务器: 根据上述安装步骤,配置 MCP 客户端并启动 Memory Bank Loader MCP Server。
  2. 调用 'read-memory-bank' 工具: 在 LLM 应用中,通过 MCP 客户端调用 'read-memory-bank' 工具。
  3. 提供 Memory Bank 目录路径: 调用 'read-memory-bank' 工具时,需要提供 'memoryBankDirectoryFullPath' 参数,该参数为 Memory Bank 目录在服务器文件系统中的完整路径
  4. 获取 Memory Bank 内容: 工具执行成功后,将返回包含所有 Memory Bank 文件内容的结构化文本,LLM 应用可以利用这些内容作为上下文信息。

示例: 假设 Memory Bank 目录的完整路径为 '/path/to/your/memory-bank',则 MCP 客户端调用 'read-memory-bank' 工具时,需要传递参数 '{"memoryBankDirectoryFullPath": "/path/to/your/memory-bank"}'。

{
  "tool_calls": [
    {
      "id": "tool_call_id_1",
      "type": "function",
      "function": {
        "name": "read_memory_bank",
        "arguments": {
          "memoryBankDirectoryFullPath": "/path/to/your/memory-bank"
        }
      }
    }
  ]
}

工具执行后,将返回如下格式的 JSON 响应,其中 'content[0].text' 字段包含了整理后的 Memory Bank 内容。

{
  "tool_calls": [
    {
      "id": "tool_call_id_1",
      "result": {
        "content": [
          {
            "type": "text",
            "text": "# projectbrief.md\n\n\'\'\'\'\nProject brief content...\n\'\'\'\'\n\n# techContext.md\n\n\'\'\'\'\nTech context content...\n\'\'\'\'\n\n# subdir/aaa_sub.txt\n\n\'\'\'\'\nSub directory file content...\n\'\'\'\'"
          }
        ]
      }
    }
  ]
}

注意事项

  • 'memoryBankDirectoryFullPath' 必须是服务器文件系统中的完整路径
  • 服务器默认监听标准输入输出 (stdio) 进行通信,MCP 客户端需要配置使用 stdio 传输协议连接该服务器。
  • 如果 Memory Bank 目录不存在或读取文件过程中发生错误,工具将返回空字符串作为内容。

信息

分类

数据库与文件