使用说明(Markdown 格式)
-
项目简介
- 本仓库实现了一个 MCP 服务器端,结合 Umem 外部记忆系统、向量数据库(Qdrant/PGVector)以及嵌入生成组件,为 LLM 客户端提供一致的上下文、工具调用和提示渲染能力。服务器通过 OAuth2(WorkOS)进行鉴权,支持多传输协议和会话管理。
-
主要功能点
- MCP 服务器核心:处理来自 MCP 客户端的请求,注册和执行工具(Tools)、提供资源(Resources)以及渲染与返回 Prompts(Prompts)。
- OAuth 保护:通过 JWKS 验证签名,含授权端点与资源端点,确保只有认证用户能够访问 MCP 服务。
- 工具实现示例(Memory 工具集):add_memory、get_all_memory、get_memory_by_id、search 等,绑定内存控制器与向量存储。
- 资源与 Prompts 支撑:后端通过现有内存与向量存储能力,提供上下文资源与提示的获取与渲染。
- 多传输协议:MCP HTTP Stream/Server-Sent Events(SSE)与 HTTP 服务端实现,以及对外暴露的 REST/JSON-RPC 风格入口。
- 安全与多租户:以请求头中的用户身份信息进行分租;OAuth2 端点设计用于动态鉴权。
-
安装步骤
- 依赖与环境
- Rust toolchain(建议 1.70+)
- Qdrant 向量数据库(容器化运行,作为内存向量存储后端)
- OpenID / WorkOS 等鉴权服务(OAuth2 服务器与 JWKS 端点,供 token 校验使用)
- Cloudflare Embeddings 或等效 Embeddings 服务(若使用 Umem 的 Cloudflare Embedding 配置)
- 编译与启动
- 在仓库根目录下执行构建与启动 MCP 服务端二进制(示例: cargo build --release cargo run --release --bin mcp 说明:mcp 可通过 src/bin/mcp.rs 启动,依赖 umem_config 的配置加载机制。)
- 运行时注意
- 确保 Qdrant 服务可访问,且配置中的环境变量已正确设置(.env 文件或系统环境变量)。
- 确保 JWKS 地址、WorkOS 客户端信息正确无误,以便通过鉴权中间件。
- 依赖与环境
-
服务器配置(供 MCP 客户端在连接前参照的配置说明,注:客户端不需要此代码,仅用于描述启动参数) 伪 JSON 描述(请以注释说明配置项的含义,实际客户端不需要直接使用代码块) { "server_name": "enfinyte-mcp", "command": "cargo", "args": ["run", "--bin", "mcp", "--release"], "notes": "启动 MCP 服务端。依赖本地配置文件或环境变量加载配置(包括服务地址、鉴权端点、远端系统地址等)。" }
说明:
- server_name:服务端名称,建议与实际部署名称保持一致,便于监控和运维追踪。
- command/args:启动 MCP 服务的命令及参数,客户端不需要执行该命令,只用于描述客户端如何启动服务器。
- 注:MCP 服务器通过 umem_config 的配置读取(如 .config/enfinyte/enfinyte.toml),需要确保配置文件或环境变量已就绪。
-
基本使用方法
- 启动服务器
- 按安装步骤准备好环境后,运行 MCP 服务端(如 cargo run --release --bin mcp)。
- 客户端接入准备
- 客户端应先通过 OAuth2 流程获取访问令牌(Bearer token)。
- 客户端在请求头中携带 Authorization: Bearer <token>,以通过服务器的鉴权中间件。
- 常用交互方式
- 通过 SSE/HTTP 入口与服务器建立会话,或通过 HTTP 路由进行工具调用与资源查询。
- 使用 MCP 工具(如 add_memory、get_memory_by_query 等)对内存进行持久化、检索和查询。
- 流程示意(简述性描述,非代码)
- 客户端通过鉴权后向 MCP 服务器发送请求,服务器根据授权用户的上下文执行相应的工具、返回资源与提示,必要时触发外部嵌入、向量检索等子系统。
- 监控与日志
- 服务器启动时会输出运行地址与日志,可在运维中关注 OAuth 路由、MCP 入口、SSE 路径等。
- 启动服务器
-
注意事项
- MCP 客户端应了解服务器提供的工具集合及能力(提示、资源、工具的能力声明)。
- 确保鉴权服务可用且 JWKS 地址正确,以避免鉴权失败。
- 依赖组件(如 Qdrant、Cloudflare Embeddings、WorkOS)需按文档正确部署并对接。
-
使用建议
- 在开发阶段可先以简化的测试账户进行集成验证,确保基本的授权与工具调用流程正常工作后再接入生产账户。
信息
分类
AI与计算