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 |
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": 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. Requires explicit user action: the user must complete browser OAuth and supply the authorization code (agents must not invent codes). |
| oura_get_personal_infoB | 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_sleepC | 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 the daily scope (Oura has no separate sleep OAuth 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_spo2B | 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_statusB | Show optional local SQLite cache status. Enable with OURA_CACHE=sqlite or OURA_CACHE=true. |
| oura_privacy_auditB | 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. Gated by explicit_user_intent: true (requires explicit user intent). |
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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