ZuraLog MCP Server Suite

使用说明

  • 项目简介
    • ZuraLog 的 Cloud Brain 框架内部实现了一整套 MCP(Model Context Protocol)服务器集合,统一暴露为“资源(Resources)”、“工具(Tools)”和“提示模板(Prompts)”等能力,供 LLM 客户端通过 JSON-结构化的调用进行查询、执行外部功能以及获取对话上下文。
    • 该仓库包含多个实际的 MCP 服务器实现(如 Strava、Apple Health、Google Health Connect、Fitbit、Oura、Withings、Polar 等),以及一个注册中心、一个统一的 MCP 客户端和一个 AI 引擎的编排器(Orchestrator),实现了从工具发现、路由调用到结果汇总的完整流程。
  • 主要功能点
    • 统一的 MCPServerRegistry:集中管理已注册的 MCP 服务器,提供按名称检索、按工具聚合工具定义、以及按服务器聚合工具表的能力。
    • BaseMCPServer 与各具体服务器实现:每个服务器提供 name、description、get_tools、execute_tool、get_resources 等抽象能力,统一接口便于 LLM 进行工具发现和调用。
    • Tools 与 Resources 定义:通过 ToolDefinition、ToolResult 和 Resource 模型,以标准化 JSON 结构描述工具的输入、输出及可访问的数据资源。
    • MCP Client 与 Orchestrator:MCPClient 路由工具调用至合适的服务器;Orchestrator 负责向 LLM 传入工具定义、执行工具、将工具结果回传给模型并返回最终响应。
    • 数据与任务整合:包含多种数据源的同步任务、推送通知、分析统计、以及针对健康数据的复杂工作流(如 anomaly、健康分数、报告生成等)。
    • 跨服务的数据访问与写入:通过 HealthDataServerBase、DeviceWriteService、Pinecone 内存等机制,支撑跨数据源的读取与写入。
  • 安装步骤
    • 准备环境与依赖
        1. 确保机器上安装了 Python 3.11+、PostgreSQL、Redis。
        1. 搭建并启动数据库与缓存服务(仓内使用了 PostgreSQL/ Redis 的 Docker 配置,需自行部署或使用现有环境)。
        1. 安装依赖:为后端、API、MCP 服务等安装所需的 Python 包。
    • 配置与初始化
        1. 配置环境变量:数据库连接、Redis、Supabase、外部服务的 API Key、OAuth 准入信息、健康数据提供方的凭证等。
        1. 运行数据库迁移并初始化数据库结构(Alembic 或等效工具)。
    • 启动后端服务
        1. 启动 Cloud Brain 的 FastAPI 服务(后端云脑核心),该服务在启动时会自动加载并注册所有 MCP 服务器实现到注册中心。
        1. 通过后端公开的 API 入口对外提供健康检查、认证、数据接入等能力。
    • 运行与监控
        1. 使用标准的 HTTP/WS 终端与前端或脚本进行交互,后端会通过 MCP Client 与各 MCP 服务器通信。
        1. 若需要,开启日志、Sentry、PostHog 的监控,确保对接的错误和分析数据可被追踪。
  • 服务器配置(MCP 客户端需要的启动信息) 说明:以下配置用于 MCP 客户端在启动时绑定并连接到各 MCP 服务器。MCP 客户端在本仓中不要求你直接运行每个服务器进程;服务器是在云脑后端启动时通过代码注册并暴露能力。下列字段仅用于帮助你理解和对接运行环境。server_name 对应各实现中的 server.name,command/args 表示一旦需要单独独立启动某个服务器时的启动信息(非 MCP 客户端必需)。
    • 服务器名:withings
      • command: python
      • args: ["-m", "cloud-brain.app.mcp_servers.withings_server"]
      • 说明:独立启动 Withings MCP 服务的入口(若以微服务方式分离部署时使用)。
    • 服务器名:apple_health
      • command: python
      • args: ["-m", "cloud-brain.app.mcp_servers.apple_health_server"]
    • 服务器名:health_connect
      • command: python
      • args: ["-m", "cloud-brain.app.mcp_servers.health_connect_server"]
    • 服务器名:strava
      • command: python
      • args: ["-m", "cloud-brain.app.mcp_servers.strava_server"]
    • 服务器名:fitbit
      • command: python
      • args: ["-m", "cloud-brain.app.mcp_servers.fitbit_server"]
    • 服务器名:oura
      • command: python
      • args: ["-m", "cloud-brain.app.mcp_servers.oura_server"]
    • 服务器名:polar
      • command: python
      • args: ["-m", "cloud-brain.app.mcp_servers.polar_server"]
    • 服务器名:withings
      • command: python
      • args: ["-m", "cloud-brain.app.mcp_servers.withings_server"]
    • 服务器名:deep_link
      • command: python
      • args: ["-m", "cloud-brain.app.mcp_servers.deep_link_server"] 说明:以上服务器启动信息为示意性描述,实际运行应结合部署架构、容器化与进程管理方式来构建。MCP 客户端连接时的必要信息在本仓的实现中由 Cloud Brain 的启动流程自动完成,具体的 server_name、command、args 将由部署时的编排工具决定。
  • 基本使用方法
    • 启动并注册后,后端的 Orchestrator 将自动发现并连接到所有 MCP 服务器,MCPClient 将根据请求的 tool_name 将调用路由到相应的服务器执行,返回 ToolResult 给 LLM;LLM 根据 ToolResult 继续对话或返回最终文本。
    • 开发与排错时,可通过后端的健康检查接口、日志、以及 Sentry/PostHog 进行监控与追踪。

服务器信息