关于 oura-ring-mcp
oura-ring-mcp 将 Oura Ring 的睡眠、恢复度和活动数据连接到 Claude 等 AI 助手,返回易读的分析结果而非原始 JSON。适合希望通过对话了解自身健康指标的用户,也可部署为远程服务。
主要功能
- 01睡眠、恢复度、活动与心率数据查询
- 02时长与评分的可读化格式
- 03异常检测与指标相关性分析
- 04周期对比与 HRV 趋势分析
- 05支持个人访问令牌或 OAuth 认证
- 06提供远程部署方式
适用场景
- 01询问昨晚的睡眠阶段与效率
- 02比较本周与上周的恢复度与活动情况
- 03分析某个标签(如饮酒)对睡眠质量的影响
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 Oura 数据相关的工具、资源与提示词,例如 get_sleep、analyze_hrv_trend 等工具以及 oura://today 等资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y oura-ring-mcpOURA_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Oura MCP 服务
一个将 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:个人访问令牌(更简单)
- 前往 cloud.ouraring.com/personal-access-tokens
- 创建新令牌
- 在 Claude Desktop 配置中设置
OURA_ACCESS_TOKEN(见下文)
选项 B:OAuth 命令行流程
- 在 developer.ouraring.com 创建 OAuth 应用
- 将重定向 URI 设置为
http://localhost:3000/callback
- 将重定向 URI 设置为
- 运行身份验证流程:
export OURA_CLIENT_ID=your_client_id export OURA_CLIENT_SECRET=your_client_secret npx oura-ring-mcp auth - 凭据将保存到
~/.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 应用
- 前往 Oura OAuth 应用
- 创建新应用
- 将 Redirect URI 设置为:
https://your-app.railway.app/oauth/callback - 记下 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_ENV | production |
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 中使用连接器:
- 前往 Settings > MCP Connectors > Add
- 输入你的服务 URL:
https://your-app.railway.app(不含/mcp) - 将 OAuth Client ID 和 Secret 留空(由动态注册处理)
- 系统会将你重定向到 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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。