CyberMem MCP 服务器端实现
使用说明内容(Markdown格式)
-
项目简介
- CyberMem MCP 服务器端实现是一个完整的后端服务,遵循 Model Context Protocol(MCP)标准,目的是为大语言模型或其他智能代理提供可共享、可持久化的上下文与外部能力(资源、工具、Prompts)。
- 它支持在本地开发环境和远程部署环境之间切换,提供多种传输方式(包括标准输入输出、HTTP 传输等)。
-
主要功能点
- MCP 核心能力:注册并暴露 Resources、Tools,以及 Prompts,客户端通过 JSON-RPC 调用进行资源读取、工具执行和 prompt 渲染。
- 会话与上下文管理:通过 AsyncLocalStorage 等机制为每个请求保持客户端标识和上下文信息,便于工具调用的鉴权与日志记录。
- 数据持久化与内存引擎:原生支持本地内存实现(openmemory-js)以及 SQLite 持久化,具备增删改查以及简单的版本化能力。
- 多传输协议:支持 STDIO、Streamable HTTP(基于 MCP 的 HTTP 传输)、SSE 等传输方式,便于不同环境下的集成与部署。
- 安全与治理:包含简单的请求和初始化握手、权限注入,以及对外部客户端的令牌/密钥支持(在本地模式与远程模式下的行为有所不同)。
- 与生态集成:提供工具如 add_memory、query_memory、update_memory、reinforce_memory、delete_memory,方便 LLM 客户端进行记忆管理;并提供资源协议和协议说明供客户端对接。
-
安装步骤
- 依赖环境要求:Node.js、TypeScript 支持、以及必要的数据库/存储能力(SQLite/OpenMemory SDK)。
-
- 获取代码后进入仓库根目录,安装依赖:
- 在前端/后端单元的工作区内执行相应的包管理器命令(如 npm install、pnpm install)。
-
- 构建 MCP 服务:
- 运行构建命令后得到 dist 输出,可以直接使用 node 运行打包后的入口(如 packages/mcp/dist/index.js)。
-
- 启动 MCP 服务:
- 通过本仓库提供的命令或直接执行 dist/index.js,按需选择传输协议(Stdio/HTTP),并传入必要的参数,例如服务器名称、端点地址、Token、环境等。
-
- 验证 MCP 服务:
- 使用客户端按照 MCP 配置连接,执行资源/工具调用,确认 JSON-RPC 的请求/响应流程正常工作。
-
服务器配置(MCP 客户端连接所需的配置示例) 说明:以下 JSON 配置用于 MCP 客户端连接到 CyberMem MCP 服务器。字段含义如下:
- server: MCP 服务器的名称
- command: 启动服务器的命令(可在客户端参考,用以快速复现连接信息)
- args: 启动命令的参数
- 注解: 客户端实际连接时可能需要根据部署环境传入 --url、--token、--env 等参数,此处提供一个准确的、与仓库实现对应的示例配置
{ "server": "cybermem", "command": "npx @cybermem/mcp", "args": [ "--url", "http://localhost:8626", "--env", "prod", "--token", "<your-api-key-if-needed>" ], "notes": "示例配置,具体参数请参考部署环境的实际地址/令牌。若在本地调试,使用 localhost 8626 端口;若在远程环境,需要将 --url 指向远端 MCP 服务地址,且在服务端开启相应认证配置。" }