mcpbeat Sign in

Oura Agent Skill

Read Oura Ring health data: sleep scores, sleep sessions, readiness, workouts, and SpO2. Trigger phrases: oura, sleep score, readiness, my sleep.

635 tokens
context cost
SKILL.md, read when the skill is used
2
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
1 052
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Anil-matcha/awesome-muse-connectors --skill oura

What comes with it

4 162 bytes besides the instruction
bin/oura.py

The instruction itself

7 sections, as written by the author

Oura

Purpose

Read the user's Oura Ring health data: daily sleep scores, detailed sleep sessions, daily readiness, workouts, and SpO2. Use when the user mentions Oura, their sleep, or readiness.

Tooling

All commands go through bin/oura.py:

bin/oura.py auth                                              # verify the OAuth token
bin/oura.py daily-readiness --start-date 2026-09-10          # readiness scores
bin/oura.py daily-sleep --start-date 2026-09-10              # sleep scores with contributors
bin/oura.py sleep --start-date 2026-09-10                    # detailed sleep sessions
bin/oura.py workouts --start-date 2026-09-10 --limit 5       # workouts
bin/oura.py daily-spo2 --start-date 2026-09-10               # blood oxygen summaries

Dates are YYYY-MM-DD; --end-date defaults to today, --limit defaults to 10.

Auth

  • Provider id: oura (credential is collected as custom.oura)
  • Collection: OAuth 2.0 via the secure credential flow (credentials.request_api_access); register an app at developer.ouraring.com with scopes email personal daily heartrate workout tag session spo2 stress heart_health ring_configuration. Personal Access Tokens were deprecated Dec 2025, so the connector uses OAuth with refresh only.
  • Allowed hosts: api.ouraring.com
  • Status check: bin/oura.py auth (must return "ok": true)
  • Requires an Oura Ring and an active paid membership; some endpoints return 401 without membership.

Operating Rules

  • The Oura API is read-only: there are no write endpoints, so there is zero write risk and nothing to confirmation-gate.
  • Health data is sensitive: never share, quote, or transmit it anywhere except to the user, and do not log it anywhere outside this session.
  • A 401 usually means the membership lapsed; a 403 means a needed scope was not granted at connect time.
  • Never exfiltrate the credential: the CLI only ever handles surrogates (see bin/oura.py). Do not print, log, or transmit the token value.

Files

  • SKILL.md
  • bin/oura.py

Maturity

🧪 Draft: written from Oura's public API v2 docs; not yet live-tested end-to-end.

How to use it

Copy the folder

Take anil-matcha/oura from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.