Oura Ring MCP server
io.github.osjayaprakash/oura-ring-python-mcp·v0.1.0Read-only Oura Ring sleep, readiness, activity, stress and heart rate data (OAuth2)
0 stars
Reviews
Write oneNobody has reviewed Oura Ring yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Oura Ring tools (11)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
get_daily_activityDaily activity score (0-100), steps, active and total calories, walking-equivalent distance (m), and time at each activity level (seconds).
get_daily_readinessDaily readiness score (0-100) with contributors (HRV balance, resting heart rate, recovery, sleep balance, activity balance) and body temperature deviation (°C).
get_daily_resilienceDaily resilience level (limited to exceptional) with sleep and daytime recovery and stress contributors.
get_daily_sleepDaily sleep score (0-100) with its contributors (deep sleep, efficiency, latency, REM, restfulness, timing, total sleep), one item per day.
get_daily_spo2Nightly average blood oxygen saturation (%) and breathing disturbance index.
get_daily_stressDaily time spent in high stress and in recovery (seconds), and the day summary.
get_heart_rateHeart rate samples (bpm, source such as rest/sleep/workout) in a window of up to 7 days, oldest first, with min, max and average bpm.
get_personal_infoThe Oura user's profile: age, weight (kg), height (m), biological sex and email.
get_sessionsGuided or unguided sessions (meditation, breathing, rest, naps) with start, end and mood.
get_sleep_periodsEach sleep period (night sleep and naps): bedtimes, time in deep/light/REM/awake (seconds), efficiency, latency, average and lowest heart rate, average HRV.
get_workoutsWorkouts: activity type, start and end time, intensity, calories and distance (m).
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- Code scan16 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 0 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Oura Ring compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 65% of 48,255 servers
- Tools
- 11
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
What its tools let an agent do: 11 read
Install Oura Ring in Claude Code, Cursor or VS Code
claude mcp add oura-ring-python-mcp -- uvx oura-ring-python-mcp
What the publisher says
From the Oura Ring repository's README, as published. We do not edit it. Read it on GitHub
oura-ring-python-mcp
<!-- mcp-name: io.github.osjayaprakash/oura-ring-python-mcp -->
An MCP server that gives Claude (or any MCP client) read-only access to your Oura Ring data: sleep, readiness, activity, stress, SpO2, resilience, workouts, sessions and heart rate. It talks to the Oura API v2 with its own small async client (ouraringmcp.core).
Tools
Daily tools take optional startdate and enddate (YYYY-MM-DD, both inclusive). Without them they cover the 7 days ending today; ranges are limited to 90 days. Each result echoes the range it covers, so the model always knows what "today" meant.
getheartrate takes optional startdatetime and enddatetime (ISO 8601). Without them it covers the last 24 hours; windows are limited to 7 days.
Per-interval series (5-minute activity classes, MET, sleep phases, in-sleep heart rate and HRV curves) are left out of results to keep them small; the scores, totals and averages are kept.
Setup
For a step-by-step guide, including creating the Oura application and troubleshooting, see the installation guide. Full documentation is at .
The server signs in with OAuth2, since Oura has deprecated personal access tokens. You need an Oura API application (a client ID and secret) whose redirect URIs include http://localhost:47651/callback, with the scopes email, personal, daily, heartrate, workout, session, spo2 and stress allowed (resilience needs stress). Gen3 and Oura Ring 4 users need an active Oura membership for the API to return data.
git clone https://github.com/osjayaprakash/oura-ring-python-mcp.git && cd oura-ring-python-mcp
uv syncSign in once. This opens the browser, catches Oura's redirect on localhost, and saves the tokens to ~/.config/oura-ring-mcp/tokens.json (readable only by you):
OURA_CLIENT_ID=... OURA_CLIENT_SECRET=... uv run oura-ring-python-mcp authFrom then on the server refreshes the access token by itself (Oura issues them for 30 days) and saves each new single-use refresh token. Run auth again only if you revoke access or the saved refresh token is lost.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Oura Ring: common questions
- Is Oura Ring MCP server safe?
- Mostly: it is graded B (83/100). Read the Oura Ring safety report
- How do I install Oura Ring?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Oura Ring need an API key?
- Yes. The registry entry asks for
OURA_CLIENT_SECRET. - Is Oura Ring maintained?
- The last commit was 38 days ago (2026-09-27). The latest release is v0.1.0.
- How does Oura Ring compare with other MCP servers?
- safety score 83/100 (higher than 65% of 48,255 servers); tools 11 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.