mcpField
O
oura-ring-mcp

oura-ring-mcp

本地服务
github.com/mitchhankins01健康医疗3137 周前更新

关于 oura-ring-mcp

oura-ring-mcp 将 Oura Ring 的睡眠、恢复度和活动数据连接到 Claude 等 AI 助手,返回易读的分析结果而非原始 JSON。适合希望通过对话了解自身健康指标的用户,也可部署为远程服务。

主要功能

  1. 01睡眠、恢复度、活动与心率数据查询
  2. 02时长与评分的可读化格式
  3. 03异常检测与指标相关性分析
  4. 04周期对比与 HRV 趋势分析
  5. 05支持个人访问令牌或 OAuth 认证
  6. 06提供远程部署方式

适用场景

  1. 01询问昨晚的睡眠阶段与效率
  2. 02比较本周与上周的恢复度与活动情况
  3. 03分析某个标签(如饮酒)对睡眠质量的影响

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 Oura 数据相关的工具、资源与提示词,例如 get_sleep、analyze_hrv_trend 等工具以及 oura://today 等资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mitchhankins01-oura-ring": {
"command": "npx",
"args": [
"-y",
"oura-ring-mcp"
],
"env": {
"OURA_ACCESS_TOKEN": "<OURA_ACCESS_TOKEN>",
"OURA_CLIENT_ID": "<OURA_CLIENT_ID>",
"OURA_CLIENT_SECRET": "<OURA_CLIENT_SECRET>"
}
}
}
}
启动命令npx -y oura-ring-mcp
需要配置的环境变量
OURA_ACCESS_TOKEN密钥Oura Personal Access Token (get from cloud.ouraring.com/personal-access-tokens)
OURA_CLIENT_IDOAuth Client ID (alternative to access token, from developer.ouraring.com)
OURA_CLIENT_SECRET密钥OAuth Client Secret (required with OURA_CLIENT_ID)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmoura-ring-mcp0.1.4

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Oura MCP 服务

npm version MCP Registry CI

一个将 Oura Ring 连接到 Claude 和其他 AI 助手的 MCP 服务。获取关于睡眠、准备度和活动情况的易读洞察,而不只是原始 JSON。

功能

演示
  • 智能格式化 - 时长以小时/分钟显示,分数附带说明(“85 - 最佳”)
  • 睡眠分析 - 睡眠阶段、效率、HRV 和生物特征
  • 准备度跟踪 - 恢复分数及各项影响因素明细
  • 活动数据 - 步数、卡路里和强度明细
  • 健康指标 - 心率、SpO2、压力、心血管年龄
  • 智能分析 - 异常检测、相关性分析、趋势分析
  • 标签支持 - 比较不同条件下的指标

查看输出示例 — 查看 Claude 对睡眠、准备度、每周摘要和智能分析的回复

快速开始

1. 安装
npm install -g oura-ring-mcp

或者直接使用 npx(无需安装):

npx oura-ring-mcp
2. 通过 Oura 进行身份验证

选项 A:个人访问令牌(更简单)

  1. 前往 cloud.ouraring.com/personal-access-tokens
  2. 创建新令牌
  3. 在 Claude Desktop 配置中设置 OURA_ACCESS_TOKEN(见下文)

选项 B:OAuth 命令行流程

  1. 在 developer.ouraring.com 创建 OAuth 应用
    • 将重定向 URI 设置为 http://localhost:3000/callback
  2. 运行身份验证流程:
    export OURA_CLIENT_ID=your_client_id
    export OURA_CLIENT_SECRET=your_client_secret
    npx oura-ring-mcp auth
    
  3. 凭据将保存到 ~/.oura-mcp/credentials.json
3. 配置 Claude Desktop

添加到 claude_desktop_config.json:

使用个人访问令牌:

