Oura MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OURA_CACHE | No | Cache type, e.g., sqlite | |
| OURA_SCOPES | No | Space-separated Oura API scopes, e.g., 'daily heartrate personal sleep workout spo2' | |
| OURA_CLIENT_ID | Yes | Client ID from Oura app | |
| OURA_CACHE_PATH | No | Path to cache file, default ~/.oura-mcp/cache.sqlite | |
| OURA_TOKEN_PATH | No | Path to token file, default ~/.oura-mcp/tokens.json | |
| OURA_PRIVACY_MODE | No | Privacy mode: summary, structured, or raw. Default structured. | |
| OURA_REDIRECT_URI | Yes | Redirect URI for OAuth callback, default http://127.0.0.1:3000/callback | |
| OURA_CLIENT_SECRET | Yes | Client secret from Oura app |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| oura_data_inventoryA | Inventory supported Oura data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call Oura APIs or expose user data. |
| oura_agent_manifestA | Machine-readable install, runtime and client guidance for AI agents. Does not call Oura or expose secrets. |
| oura_capabilitiesA | Explain supported Oura data, privacy boundaries, recommended agent workflow and project links. |
| oura_quickstartA | Personalized 3-step setup walkthrough for the human user. Adapts to current state (env vars set? token present? what's next?). Call this first when the user asks 'how do I connect Oura?' |
| oura_demoA | Returns realistic example payloads of oura_daily_summary, oura_wellness_context, and oura_list_daily_readiness so agents see the contract before calling real Oura APIs. |
| oura_profile_getB | Read the shared Delx wellness profile (~/.delx-wellness/profile.json). Returns the user's preferred name, body basics, goals, devices, training context, nutrition context, agent preferences, and missing critical fields. Cross-connector — the same profile is also available from other Delx Wellness MCPs (WHOOP, Garmin, Nourish, Fitbit, etc). Read-only. |
| oura_profile_updateA | Persist a partial patch to the shared Delx wellness profile (~/.delx-wellness/profile.json). REQUIRES explicit_user_intent=true. Top-level fields stored: profile (preferred_name, language, timezone, units, age_or_birth_year, height, weight, sex_or_gender_context), goals, devices, training, nutrition, preferences, safety, notes. NEVER stores OAuth tokens, API keys, refresh tokens, cookies, or any secret-shaped field — writes will be rejected at validation time. Cross-connector — the same profile is read by other Delx Wellness MCPs. |
| oura_onboardingA | Return the 11-question Delx wellness onboarding flow (in English or pt-BR) plus the current shared profile state and missing critical fields. Read-only. The agent should ask these questions one-by-one, then call oura_profile_update with explicit_user_intent=true to save. The same profile is reused by every Delx Wellness connector (WHOOP, Garmin, Nourish, etc.) — agents can call the equivalent {connector}_onboarding tools to cover their respective domains, or rely on this one since all connectors share the same questions. |
| oura_get_auth_urlA | Generate an Oura OAuth authorization URL. Use this first when no local token exists. |
| oura_exchange_codeA | Exchange an Oura OAuth authorization code for local tokens. Tokens are stored locally with 0600 permissions and are never returned. |
| oura_get_personal_infoA | Get Oura personal profile fields available to the authorized app. Requires the personal scope. |
| oura_list_daily_activityA | List daily Oura activity summaries. Supports start/end date filters through after/before and Oura cursor pagination. |
| oura_list_daily_sleepA | List daily Oura sleep score summaries. Requires daily or sleep data access granted by the user. Not medical advice. |
| oura_list_daily_readinessA | List Oura readiness summaries and contributors. Requires daily scope. Not medical advice. |
| oura_list_sleepA | List detailed Oura sleep period records, including sleep stages and timing where available. Requires sleep scope. Not medical advice. |
| oura_list_workoutsA | List Oura workout summaries. Requires workout scope. |
| oura_list_heartrateA | List Oura heart-rate time-series records where the user's ring and membership expose them. Requires heartrate scope. Not medical advice. |
| oura_list_daily_spo2A | List daily Oura SpO2 averages recorded during sleep when available. Requires spo2 scope. Not medical advice. |
| oura_list_sessionsA | List guided and unguided Oura app sessions when the user granted session scope. |
| oura_list_tagsA | List user-entered Oura tags when the user granted tag scope. |
| oura_connection_statusA | Check local Oura config, token file, Node version, privacy mode, cache readiness and optional MCP client readiness without calling Oura or exposing secrets. |
| oura_cache_statusA | Show optional local SQLite cache status. Enable with OURA_CACHE=sqlite or OURA_CACHE=true. |
| oura_privacy_auditA | Return local privacy, cache, token-path and env-presence posture without revealing secret values. |
| oura_revoke_accessA | Revoke the current Oura OAuth grant and delete the local token file. Use only when the user explicitly wants to disconnect Oura. |
| oura_daily_summaryA | Build a practical daily summary from Oura readiness, sleep, activity, heart-rate and SpO2 data when available. Read-only and non-medical. |
| oura_weekly_summaryA | Build a weekly Oura scorecard with readiness, sleep, activity, HRV availability, bottlenecks and actions. Read-only and non-medical. |
| oura_wellness_contextA | Normalize Oura readiness, sleep and activity load into the shared wellness_context shape for recommendation engines. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| oura_daily_checkin | Ask an agent to create a practical daily health and training check-in from Oura. |
| oura_weekly_review | Ask an agent to review Oura trends across activity, sleep and heart context. |
| oura_heart_context_investigation | Investigate Oura heart-rate records and adjacent sleep context when API access permits it. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| oura_data_inventory | Static inventory of supported Oura data domains, privacy modes and recommended first calls. |
| oura_capabilities | Static capabilities, API boundary, privacy modes and recommended agent workflow. |
| oura_agent_manifest | Machine-readable install and operating instructions for AI agents. |
| oura_personal_info | Authenticated Oura personal info using the configured privacy mode. |
| oura_latest_readiness | Most recent Oura readiness record in the configured privacy mode. |
| oura_daily_summary | Daily Oura health summary built from API data. |
| oura_weekly_summary | Weekly Oura health review built from API data. |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidmosiah/oura-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server