使用说明(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),需要确保配置文件或环境变量已就绪。
  • 基本使用方法

    1. 启动服务器
      • 按安装步骤准备好环境后,运行 MCP 服务端(如 cargo run --release --bin mcp)。
    2. 客户端接入准备
      • 客户端应先通过 OAuth2 流程获取访问令牌(Bearer token)。
      • 客户端在请求头中携带 Authorization: Bearer <token>,以通过服务器的鉴权中间件。
    3. 常用交互方式
      • 通过 SSE/HTTP 入口与服务器建立会话,或通过 HTTP 路由进行工具调用与资源查询。
      • 使用 MCP 工具(如 add_memory、get_memory_by_query 等)对内存进行持久化、检索和查询。
    4. 流程示意(简述性描述,非代码)
      • 客户端通过鉴权后向 MCP 服务器发送请求,服务器根据授权用户的上下文执行相应的工具、返回资源与提示,必要时触发外部嵌入、向量检索等子系统。
    5. 监控与日志
      • 服务器启动时会输出运行地址与日志,可在运维中关注 OAuth 路由、MCP 入口、SSE 路径等。
  • 注意事项

    • MCP 客户端应了解服务器提供的工具集合及能力(提示、资源、工具的能力声明)。
    • 确保鉴权服务可用且 JWKS 地址正确,以避免鉴权失败。
    • 依赖组件(如 Qdrant、Cloudflare Embeddings、WorkOS)需按文档正确部署并对接。
  • 使用建议

    • 在开发阶段可先以简化的测试账户进行集成验证,确保基本的授权与工具调用流程正常工作后再接入生产账户。

信息

分类

AI与计算