Copilot Memory Store MCP 服务器
<Anthology>使用说明(Markdown 格式)</Anthology>
项目概述
本项目实现了一个 MCP 服务器,用于以标准化方式向大语言模型客户端提供上下文信息、数据访问能力以及可调用的外部工具。核心以本地 JSON 文件存储为基础,提供内存管理、检索、压缩、导出等功能,并定义了多组资源、提示模板和工具,支持 elicitation(引导式交互)以提升交互质量。通过 STDIO 传输实现与客户端的 JSON-RPC 通信,便于在本地或管道式环境中接入。
主要功能点
- 本地 JSON 存储:对内存条目进行持久化存储,支持增删改查。
- MCP 工具注册:提供 7 个工具,用于写入、检索、压缩、删除、清除、导出以及上下文注入等操作。
- MCP 资源端点:公开 memory://stats、memory://recent 等数据端点,供客户端主动获取、展示或分析。
- MCP 提示模板:提供 summarize-memories、remember-decision、inject-context 等可复用的提示模板,便于统一工作流。
- 引导式交互(Elicitation):在需要时通过 MCP 客户端完成标签选择、删除确认等对话交互。
- 数据模型与安全性:实现了软删除、硬删除、版本信息、创建时间等元数据,确保操作可追踪和可控。
- 传输方式:默认使用 STDIO 传输,将 JSON-RPC 请求与响应通过标准输入输出进行通信,便于在命令行、脚本管道或嵌入式环境使用。
安装步骤
- 具备 Node.js 环境(建议使用较新版本)。
- 安装依赖:在项目根目录执行 npm install。
- 构建与运行:
- 将 TypeScript 代码编译为可执行的 JS 文件(dist 目录下的产物)。
- 启动 MCP 服务器:在具备 Node.js 的环境中执行 node dist/mcp-server.js。
- 服务器将通过 STDIO 接收来自 MCP 客户端的 JSON-RPC 请求并返回响应。
服务器配置(供 MCP 客户端准备连接使用的配置信息)
以下为一个简化的服务器启动配置示例(json 格式,描述性注释在后文说明): { "server_name": "copilot-memory-store", "command": ["node", "dist/mcp-server.js"], "args": [], "transport": "stdio" } 说明
- server_name: MCP 服务器在客户端侧显示的名称,便于区分与日志追踪。
- command: 启动 MCP 服务器的命令,这里假设通过构建后的 dist/mcp-server.js 启动。
- args: 启动参数,当前实现不强制额外参数。
- transport: 服务器使用的传输模式,此实现为 STDIO(通过标准输入输出进行 JSON-RPC 通信)。 注
- 客户端在连接时只需要知道上述 server_name、command、args 即可,不需要额外的代码改动。
- 具体路径和执行方式可能依赖你的部署环境(如直接使用 tsx 运行未编译版本时的命令会有所不同)。
基本使用方法
- 启动服务器:在具备 Node.js 的环境中执行 node dist/mcp-server.js。
- 与 MCP 客户端交互:客户端通过 JSON-RPC 调用服务器提供的资源、工具和提示模板,例如读取 memory://stats、执行 memory_write、memory_search、inject_context 等操作。
- 客户端工作流示例:通过内置工具管理内存、对话式得到上下文、以及基于提示模板进行任务协作。
- 部署与扩展:如需使用其他传输(如 SSE、WebSocket),该实现可在后续阶段扩展传输适配层。