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 进行调用与交互
-
安装步骤(简要)
- 安装依赖并构建后端 MCP 服务器(mcp-server)
- 根据需要配置 Embedding 提供者(OpenAI 或 Ollama),Convex、OBS 系统等
- 运行 MCP 服务器:可通过 stdio 或 SSE 启动
- 配置客户端连接到服务器(下方的服务器配置示例给出具体参数)
-
服务器配置(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 日志等实现记忆的存储、检索与持久化