健康数据协议服务器

Ultrahuman MCP Server是一个提供健康数据访问的协议服务器,通过标准化工具使AI助手和应用程序能够与Ultrahuman的健康和健身数据进行交互。

  • by Vodolazkyi
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Vodolazkyi/Ultrahuman-MCP-Server

使用说明

超人类MCP服务器

模型上下文协议(MCP)服务器,提供对超人类API数据的访问。该服务器允许AI助手和应用程序通过标准化的MCP工具与超人类健康和健身数据进行交互。

特性

  • 完整的健康指标访问:睡眠、运动、心率、心率变异性、血糖等
  • 专用工具:针对不同数据类型(睡眠、运动、血糖、心脏指标)的专用工具
  • 错误处理:具有详细错误消息的稳健错误处理
  • 日期验证:日期格式的自动验证
  • 环境配置:通过环境变量灵活配置

可用工具

核心工具

  • get_default_user_metrics(date) -获取特定日期默认用户的所有健康指标(来自env)
  • get_user_metrics(email, date) -获取特定日期用户的所有健康指标
  • get_sleep_data(email, date) -获取特定睡眠指标
  • get_movement_data(email, date) -获取运动和活动数据
  • get_glucose_metrics(email, date) -获取葡萄糖相关指标
  • get_heart_metrics(email, date) -获取心率、心率变异性和恢复数据

资源

  • ultrahuman://api-info -关于超人类合作伙伴API的信息

可用指标

服务器提供对以下健康指标的访问:

  1. 睡眠数据 -睡眠模式、质量、持续时间
  2. 运动数据 -活动水平、运动模式
  3. 心率 -连续心率监测
  4. 心率变异性 -心率变异性测量
  5. 温度 -体温读数
  6. 步骤 -每日步数
  7. 葡萄糖 -血糖水平(来自CGM)
  8. 代谢评分 -总体代谢健康评分
  9. 葡萄糖变异性(%) -血糖稳定性
  10. 平均葡萄糖(mg/dL) -每日葡萄糖平均值
  11. 糖化血红蛋白 -长期血糖控制指标
  12. 目标时间(%) -在目标葡萄糖范围内花费的时间
  13. 恢复指数 -恢复状态指标
  14. 运动指数 -运动质量评估
  15. 最大摄氧量 -心血管健康测量

设置

先决条件

  1. 超人类API访问:

    • 授权密钥(40个字符的字母数字字符串)
    • 来自用户的数据共享代码
    • 已授予访问权限的用户电子邮件
    • 📋 请参阅详细的设置说明: API_SETUP.md
    • 联系support@ultrahuman.com用于API访问
    • API文件:https://blog.ultrahuman.com/blog/accessing-the-ultrahuman-partnership-api/
  2. Python 3.11+

安装

  1. 克隆此存储库:
git clone https://github.com/Vodolazkyi/Ultrahuman-Server.git
cd Ultrahuman-Server
  1. 安装依赖项:
pip install -r requirements.txt
  1. 配置环境变量:
cp env.example .env
# Edit .env with your Ultrahuman API credentials
  1. 运行服务器:
python main.py

服务器将于启动 http://localhost:8000/mcp 默认情况下。

环境变量

变量 描述 默认值
ULTRAHUMAN_AUTH_KEY 您的40个字符的授权密钥 必填
ULTRAHUMAN_BASE_URL API基本URL https://partner.ultrahuman.com/api/v1
ULTRAHUMAN_DEFAULT_EMAIL 用于测试的默认用户电子邮件 可选
PORT 服务器端口 8000

使用示例

与MCP客户端一起使用

import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main():
    server_params = StdioServerParameters(
        command="python",
        args=["main.py"],
        env={"ULTRAHUMAN_AUTH_KEY": "your_key_here"}
    )
    
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            # Initialize the connection
            await session.initialize()
            
            # Get user metrics
            result = await session.call_tool(
                "get_user_metrics",
                {
                    "email": "user@example.com",
                    "date": "2024-01-15"
                }
            )
            print(result)

if __name__ == "__main__":
    asyncio.run(main())

工具示例

获取完整指标

# Get all metrics for a user
result = await session.call_tool("get_user_metrics", {
    "email": "user@example.com",
    "date": "2024-01-15"
})

仅获取睡眠数据

# Get sleep-specific data
result = await session.call_tool("get_sleep_data", {
    "email": "user@example.com", 
    "date": "2024-01-15"
})

获取血糖指标

# Get glucose-related metrics
result = await session.call_tool("get_glucose_metrics", {
    "email": "user@example.com",
    "date": "2024-01-15"
})

API响应格式

所有工具都返回一致的响应格式:

{
    "success": true,
    "email": "user@example.com",
    "date": "2024-01-15",
    "metrics": {
        // ... actual metrics data
    }
}

出现错误时:

{
    "success": false,
    "email": "user@example.com", 
    "date": "2024-01-15",
    "error": "Error description"
}

部署

铁路部署

此服务器已配置为在Railway上部署:

  1. 将您的GitHub存储库连接到Railway
  2. 在铁路仪表板中设置环境变量:
    • ULTRAHUMAN_AUTH_KEY
    • ULTRAHUMAN_BASE_URL (可选)
  3. 从主分支自动部署

Docker部署

# Build the image
docker build -t ultrahuman-mcp .

# Run the container
docker run -p 8000:8000 \
  -e ULTRAHUMAN_AUTH_KEY=your_key_here \
  ultrahuman-mcp

API环境

  • 生产: https://partner.ultrahuman.com/api/v1/metrics
  • 暂存: https://www.staging.ultrahuman.com/api/v1/metrics

错误处理

服务器包括全面的错误处理:

  • 身份验证错误:授权密钥无效或丢失
  • 验证错误:电子邮件格式或日期格式无效
  • API错误:来自Ultrahuman API的HTTP错误
  • 网络错误:连接超时或网络问题

安全

  • API密钥通过环境变量进行管理
  • 所有API请求都使用HTTPS
  • 没有记录或缓存敏感数据

贡献

我们欢迎捐款!请随时:

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature-name
  3. 提交您的更改: git commit -am 'Add feature'
  4. 推到分支: git push origin feature-name
  5. 提交拉取请求

许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。

支持

关于以下问题:

  • MCP服务器:在此存储库中打开一个问题
  • 超人类API:联系超人支持
  • FastMCP:检查 FastMCP文档

存储库设置

有关最大可见性和SEO优化,请参阅 GITHUB_SETUP.md 有关以下内容的详细说明:

  • 使用适当的标签配置GitHub About部分
  • 搜索引擎的SEO优化
  • 添加到MCP展示和精彩列表

链接