Oura MCP server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OURA_TOKEN | Yes | Oura personal access token |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| oura_sleepA | Get detailed sleep data for a date: the daily sleep score with its contributors, and the raw sleep periods (duration, stages, heart rate, HRV) that score is built from. Args: date: YYYY-MM-DD, defaults to today. |
| oura_sleep_timeA | Get Oura's recommended bedtime window and how last night's actual bedtime compared to it. Sparse: only populated on days Oura had enough history to compute a recommendation. Args: date: YYYY-MM-DD, defaults to today. |
| oura_readinessA | Get the readiness score and its contributors for a date. Args: date: YYYY-MM-DD, defaults to today. |
| oura_resilienceA | Get the long-term resilience level (limited/adequate/solid/strong/ exceptional) and its contributors (sleep recovery, daytime recovery, stress) for a date. Args: date: YYYY-MM-DD, defaults to today. |
| oura_cardiovascular_ageA | Get estimated vascular age and pulse wave velocity for a date. Args: date: YYYY-MM-DD, defaults to today. |
| oura_vo2_maxA | Get the estimated VO2 max for a date. Sparse: Oura only computes this periodically, not every day. Args: date: YYYY-MM-DD, defaults to today. |
| oura_activityA | Get daily activity data (score, steps, calories, distance, activity time breakdown) for a date. Args: date: YYYY-MM-DD, defaults to today. |
| oura_workoutsA | Get workouts (auto-detected and manually logged) with heart rate, calories, duration and intensity for a date. Args: date: YYYY-MM-DD, defaults to today. |
| oura_heart_rateA | Get continuous heart rate samples for a time window. Useful for correlating with untracked activity or workouts. Args: start_datetime: Start in ISO 8601 (e.g. 2024-01-01T00:00:00+00:00). end_datetime: End in ISO 8601 (e.g. 2024-01-01T23:59:59+00:00). |
| oura_stressB | Get daily stress and recovery time for a date. Args: date: YYYY-MM-DD, defaults to today. |
| oura_spo2A | Get average nightly blood oxygen (SpO2) percentage for a date. Args: date: YYYY-MM-DD, defaults to today. |
| oura_sessionsA | Get guided or unguided meditation, breathing and relaxation sessions for a date. Args: date: YYYY-MM-DD, defaults to today. |
| oura_tagsA | Get tags logged for a date: built-in and custom tags (e.g. illness, alcohol, travel, a named event), covering both the legacy tag endpoint and the newer enhanced tags with time spans. Args: date: YYYY-MM-DD, defaults to today. |
| oura_rest_modeA | Get rest mode periods active on a date (Oura's illness/injury/ recovery mode, which relaxes activity goals and readiness contributors). Args: date: YYYY-MM-DD, defaults to today. |
| oura_ringA | Get every ring ever paired to the account (model, color, size, firmware) plus battery level readings for a time window (defaults to the last 24 hours). Args: start_datetime: ISO 8601, defaults to 24 hours ago. end_datetime: ISO 8601, defaults to now. |
| oura_personal_infoA | Get the account profile: age, weight, height, biological sex, email. |
| oura_daily_summaryA | Get a one-call overview for a date: sleep score, raw sleep periods, readiness score, and daily activity. Use the more specific tools (oura_sleep, oura_readiness, oura_activity, oura_resilience, etc.) for fields not covered here. Args: date: YYYY-MM-DD, defaults to today. |
| oura_trendsA | Get daily sleep, readiness, activity and stress scores over a range of days, most recent last. Args: days: Number of days to look back, including today (default 7). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Each tool targets a unique Oura data domain (sleep, stress, ring, readiness, etc.) with clear, specific descriptions. The daily_summary tool is explicitly positioned as an overview and directs to more specific tools, avoiding overlap. No two tools appear to serve the same purpose.
All tools follow the identical 'oura_' prefix followed by a descriptive snake_case noun or phrase (e.g., oura_sleep_time, oura_heart_rate). The pattern is consistent and predictable, making it easy for an agent to infer the tool's function.
At 18 tools, the set is slightly above the typical 3-15 sweet spot, but it remains well-scoped because each tool corresponds to a distinct Oura data API endpoint. The count reflects the breadth of health metrics Oura tracks, and every tool earns its place without redundancy.
The tool set covers all major Oura data categories: sleep, readiness, activity, stress, resilience, heart rate, SpO2, workouts, meditation sessions, tags, rest mode, personal info, ring info, and analytical summaries. There are no obvious gaps in the lifecycle or data access needs, and the daily_summary provides a convenient aggregation.