Memento MCP 服务端
使用说明(Markdown 格式)
-
项目简介
- Memento MCP 服务端是一个基于 Node.js 实现的后端服务器,遵循 Model Context Protocol(MCP)规范,面向向大语言模型(LLM)客户端提供标准化的上下文服务,包括记忆分片(Fragments)的管理、工具(Tools)的 注册与执行、以及 Prompts 的渲染与调用。
- 该服务通过多层次的检索架构(L1 Redis 索引、L2 PostgreSQL 配置和 L3 pgvector 向量检索)实现 recalls 与 remember 的高效能力,并提供日志、指标、认证、会话管理等服务支撑。
-
主要功能点
- MCP 协议支持与 JSON-RPC 响应:实现 MCP 的请求分发、错误处理与结果返回,包含 initialize、tools、prompts、resources、memory 等核心能力。
- 会话与传输:支持 Streamable HTTP(/mcp POST/GET/DELETE)与 Legacy SSE(/sse、/message)会话,提供鉴权、会话管理与生命周期控制。
- 资源、工具、Prompts:记忆分片的持久化、工具执行、Prompts 的定义与获取。
- 长时记忆与分片系统:FragmentStore/FragmentFactory/MemoryManager 等模块实现分片的创建、嵌入向量化、链接、版本控制、TTL/GC 策略等。
- 记忆检索与合并:3 层检索(L1/L2/L3)和 RRF(Reciprocal Rank Fusion)合并策略,包含跨主题/类型/关键字的多源检索。
- 异步与后处理:嵌入、质量评估、链接自动化、冲突检测、Reflect、AutoReflect 编排机制等。
- 认证与授权:OAuth2 PKCE、Bearer Token、API Key、RLS 基于代理的访问控制等。
- 观测与治理:Prometheus 指标、健康检查、审计日志、访问统计等。
-
安装步骤
- 环境要求:Node.js 20 及以上、PostgreSQL 14+(需安装 pgvector 扩展)、可选 Redis(L1 缓存与会话追踪)、OpenAI Embedding API(或兼容 Embedding 服务)、Gemini/NLI(可选)。
- 下载与安装依赖:执行 npm install 获取所需依赖。
- 数据库初始化与迁移:应用 lib/memory/memory-schema.sql 等 SQL 文件完成数据库架构初始化与迁移。
- Embedding 启用与向量化:配置 OPENAI_API_KEY 或等效 Embedding 服务,并在需要时执行 backfill 脚本 backfill-embeddings.js。
- 启动服务器:运行 node server.js,端口默认57332(可通过 PORT 环境变量修改)。
- 可选的后台工作者:MemoryEvaluator、EmbeddingWorker、GraphLinker、NLIClassifier、MemoryConsolidator 等均为后台异步任务,可以通过环境变量或代码启停进行配置。
-
服务器配置(MCP 客户端需要的配置示例,非服务器端代码) 说明:以下配置用于 MCP 客户端与服务器建立连接与认证,包含服务器名称、启动命令及参数等信息。客户端无需代码实现即可读取该配置以发起连接。 { "serverName": "Memento-MCP-Server-57332", "command": "node", "args": ["server.js"], "port": 57332, "baseUrl": "http://localhost:57332/mcp", "auth": { "type": "Bearer", "key": "<YOUR_MEMENTO_ACCESS_KEY>" }, "endpoints": { "initialize": "POST /mcp", "streaming": "GET /mcp", "terminate": "DELETE /mcp" }, "notes": "若未设定 MEMENTO_ACCESS_KEY,将禁用鉴权。实际部署时请使用 HTTPS 与反向代理保护。" }
-
基本使用方法
- 创建会话:以带鉴权的请求发送 initialize 请求,获取会话标识并在后续请求中携带,开启流式交互。
- 发送 JSON-RPC:通过 /mcp 的 POST 端点以 JSON-RPC 2.0 规范发送请求,服务端返回相应的结果或错误。
- 查询资源与 Prompts:通过资源与 prompts 的相关 API 端点获取记忆、主题、Prompts、工具等定义。
- 记忆与检索:使用 remember/recall 等工具将信息分片化存储,Recall 以关键词、主题、类型等参数进行检索,并结合 L1/L2/L3 的多层检索策略返回结果。
- 记忆的生命周期与维护:系统包含 TTL、GC、复合分层策略、自动链接、反射、以及定时的维护工作流等,确保长期可用性与可扩展性。
-
重要提示
- MCP 协议版本与扩展:该实现支持 MCP 协议的若干历史版本,以及多种传输模式,适合大模型的上下文服务场景。
- 安全性与鉴权:默认提供多种鉴权路径,必要时开启 MEMENTO_ACCESS_KEY 以实现 Bearer 验证、OAuth2 等机制。
- 部署与运维:结合 Redis、PostgreSQL 的集群化部署可以提升吞吐与可用性;监控、健康检查、日志与告警方案可与现有的云原生栈对接。