MemoryMesh 上下文服务端实现

使用说明(Markdown 格式)

使用说明

项目简介

MemoryMesh 上下文服务端实现是一个基于 MCP(Model Context Protocol)的后端服务器,负责暴露可被 LLM 客户端调用的工具(如读取上下文、保存上下文、搜索历史、获取用户画像等),并通过标准化的请求/响应规范与客户端通信。同时,服务端使用 DynamoDB 存储和索引上下文数据,便于跨会话和跨工具的上下文管理。

主要功能点

  • MCP 核心能力暴露:
    • 列出可用工具(ListTools)
    • 调用工具(CallTool)并路由到具体实现
  • 可用工具(示例):
    • get_context:读取用户最近的上下文
    • save_context:将会话中的上下文保存为上下文条目
    • search_memory:按关键词检索历史上下文
    • get_user_profile:获取或创建用户画像
  • 存储与持久化:
    • 使用 AWS DynamoDB 存储上下文条目和用户画像
  • 传输与部署:
    • 通过 stdio 传输实现 MCP 服务端通信
    • 具备与 Lambda/API Gateway 的后端集成(用于 API 调用场景)
  • 强类型与校验:
    • 使用 zod 做输入校验,确保传入参数符合定义的 Schema

安装步骤

  • 安装依赖(工作区根目录)
    • 运行 npm install
  • 构建 MCP 服务器
    • 进入 mcp-server 目录,执行构建命令以生成 dist 包
  • 部署基础设施(可选)
    • 根据文档在 infra 目录使用 AWS CDK 部署 DynamoDB、API Gateway、Lambda 等组件
  • 启动 MCP 服务器
    • 通过 MCP 客户端的配置,使用启动命令启动服务器(见下方“服务器配置”部分)
  • 运行与测试
    • 使用 Claude Desktop、ChatGPT、Gemini 等 MCP 客户端,验证 ListTools/CallTool 的交互是否正确

服务器配置

MCP 客户端需要启动配置,用于连接并启动 MCP 服务器(以下为示例描述,实际配置请按客户端要求提供 JSON 配置并在命令中使用):

  • 服务器名称: memorymesh
  • 启动命令: node
  • 启动参数: 包含入口脚本位置,例如 dist/index.js(具体路径以构建产物为准)
  • 环境变量(示例):
    • AWS_REGION: eu-west-2
    • CONTEXT_TABLE: memorymesh-context
    • PROFILE_TABLE: memorymesh-profile
    • MEMORYMESH_USER_ID: 你的唯一用户标识
    • 其他必要的 AWS 认证信息(若客户端需要在本地直接访问 AWS)

注:

  • MCP 客户端通常不需要直接暴露服务器配置信息的实现细节,但需要知道服务器名称与启动方式,以便在本地或本机环境中启动对应的后台服务并建立通信通道。
  • 具体注解与注释请参考仓库内提供的文档和示例配置说明。

基本使用方法

  • 启动后,客户端可对 MCP 服务器执行以下操作:
    • 获取可用工具列表(ListTools)
    • 按名称调用工具(CallTool),如 get_context、save_context、search_memory、get_user_profile
    • 传入合规的输入参数,服务端返回 JSON-RPC 风格的响应(包含 tool 执行结果、上下文等信息)
  • 客户端与服务器通过标准的 MCP 约定进行通讯,服务器负责会话管理、能力声明以及多种传输协议支持(此实现以 stdio 为主)。
  • 通过工具实现的能力,应用层可以将用户的对话上下文持续化、跨工具共享,并支持简易的检索和分析。

服务器信息