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 等环境变量)
安装步骤
- 克隆仓库并安装依赖。
- 按需配置本地记忆存储路径与锁文件路径(若无自定义需求,使用默认路径)。
- 运行 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 通信。