健康数据集成服务

Oura Ring MCP Server是一个全面的模型上下文协议服务器,用于集成Oura Ring API,提供所有健康和健康数据端点的访问。

  • by marioroman
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 marioroman/oura-mcp-server

使用说明

Oura环MCP服务器

一个全面的模型上下文协议(MCP)服务器,用于与Oura Ring API集成,提供对所有健康和身心健康数据端点的访问。

特性

  • API全面覆盖:访问所有10个Oura Ring API端点
  • 个人信息:获取用户配置文件和设备信息
  • 健康指标:日常活动、睡眠、准备和SpO2数据
  • 会话跟踪:详细的会话和锻炼数据
  • 增强标签:自定义标签和注释
  • 实时资源:自动更新最近的数据(7天窗口)
  • 分页支持:使用分页标记处理大型数据集
  • 日期范围筛选:灵活的基于日期的查询

设置

  1. 安装依赖项:

    uv sync
    
  2. 配置API凭据:

    cp .env.example .env
    # Edit .env and add your Oura Ring access token
    
  3. 获取您的Oura Ring API代币:

    • 首选https://cloud.ouraring.com/personal-access-tokens
    • 创建新的个人访问令牌
    • 将其添加到您的 .env 文件为 OURA_ACCESS_TOKEN

用法

运行MCP服务器

生产模式:

uv run python -m src.oura_mcp_server.server

带检查员的开发模式:

uv run mcp dev src/oura_mcp_server/server.py:mcp

开发模式在以下位置启动MCP检查器 http://localhost:6274 您可以在哪里:

  • 交互式测试所有工具
  • 查看实时协议消息
  • 探索可用资源
  • 调试服务器功能

可用工具

  1. 获取乌拉个人信息:获取个人信息和设备详细信息
  2. get_oura_ssions:获取日期范围的会话数据
  3. 格鲁吉亚活动:获取每日活动指标(步数、卡路里、距离)
  4. 入睡:获取每日睡眠数据和分数
  5. 格鲁吉亚spo2:获取每日SpO2测量值
  6. 准备就绪:获取每日准备分数
  7. 入睡:获取详细的睡眠会话数据
  8. get_oura_sleep_time:获取睡眠时间和持续时间数据
  9. get_oura_workout:进行锻炼和锻炼
  10. get_oura_enhanced_tag:获取自定义标签和注释

可用资源

  1. oura://personal_info:用户配置文件和设备信息
  2. oura://sessions/recent:最近会话数据(过去7天)
  3. oura://activity/recent:最近的日常活动(过去7天)
  4. oura://sleep/recent:最近的睡眠数据(过去7天)
  5. oura://readiness/recent:最近的准备情况评分(过去7天)

API集成

此服务器与 全部 Oura Ring API v2端点:

  • /v2/usercollection/personal_info
  • /v2/usercollection/session
  • /v2/usercollection/daily_activity
  • /v2/usercollection/daily_sleep
  • /v2/usercollection/daily_spo2
  • /v2/usercollection/daily_readiness
  • /v2/usercollection/sleep
  • /v2/usercollection/sleep_time
  • /v2/usercollection/workout
  • /v2/usercollection/enhanced_tag

特征:

  • 承载令牌身份验证
  • 日期范围过滤
  • 分页支持
  • 全面的错误处理
  • 统一的API客户端架构

发展

服务器是使用以下方式构建的:

  • FastMCP:高级MCP框架
  • 请求::API调用的HTTP客户端
  • Python dotenv:环境变量管理
  • 派丹蒂克:数据验证

MCP检验员测试

测试和探索服务器的最简单方法是使用MCP检查器:

  1. 启动开发服务器:

    uv run mcp dev src/oura_mcp_server/server.py:mcp
    
  2. 打开检查器URL (如终端输出所示):

    http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=<your-token>
    
  3. 交互式测试工具:

    • 尝试 get_oura_daily_activity 日期如下 2024-01-01 向 2024-01-07
    • 探索 get_oura_personal_info (无需参数)
    • 查看以下资源 oura://activity/recent

工具调用示例

# Get daily activity data
get_oura_daily_activity(start_date="2024-01-01", end_date="2024-01-07")

# Get sleep data
get_oura_daily_sleep(start_date="2024-01-01", end_date="2024-01-07")

# Get personal info
get_oura_personal_info()

# Get workout sessions
get_oura_workout(start_date="2024-01-01", end_date="2024-01-07")

错误处理

该服务器包括全面的错误处理功能,用于:

  • 无效的API令牌
  • 网络连接问题
  • 日期格式无效
  • API速率限制
  • HTTP错误

安全

  • API令牌存储在环境变量中
  • 未记录敏感数据
  • HTTPS用于所有API通信