SuperAPI AI 工具集

oura-mcp

oura-mcp 是一个将 Oura Ring v2 API 封装为 MCP 服务器的开源工具,提供对全部 19 个数据集合的原始访问,支持完整分页与页数统计,不进行服务端分析。它修正了 Oura API 在分页、日期范围、latest 参数和字段过滤上的四种静默行为,并内置沙盒数据供无凭据试用。

访问官网

工具介绍

oura-mcp 是一个把 Oura Ring v2 API 封装成 MCP(Model Context Protocol)服务器的开源项目,让 AI 客户端能够直接读取 Oura 的健康数据。它的核心目标是解决 Oura API 在数据不完整时不会报错、而是返回看似完整结果的问题。

用途与定位 Oura API 在无法返回请求内容时不会报错,而是返回形状类似正确响应的其他数据。oura-mcp 在返回前会完整分页,并告知实际翻了多少页,避免模型基于部分数据给出自信但错误的答案。

主要能力

  1. 完整分页:如果客户端不跟随 next_token,只会拿到第一页。例如一天的心率数据为 1,231 条、跨 2 页,不分页只能得到 1,000 条(81%),看起来却像完整数据。本服务器会翻页到底再返回。
  2. 日期范围修正:end_date 在不同集合中行为不一致,workout 按 UTC 日期过滤但按本地时间报告。本服务器在两端各多请求两天再裁剪,保证范围始终包含两端。
  3. latest 参数校验:只有 heartrate 和 ring_battery_level 支持 latest=true,其他 17 个集合会忽略它并返回整个集合。本服务器在请求发出前就拒绝无效用法。
  4. 字段过滤反馈:不存在的字段会被静默忽略。本服务器会把从未出现的字段列在 ignored_fields 中。

工具集 提供六个工具,而非每个集合一个工具:

  • oura_check:检查服务器是否正常工作。
  • oura_today:返回今天的 daily_sleep 和 daily_readiness 以及之前 7 天的原始记录,不做任何计算。参数 days 为 1 到 30,默认 7。
  • oura_collections:列出全部 19 个集合及其内容和形状。
  • oura_query:按集合、起止日期查询原始记录,返回页数。
  • oura_compare:比较两个时间段的指标均值,给出差异和该指标自身的正常波动带,输出 outside_noise、within_noise 或 cannot_tell 三种结论。
  • oura_relate:计算两个指标在指定滞后天数(0-7)下的相关性,去除星期几效应和趋势,返回相关系数、95% 区间和三种结论。 所有工具均为只读,包内没有 POST、PUT 或 DELETE。

使用方式

  • 沙盒试用:无需凭据,18 个集合可用(personal_info 除外),数据为合成数据。
  • 安装:下载 oura-mcp.mcpb 双击安装到 Claude Desktop;或使用 uvx --from mcp-oura oura-mcp;或 pip install mcp-oura。
  • 凭据:Oura 已于 2025 年 12 月停止发放个人访问令牌。现有令牌仍可用,新令牌需通过 OAuth2 在 cloud.ouraring.com/oauth/applications 注册应用,重定向地址为 http://localhost:9876/callback/(末尾斜杠必需)。令牌存储在 ~/.config/oura-mcp/credenciales.json,权限 600,可自动刷新,oura-mcp --forget 可清除。
  • 远程使用:claude.ai 和 ChatGPT 通过 URL 连接,需将 ts/worker 部署为自己的 Cloudflare Worker,仅限自己的 Oura 账户使用。

适用场景 适合希望让 AI 助手直接读取和分析 Oura Ring 健康数据、且需要确保数据完整性和统计严谨性的用户。

限制

  • 远程 Worker 部署为实验性,尚未在真实部署、真实 Oura 账户或 claude.ai/ChatGPT 完整连接上验证。
  • oura_compare 需要至少 7 天有效值和 60 天历史来估计波动带。
  • oura_relate 在真实数据上通常需要约三个月数据。
  • 沙盒数据重复短模式,有效配对不足。
  • 不提供趋势工具,因为专门的斜率检验相比前后半段比较仅多捕捉少量点。