使用说明

项目简介

Dev Memory Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,专注于为开发者提供跨项目持久化的开发记忆管理。它可以自动捕获和组织开发上下文、代码变更以及用户交互信息,并以结构化的方式提供给LLM客户端,从而增强LLM在开发辅助场景下的能力。

主要功能点

  • 存储开发上下文 (store_context): 允许客户端将各种开发相关的上下文信息(如代码片段、用户操作、会议记录等)存储到服务器。
  • 检索开发上下文 (get_context): 允许客户端根据查询语句检索相关的开发上下文记忆,以便LLM更好地理解当前开发状态和历史信息。
  • 优化记忆 (optimize_memory): 提供多种策略(如压缩、修剪)来优化存储的开发记忆,保持上下文信息的有效性和降低冗余。
  • 基于文件的持久化存储: 使用文件系统作为存储后端,将开发记忆持久化保存。
  • Stdio传输协议: 通过标准输入输出 (stdio) 与MCP客户端进行JSON-RPC通信。
  • 声明工具和资源能力: 服务器声明支持工具 (tools) 和资源 (resources) 功能。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的开发环境中已安装 Node.js 和 npm 包管理器。
  2. 克隆仓库: 将仓库 'https://github.com/TrackerXXX23/dev_memory_mcp' 克隆到本地。
    git clone https://github.com/TrackerXXX23/dev_memory_mcp
    cd dev_memory_mcp
  3. 安装依赖: 在项目根目录下运行以下命令安装项目依赖。
    npm install
  4. 构建项目: 运行以下命令构建项目。
    npm run build
  5. 启动服务器: 运行以下命令启动 Dev Memory MCP 服务器。
    npm start
    启动成功后,服务器将通过 stdio 监听来自 MCP 客户端的请求。

服务器配置

MCP客户端需要配置以下信息以连接到 Dev Memory MCP 服务器。以下为 JSON 格式的配置信息示例,请根据实际情况进行配置。

{
  "serverName": "dev-memory",  // MCP服务器名称,与server info中的name一致
  "command": "npm",         // 启动服务器的命令,这里使用 npm
  "args": ["start"],        // 启动命令的参数,这里使用 "start" 运行 npm start 脚本
  "transport": "stdio"      // 使用 stdio 传输协议
}

配置参数说明:

  • 'serverName': 服务器名称,必须与 'src/index.ts' 中 'Server' 构造函数中 'name' 属性的值 '"dev-memory"' 一致。
  • 'command': 启动服务器的可执行命令。由于项目使用了 'npm start' 脚本启动服务器,因此这里配置为 '"npm"'。
  • 'args': 启动命令的参数。'npm start' 实际上是运行 'npm' 命令并执行 'start' 脚本,因此参数配置为 '["start"]'。
  • 'transport': 传输协议,Dev Memory Server 使用 stdio 传输,因此配置为 '"stdio"'。

请注意: MCP客户端需要能够执行 'npm' 命令,并确保当前工作目录是 'dev_memory_mcp' 项目的根目录,或者命令路径配置正确,以便 'npm start' 能够正确执行并启动服务器。

基本使用方法

Dev Memory Server 通过 JSON-RPC 协议与客户端通信。客户端需要按照 MCP 协议规范构造 JSON-RPC 请求,并通过 stdio 发送给服务器。服务器接收请求后,会根据请求的方法名调用相应的处理函数,并将结果以 JSON-RPC 响应的形式通过 stdio 返回给客户端。

示例请求 (存储上下文):

{
  "jsonrpc": "2.0",
  "method": "tool:store_context",
  "params": {
    "arguments": {
      "context_type": "development",
      "content": "用户在代码编辑器中打开了文件 src/index.ts",
      "metadata": {
        "file_path": "src/index.ts",
        "action": "open_file"
      }
    }
  },
  "id": "1"
}

示例请求 (检索上下文):

{
  "jsonrpc": "2.0",
  "method": "tool:get_context",
  "params": {
    "arguments": {
      "query": "最近打开的文件",
      "context_type": "development",
      "max_results": 3
    }
  },
  "id": "2"
}

示例请求 (优化记忆):

{
  "jsonrpc": "2.0",
  "method": "tool:optimize_memory",
  "params": {
    "arguments": {
      "strategy": "compress"
    }
  },
  "id": "3"
}

请参考 MCP 协议文档和 'src/sdk/types.ts' 文件,了解更多请求和响应的格式细节。

注意: 根据 'README.md' 描述,该项目目前状态为 "BLOCKED",可能存在文件系统访问和 JSON 响应处理方面的问题。使用时请注意潜在的错误和不稳定性。

信息

分类

开发者工具