Memory Crystal MCP 服务端

使用说明(Markdown 格式)

  • 项目简介 Memory Crystal MCP 服务端是一个完整的 MCP 服务器实现,核心职责是向 LLM 客户端提供上下文信息和功能,包括:

    • 资源(Resources)托管和访问,用于数据存储与检索
    • 工具(Tools)注册与执行,LLM 可以通过工具调用外部功能
    • Prompt 模板的定义与渲染,支持可定制的交互模式
    • 通过 JSON-RPC 与客户端通信,支持会话管理与能力声明 该实现支持两种传输模式:标准输入输出(stdio)与服务器端事件流(SSE),并提供多工具集成(如 crystal_remember、crystal_recall、crystal_recent、crystal_search_messages 等)
  • 主要功能点

    • MCP 服务端核心实现:注册工具、处理读取/调用工具的请求,返回工具执行结果
    • 多传输协议支持:stdio 与 SSE,方便本地或网络场景集成
    • MCP 工具集合:内置多种 Memory Crystal 相关工具,覆盖记忆捕捉、回忆、最近记忆、统计、唤醒等能力
    • 服务器端背后服务:Convex、嵌入服务、Obsidan 日志、Obsidian/Notion 同步等
    • 安全与会话支持:内置会话管理、权限检查、限额与速率限制(部分功能通过 Convex 内部 API 实现)
    • 与前端与插件生态结合:插件端基于 MCP 进行调用与交互
  • 安装步骤(简要)

    1. 安装依赖并构建后端 MCP 服务器(mcp-server)
    2. 根据需要配置 Embedding 提供者(OpenAI 或 Ollama),Convex、OBS 系统等
    3. 运行 MCP 服务器:可通过 stdio 或 SSE 启动
    4. 配置客户端连接到服务器(下方的服务器配置示例给出具体参数)
  • 服务器配置(MCP 客户端配置示例,非代码,仅供参考) 说明:以下 JSON 为客户端需要了解的连接信息格式,实际客户端可能无需直接运行该 JSON,但用于描述连接参数。请按实际部署环境选择传输模式并设定对应参数。

    • SSE 模式示例 { "serverName": "memory-crystal-mcp-server", "command": "node", "args": ["dist/index.js"], "mode": "sse", "host": "127.0.0.1", "port": 8788, "transportPath": "/sse", "notes": "客户端通过 SSE 订阅 /sse,传输的消息在 /messages 端点进行 POST/GET 交互。" }

    • STDIO 模式示例 { "serverName": "memory-crystal-mcp-server", "command": "node", "args": ["dist/index.js"], "mode": "stdio", "notes": "服务器通过标准输入输出流进行通信,适用于嵌入式或本地开发环境。" }

    注释:MCP 客户端不需要在此输出中看到具体实现细节,但以上信息有助于理解启动与连接方式。实际部署时,请按照项目根目录下的说明以构建产物为准。

  • 基本使用方法(如何与 MCP 服务器交互)

    • 启动 MCP 服务器(stdio 或 SSE 模式,具体取决于环境配置)
    • 客户端通过 MCP 的 Tools 接口读取可用工具清单(ListTools),随后通过 CallTool 请求执行具体工具(如 crystal_remember、crystal_recall、crystal_search_messages 等)
    • 客户端可以通过服务器提供的资源管理接口读取/写入 memory、checkpoint、sessions 等数据
    • 请求和响应以 JSON-RPC 风格进行,服务器会返回工具执行结果或错误信息
    • 服务器支持多会话,具备基础的会话管理、能力声明,能与多种传输协议协同工作
  • 其他要点

    • MCP 服务端代码位于 mcp-server/
    • 服务器对外暴露的工具集合在代码中定义,并在 ListTools 请求时返回
    • 服务器端通过 Convex、嵌入服务、Obsidian 日志等实现记忆的存储、检索与持久化

服务器信息