
Oura Ring (read-only)
io.github.royreznik由 GitHub 账号 royreznik 发布v1.0.0更新于 Oct 27, 2026
Read-only access to your Oura Ring readiness, sleep, activity, HRV, heart rate and trends.
概览
只读 MCP 服务器,让助手查询 Oura Ring 的就绪度、睡眠、活动、HRV 与心率数据。
- 可以做什么
- 汇总单日的就绪度、睡眠、小睡、活动、压力、血氧、锻炼与标签
- 对比最多 90 天的逐日趋势与平均值
- 按日期范围列出就绪度、睡眠、活动、锻炼、冥想、健康与标签记录
- 查看某一晚的睡眠阶段图与心率/HRV 曲线,以及聚合后的心率序列
- 读取个人资料,如戒指型号、尺寸、固件与电量
- 适用场景
- 适合想用 AI 客户端询问自己 Oura 数据的情况,例如昨晚睡得如何、就绪度为何变化、一个月内 HRV 趋势如何,同时不希望它有能力修改数据。
- 运行要求
- 需要 Node.js 20.11+ 和 Oura 账号。需自行创建 Oura API 应用并完成一次性 OAuth 登录(客户端 ID 与密钥,可通过 OURA_CLIENT_ID 和 OURA_CLIENT_SECRET 提供),令牌保存在本地文件。设置 OURA_SANDBOX=1 可用公开示例数据、无需账号。需要访问 Oura API 的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Oura Ring (read-only),将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Oura Ring MCP Server (read-only)
[npm] [CI] [oura-ring-mcp MCP server – quality and maintenance score on Glama] [M8ven Score] [Node] [Read-only] [License: MIT]
Ask Claude, Cursor, VS Code or any MCP client about your Oura Ring readiness, sleep, HRV, activity, stress and heart rate, without giving it any way to change your data.
"How did I sleep last night, and why is my readiness only 64?" "Compare my HRV and lowest heart rate over the last 30 days." "Show me last night's sleep stages and heart-rate curve." "Does my readiness drop after days I tagged alcohol?"
[Install in Cursor] [Install in VS Code]
(Run the one-time auth step before or after installing.)
Why this server
- Read-only, enforced. Oura's API has no write endpoints for your data, and this client goes further: it can only send
GET, refuses any URL outside/v2/usercollection/, never touches the webhook API, and every tool carriesreadOnlyHint: true. Tests fail the build otherwise. - Answers whole questions in one call.
get_daily_overviewreturns a day's readiness, sleep, naps, activity, stress, resilience, SpO2, workouts and tags together.get_trendsreturns a day table plus averages and readiness zones over up to 90 days. - Model-friendly output. Compact JSON with hours, minutes, km and local times instead of seconds and meters; hypnograms as stage segments; heart rate aggregated into buckets. Pass
raw: truefor Oura's original objects. - Degrades gracefully. If you untick a data type on Oura's consent page, combined tools list it under
unavailableinstead of failing. - Your tokens stay on your machine. Your own Oura API application, OAuth with PKCE, a
0600token file, and safe handling of Oura's single-use refresh tokens. No third-party servers, no telemetry. - Try it without an account.
OURA_SANDBOX=1serves Oura's public sample data.
Quick start
You need Node.js 20.11+ and an Oura account. (Oura retired personal access tokens in December 2025, so OAuth is the only way in.)
1. Create an Oura API application (2 minutes)
- Open cloud.ouraring.com/oauth/applications and create a new application.
- Set the Redirect URI to
http://localhost:8787/callback. - Copy the Client ID and Client Secret.
Applications work for up to 10 users without Oura's approval, which is plenty for personal use.
2. Connect your Oura account
Paste your Client ID and Client Secret when asked (the secret isn't echoed). Your browser opens Oura's consent page; leave every data type ticked and approve. Tokens are saved to ~/.config/oura-ring-mcp/tokens.json and refreshed automatically from then on.
(For scripts, set OURA_CLIENT_ID and OURA_CLIENT_SECRET instead of answering the prompts.)
3. Add it to your MCP client
Claude Code
As a plugin (adds the server plus an /oura:auth skill that walks you through connecting):
Or just the MCP server:
Claude Desktop, Cursor, Windsurf
Add to the client's MCP config (Claude Desktop: Settings → Developer → Edit Config; Cursor: ~/.cursor/mcp.json; Windsurf: ~/.codeium/windsurf/mcp_config.json):
For Claude Desktop you can also install the .mcpb bundle from the latest release.
VS Code (GitHub Copilot)
.vscode/mcp.json (or your user mcp.json):
OpenAI Codex CLI
~/.codex/config.toml:
Docker
Run auth on the host first, then mount the token directory:
Then ask: "Give me my Oura overview for today."
Try it without an account
Sandbox mode serves Oura's public sample data. No auth step, no personal data.
Tools
List tools accept start / end (YYYY-MM-DD, inclusive), a days shortcut and next_token. See the tool reference for details.
Configuration
"Today" is computed in your computer's timezone, which should match the timezone your Oura app uses.
Privacy and security
- oura-ring-mcp talks only to
api.ouraring.com(plus your browser visitingcloud.ouraring.comduringauth). No telemetry, no intermediary server. - Tokens and your client secret live in one file only your user can read (
0600). They are never logged or returned by tools. - Your MCP client sends tool results to its language model. Health data you ask about is shared with that model provider under its terms.
- To disconnect, run
oura-ring-mcp logout. To revoke access completely, delete the application at cloud.ouraring.com/oauth/applications or revoke it in your Oura account.
Details: PRIVACY.md, SECURITY.md.
How authentication works
- OAuth 2 authorization-code flow with PKCE (S256) and a random
state, captured by a loopback-only callback server. - Oura refresh tokens are single-use. oura-ring-mcp refreshes shortly before expiry (and on a 401), one refresh at a time, under a lock file so several clients on one machine (e.g. Claude Desktop and Claude Code) never refresh at once, and writes new tokens atomically. If a write fails, the new tokens stay in memory so a full disk can't log you out.
- Rate limits (429, honouring
Retry-After), server errors, timeouts (30s) and network errors are retried with backoff. Cancelling a request in your client stops its Oura calls.
Troubleshooting
Development
See CONTRIBUTING.md. The one hard rule: oura-ring-mcp stays read-only.
Credits and legal
Architecture, auth and test approach are adapted from whoop-mcp by Oryan Omer (MIT).
MIT © Roy Reznik. Unofficial project, not affiliated with or endorsed by Oura Health Oy. "Oura" is a trademark of Oura Health Oy. Nothing here is medical advice.
来源:README.md,提交 a862a38
工具
0版本历史
1- v1.0.0最新Oct 18, 2026
评分
已满足适用检查项的 40%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
请在仓库或注册中心条目中声明许可证。