{
  "mcpServers": {
    "oura": {
      "command": "npx",
      "args": ["oura-ring-mcp"],
      "env": {
        "OURA_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

使用 OAuth(运行 npx oura-ring-mcp auth 后):

{
  "mcpServers": {
    "oura": {
      "command": "npx",
      "args": ["oura-ring-mcp"]
    }
  }
}

服务会从 ~/.oura-mcp/credentials.json 读取凭据。若要启用自动令牌刷新,请添加 OAuth 凭据:

{
  "mcpServers": {
    "oura": {
      "command": "npx",
      "args": ["oura-ring-mcp"],
      "env": {
        "OURA_CLIENT_ID": "your_client_id",
        "OURA_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

重启 Claude Desktop。需要 Node >=18。

我可以询问什么?

每日状态检查:

  • “我昨晚睡得怎么样?”
  • “我今天恢复得够充分,可以锻炼吗?”
  • “我的身体现在在告诉我什么?”

规律与趋势:

  • “我周末睡得更好吗?”
  • “为了获得最佳睡眠,我应该几点上床?”
  • “我的 HRV 正在改善还是下降?”

相关性与洞察:

  • “饮酒会影响我的睡眠质量吗?”
  • “哪些因素能预测我睡得最好的晚上?”
  • “锻炼时间会如何影响我的恢复?”

比较:

  • “比较我本周和上周的睡眠”
  • “冥想后和不冥想时,我的睡眠有什么不同?”
  • “开始服用镁后有什么变化?”

异常:

  • “我的数据中有没有异常读数?”
  • “为什么我昨天的准备度这么低?”
  • “找出指标异常的日子”

可用工具

数据检索
工具描述
get_sleep睡眠数据,包括睡眠阶段、效率、HR、HRV
get_daily_sleep每日睡眠分数及各项影响因素
get_readiness准备度分数和恢复指标
get_activity步数、卡路里和强度明细
get_workouts训练记录,包括类型和强度
get_sessions冥想和放松时段
get_heart_rate全天心率读数
get_stress压力水平和恢复时间
get_spo2血氧和呼吸紊乱情况
get_tags用户创建的标签和备注
智能分析
工具描述
detect_anomalies使用异常值检测查找异常读数
analyze_sleep_quality分析睡眠质量、趋势、模式和睡眠债
correlate_metrics查找健康指标之间的相关性
compare_periods比较本周与上周
compare_conditions比较有/无某个标签时的指标
best_sleep_conditions找出哪些因素预示着睡眠质量好或差
analyze_hrv_trend分析 HRV 趋势及滚动平均值

资源

资源描述
oura://today今日健康摘要
oura://weekly-summary最近 7 天的数据及平均值
oura://baseline你过去 30 天的平均值和正常范围
oura://monthly-insights过去 30 天的分析,包含趋势和异常情况
oura://tag-summary你的标签及使用频率

提示词

提示词描述
weekly-review全面的每周健康回顾
sleep-optimization找出哪些因素能带来最好的睡眠
recovery-check今天应该高强度训练还是休息?
compare-weeks比较本周与上周
tag-analysis分析特定标签对你健康的影响

远程部署(Railway)

部署 MCP 服务以供远程访问。该服务通过 Oura 代理 OAuth,因此用户可直接使用自己的 Oura 账户进行身份验证,无需 PAT。

1. 创建 Oura OAuth 应用
  1. 前往 Oura OAuth 应用
  2. 创建新应用
  3. 将 Redirect URI 设置为:https://your-app.railway.app/oauth/callback
  4. 记下 Client ID 和 Client Secret
2. 部署
# Install Railway CLI
npm install -g @railway/cli

# Login, init, and deploy
railway login
railway init
railway up
3. 设置环境变量

在 Railway 控制面板中添加:

变量描述
OURA_CLIENT_ID来自你的 Oura OAuth 应用
OURA_CLIENT_SECRET来自你的 Oura OAuth 应用
NODE_ENVproduction
MCP_SECRET(可选) Claude Desktop 的静态 bearer token(openssl rand -base64 32)
OURA_ACCESS_TOKEN(可选) 不使用 OAuth 时的 PAT 备用方案(需要 MCP_SECRET)

Railway 会自动设置 PORT 和 RAILWAY_PUBLIC_DOMAIN。

4. 从 Claude.ai 连接

在 Claude.ai 中使用连接器:

  1. 前往 Settings > MCP Connectors > Add
  2. 输入你的服务 URL:https://your-app.railway.app(不含 /mcp)
  3. 将 OAuth Client ID 和 Secret 留空(由动态注册处理)
  4. 系统会将你重定向到 Oura,以授权访问你的数据
5. 从 Claude Desktop 连接

对于 Claude Desktop,请使用 MCP_SECRET + OURA_ACCESS_TOKEN:

{
  "mcpServers": {
    "oura-remote": {
      "url": "https://your-app.railway.app/mcp",
      "headers": {
        "Authorization": "Bearer your_mcp_secret_here"
      }
    }
  }
}
本地测试
# With Oura OAuth (full flow)
OURA_CLIENT_ID=your_id OURA_CLIENT_SECRET=your_secret pnpm start:http

# With static secret only (requires OURA_ACCESS_TOKEN)
OURA_ACCESS_TOKEN=your_pat MCP_SECRET=test-secret pnpm start:http

# Verify health endpoint
curl http://localhost:3000/health

# Check OAuth metadata (only available when OURA_CLIENT_ID is set)
curl http://localhost:3000/.well-known/oauth-authorization-server

# Test authenticated request (with static secret)
curl -X POST http://localhost:3000/mcp \
  -H "Authorization: Bearer test-secret" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{}},"id":1}'

贡献

请参阅 CLAUDE.md,了解架构详情和开发指南。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。