Copilot Memory Store MCP 服务器实现

使用说明(Markdown格式)

项目简介

本仓库实现了一个 MCP 服务器端,用于管理“记忆”数据、提供可调用的工具、以及可复用的提示模板,旨在为 LLM 客户端提供结构化的上下文和功能服务。数据采用本地 JSON 文件持久化,具备简单的增删改查、搜索、压缩等能力,并具备可选的 LLM 加强(DeepSeek)用于上下文压缩与重塑。

主要功能点

  • 内存管理(Memory Store)
    • 增:添加新的记忆及可选标签
    • 查:按文本/关键词/标签进行模糊检索与排序
    • 软删除:通过标记删除,保留历史记录
    • 硬删除:按条件批量永久删除
    • 导出:导出全部记忆(包含软删除项)
  • MCP 工具(Tools)
    • memory_write:添加记忆,支持标签提示 elicitation
    • memory_search:按查询检索记忆,支持原始 JSON 输出
    • memory_compress:按预算生成紧凑的上下文块
    • memory_delete:软删除记忆
    • memory_purge:永久性删除(带删除确认)
    • memory_export:导出全部记忆的原始 JSON
    • inject_context:在任务前注入相关上下文
  • MCP 资源(Resources)
    • memory://stats:内存统计信息
    • memory://recent:最近的记忆条目
  • MCP 提示(Prompts)
    • summarize-memories:按主题汇总相关记忆
    • remember-decision:使用 ADR 模板记录架构/设计决策
    • inject-context:将上下文按任务需求输出为对话形式
    • inject-context(prompt 版本):直接以对话形式输出上下文
  • 可选的 DeepSeek 支持
    • 通过 DeepSeek 对上下文进行压缩与重塑,提升对任务的相关性与可读性(需配置 API Key 等环境变量)

安装步骤

  1. 克隆仓库并安装依赖。
  2. 按需配置本地记忆存储路径与锁文件路径(若无自定义需求,使用默认路径)。
  3. 运行 MCP 服务器(标准输出保留用于日志,标准输入/输出用于 JSON-RPC 通信的传输方式为 stdio)。

服务器配置

MCP 客户端连接该服务器需要的基本配置信息(JSON 格式,适用于客户端配置): { "server": { "name": "copilot-memory-store", "version": "0.3.0", "description": "MCP 服务器,提供内存管理、工具调用和提示模板等能力", "transport": "stdio" }, "command": "node", "args": ["dist/mcp-server.js"], "notes": "该配置表示通过标准输入/输出的 JSON-RPC 通信方式接入。服务器会在启动时输出日志,客户端通过 JSON-RPC 与之交互。实际部署时请确保构建产物路径正确(如 dist/mcp-server.js)。" } 注释说明

  • server.name 与 server.version 与仓库中的 MCP 服务器实例信息保持一致,以便客户端识别能力与版本匹配。
  • transport 指定通信方式,本实现使用 stdio(适用于直接在进程间通信的场景)。
  • command 与 args 描述了启动服务器的命令与参数,客户端在连接前需确保服务器已正确启动。

基本使用方法

  • 启动服务器后,客户端通过 MCP JSON-RPC 请求与服务器交互,执行如读取资源、调用工具、获取 prompts 等能力。
  • 常用操作包括:写入记忆、搜索记忆、压缩上下文、注入任务上下文、导出数据等,均通过相应的工具/资源实现。
  • 客户端使用时请确保环境变量(如 DeepSeek 的 API Key 等)按照需要配置,以启用可选的 LLM 加强功能。

运行与测试

  • 使用标准的 Node/Terraform 之类的运行方式,确保 dist/mcp-server.js 已经构建好。
  • 客户端应配置正确的启动命令和参数,以便通过标准输入输出进行 JSON-RPC 通信。

服务器信息