oura

This service connects supported MCP clients to a user's Oura account through OAuth.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Ping: Returns {ok: true, user_id}. Used to verify auth + connectivity. Does not call Oura.
  • Get Daily Summary: Get a single-day summary of Oura Ring data (sleep, readiness, activity). Use this when the user asks 'how was my [day]' or wants a snapshot of one specific date. For ranges, use get
  • Get Date Range: Get a single metric over a date range for trend analysis. Use this when the user asks about trends over multiple days like 'how was my sleep this week' or 'show me my HRV over the past

What data it sees

Do you need an account

No: the server works without sign-in

This service connects supported MCP clients to a user's Oura account through OAuth. Read-only.

Server tool list (20)

Raw names from tools/list. Only developers need these.

pingReturns {ok: true, user_id}. Used to verify auth + connectivity. Does not call Oura.
get_daily_summaryGet a single-day summary of Oura Ring data (sleep, readiness, activity). Use this when the user asks 'how was my [day]' or wants a snapshot of one specific date. For ranges, use get_date_range instead.
get_date_rangeGet a single metric over a date range for trend analysis. Use this when the user asks about trends over multiple days like 'how was my sleep this week' or 'show me my HRV over the past month'. For a single-day snapshot, use get_daily_summary.
get_last_night_sleepGet detailed sleep data for the most recent night. Use this when the user asks 'how did I sleep last night' or wants the latest sleep details. Returns scores, stage breakdown, timing, and heart-rate metrics.
get_workoutsList workouts logged or auto-detected over a date range. Use for exercise/training questions or to correlate workouts with recovery. Pass user's LOCAL dates as strict YYYY-MM-DD.
get_sessionsList mindfulness sessions (meditation, breathing, relaxation) over a date range. Pass user's LOCAL dates as strict YYYY-MM-DD.
get_tagsList user-annotated tags (caffeine, alcohol, late meal, custom notes) over a date range. Use to correlate behaviors with sleep/readiness or to recall what was logged. Pass user's LOCAL dates as strict YYYY-MM-DD.
get_heart_rate_seriesGet intraday heart-rate time series within a 24-hour window, bucketed to 5min/15min/raw. Use for HR patterns within a day (sleep, workout, stress events). For multi-day trends, use get_date_range with metric=resting_hr instead.
compare_to_baselineCompare a single day's metric to the user's personal 30-day and 90-day rolling baselines. Use when the user asks 'is this normal for me?' or 'how does today compare to my usual?'. Returns value alongside personal context so answers can be 'good for you' rather than absolute.
get_stressGet daily stress metrics (high-stress and recovery seconds) for a date. Pass user's LOCAL date as strict YYYY-MM-DD.
get_spo2Get nightly blood-oxygen (SpO2) average and breathing disturbance index for a date. Useful for altitude effects, suspected sleep apnea, or illness tracking. Pass user's LOCAL date as strict YYYY-MM-DD.
get_resilienceGet the resilience score for a date — Oura's long-term stress recovery capacity metric. Levels: limited / adequate / solid / strong / exceptional. Pass user's LOCAL date as strict YYYY-MM-DD.
get_cardio_ageGet Oura's cardiovascular-age estimate for a date — a heart-health proxy derived from HRV, resting HR, and other signals. Pass user's LOCAL date as strict YYYY-MM-DD.
get_vo2_maxGet the most recent VO2 max measurement within 30 days of the queried date. Oura computes VO2 max from outdoor walks/runs, so measurements may be sparse. Pass user's LOCAL date as strict YYYY-MM-DD.
get_recommended_sleep_timeGet Oura's recommended bedtime window for a date as start/end HH:MM in user's local time, with a status and recommendation field. Pass user's LOCAL date as strict YYYY-MM-DD.
get_rest_mode_periodsList rest-mode periods (illness/recovery markers) over a date range. Pass user's LOCAL dates as strict YYYY-MM-DD; max 365-day range.
get_morning_briefingGet a structured 'how am I today' snapshot: today's readiness + recommended sleep time + yesterday's sleep, activity, stress, and tags. Use this when the user opens the day and wants a single overview call. Server returns raw fields — you decide what to highlight. Pass user's LOCAL date as strict YYYY-MM-DD.
get_weekly_recapGet a 1-28 day window of daily Oura metrics with per-metric mean/min/max. Default 7 days. Use this when the user asks 'how was my week' or wants to scan the past N days at a glance. Pass user's LOCAL end_date as strict YYYY-MM-DD.
find_anomaliesFlag days whose metric value deviates more than threshold_sigma standard deviations from the rolling-window mean. Default window 90 days, default threshold 2σ. Use when the user asks 'when did my HRV crash?' or 'pick out my worst sleep weeks'. Returns empty list (and insufficient_baseline=true) if fewer than 14 non-null days. Pass user's LOCAL end_date as strict YYYY-MM-DD.
correlate_tag_with_metricCompute mean/median/stdev of a metric on tagged days vs untagged days, plus mean_delta_pct. Use when the user asks 'does alcohol hurt my sleep?' or 'are tagged days worse for HRV?'. Provide exactly one of tag_type_code (Oura's tag taxonomy) or custom_name (user-defined). small_sample_warning=true when either group has <5 days. Pass user's LOCAL end_date as strict YYYY-MM-DD.
oura: connect to Claude, ChatGPT, Cursor · Connectors.fun