MCP.so
Sign In

Oura Mcp Unofficial

@davidmosiah

About Oura Mcp Unofficial

Local-first MCP server for Oura Ring readiness, sleep, HRV — Claude/Cursor/ChatGPT ready

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "oura": {
      "command": "npx",
      "args": [
        "-y",
        "oura-mcp-unofficial"
      ]
    }
  }
}

Tools

27

Inventory supported Oura data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call Oura APIs or expose user data.

Machine-readable install, runtime and client guidance for AI agents. Does not call Oura or expose secrets.

Explain supported Oura data, privacy boundaries, recommended agent workflow and project links.

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?'

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.

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.

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.

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.

Generate an Oura OAuth authorization URL. Use this first when no local token exists.

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).

Get Oura personal profile fields available to the authorized app. Requires the personal scope.

List daily Oura activity summaries. Supports start/end date filters through after/before and Oura cursor pagination.

List daily Oura sleep score summaries. Requires daily or sleep data access granted by the user. Not medical advice.

List Oura readiness summaries and contributors. Requires daily scope. Not medical advice.

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.

List Oura workout summaries. Requires workout scope.

List Oura heart-rate time-series records where the user's ring and membership expose them. Requires heartrate scope. Not medical advice.

List daily Oura SpO2 averages recorded during sleep when available. Requires spo2 scope. Not medical advice.

List guided and unguided Oura app sessions when the user granted session scope.

List user-entered Oura tags when the user granted tag scope.

Check local Oura config, token file, Node version, privacy mode, cache readiness and optional MCP client readiness without calling Oura or exposing secrets.

Show optional local SQLite cache status. Enable with OURA_CACHE=sqlite or OURA_CACHE=true.

Return local privacy, cache, token-path and env-presence posture without revealing secret values.

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).

Build a practical daily summary from Oura readiness, sleep, activity, heart-rate and SpO2 data when available. Read-only and non-medical.

Build a weekly Oura scorecard with readiness, sleep, activity, HRV availability, bottlenecks and actions. Read-only and non-medical.

Normalize Oura readiness, sleep and activity load into the shared wellness_context shape for recommendation engines.

Overview

What is Oura Mcp Unofficial?

Oura Mcp Unofficial is a local-first MCP server that connects AI agents to your Oura Ring data — readiness scores, sleep stages, HRV, activity, SpO2, and personal info — without needing to copy-paste from the Oura app. It handles the OAuth dance locally, normalizes responses across endpoints, and exposes Oura through the Model Context Protocol. Tokens never leave your machine, and raw payloads are opt-in via privacy-mode defaults.

How to use Oura Mcp Unofficial?

First create an Oura app at cloud.ouraring.com with redirect URI http://127.0.0.1:3000/callback. Then run npx -y oura-mcp-unofficial setup (paste client id + secret), npx -y oura-mcp-unofficial auth (opens browser for OAuth), and npx -y oura-mcp-unofficial doctor to verify. Add the server to your MCP client config as a npx command, or for Claude Desktop run setup --client claude to auto-write the snippet. You can also call oura_demo before connecting to see synthetic payloads.

Key features of Oura Mcp Unofficial

  • Local-first: OAuth tokens never leave your machine
  • Supports readiness, sleep, activity, HRV, SpO2, workouts, sessions, tags, personal info
  • Privacy‑mode defaults to structured; raw JSON is opt‑in
  • Demo mode (oura_demo) works without an Oura account
  • Includes prompts like oura_daily_checkin and oura_weekly_review
  • Caching opt‑in via SQLite; configurable via env or ~/.oura-mcp/config.json
  • Compatible with Hermes‑based remote setups

Use cases of Oura Mcp Unofficial

  • Get a daily readiness and sleep brief for your AI agent to plan workouts or rest
  • Review weekly trends across sleep, HRV, and activity with a next‑week plan
  • Investigate heart‑rate records without exposing raw data
  • Let your agent evaluate recovery before recommending training intensity
  • Set up a private wellness agent using Claude Desktop, Cursor, or Hermes

FAQ from Oura Mcp Unofficial

What data can Oura Mcp Unofficial access?

It can access daily readiness scores, daily sleep scores with sleep periods (stages, timing), daily activity (steps, calories, MET), heart‑rate time series, HRV via readiness contributors, SpO2 daily averages, workouts, sessions, tags, and personal info (DOB, sex, height, weight) — subject to scopes granted in the Oura Cloud API. Continuous sensor telemetry is not available.

What are the requirements to run Oura Mcp Unofficial?

You need Node.js 20+ and an Oura app created at cloud.ouraring.com with the redirect URI set to http://127.0.0.1:3000/callback.

How do I verify my setup?

Run oura_connection_status in your agent after completing setup and auth. You can also use oura_doctor from the command line to confirm everything is ready.

Is my Oura token secure?

Yes. OAuth tokens are stored in ~/.oura-mcp/tokens.json with Unix permissions 0600. The server never prints or returns access/refresh tokens to the MCP client.

Is this an official Oura product?

No. This is an unofficial project not affiliated with, endorsed by, or supported by Ōura Health Oy. Use it only with your own Oura account and in line with the Oura Cloud API terms.

Frequently asked questions

What data can Oura Mcp Unofficial access?

It can access daily readiness scores, daily sleep scores with sleep periods (stages, timing), daily activity (steps, calories, MET), heart‑rate time series, HRV via readiness contributors, SpO2 daily averages, workouts, sessions, tags, and personal info (DOB, sex, height, weight) — subject to scopes granted in the Oura Cloud API. Continuous sensor telemetry is not available.

What are the requirements to run Oura Mcp Unofficial?

You need Node.js 20+ and an Oura app created at cloud.ouraring.com with the redirect URI set to `http://127.0.0.1:3000/callback`.

How do I verify my setup?

Run `oura_connection_status` in your agent after completing setup and auth. You can also use `oura_doctor` from the command line to confirm everything is ready.

Is my Oura token secure?

Yes. OAuth tokens are stored in `~/.oura-mcp/tokens.json` with Unix permissions `0600`. The server never prints or returns access/refresh tokens to the MCP client.

Is this an official Oura product?

No. This is an unofficial project not affiliated with, endorsed by, or supported by Ōura Health Oy. Use it only with your own Oura account and in line with the Oura Cloud API terms.

Comments

More AI & Agents MCP servers