Skip to main content
Glama
royreznik

Oura Ring MCP Server

List daily readiness

list_daily_readiness
Read-onlyIdempotent

Retrieve daily readiness scores and their contributors across a date range to track changes in recovery drivers like HRV balance, resting heart rate, and sleep balance.

Instructions

List daily readiness scores (0-100, with Oura's zone: optimal 85+, good 70-84, pay_attention below 70) and their contributors: HRV balance, resting heart rate, recovery index, body temperature, sleep balance, previous night, previous-day activity, activity balance and sleep regularity, plus temperature deviation from baseline in °C. Use it to see how readiness and its drivers changed over a range; for a single day use get_daily_overview, and for readiness next to sleep and activity use get_trends. Range: the last 7 days by default; set start and end (inclusive, YYYY-MM-DD) or days (up to 400, ignored when start is set). Returns { records, next_token }, oldest first. Days without data are absent, and today's data appears only after the ring syncs. If next_token is not null, call again with it for the rest. raw: true returns Oura's original objects.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endNoLast day to include (YYYY-MM-DD). Defaults to today.
rawNoReturn Oura's raw API objects instead of compact summaries with friendly units.
daysNoShortcut for start: the last N days up to end. Ignored when start is set.
startNoFirst day to include (YYYY-MM-DD).
next_tokenNoPass the next_token from a previous call to get the following records.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safe read-only, idempotent, non-destructive profile, and the description adds substantial extra behavior: default 7-day window, 400-day cap, days ignored when start is set, inclusive bounds, oldest-first ordering, absent days for missing data, today only after ring sync, and next_token pagination. raw:true semantics (Oura originals vs friendly units) are also disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and drivers before usage guidance, then range, return shape, and caveats. Dense but essentially waste-free; the contributor enumeration is long, though each item is a real field name an agent may need.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the return shape ({ records, next_token }), ordering, pagination contract, and the raw-vs-summary switch. Combined with full schema coverage and read-only annotations, an agent has everything needed to call and page this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds meaning beyond the schema: start/end are inclusive, days is capped at 400 and silently ignored when start is set, and next_token is the continuation handle from a prior call. It does not restate the parameter formats, so it stays above rather than at baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (daily readiness scores) and immediately defines the payload: score scale, Oura zones, the nine contributors, and temperature deviation. It explicitly distinguishes itself from get_daily_overview (single day) and get_trends (readiness next to sleep/activity), so an agent can route without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use plus two named alternatives with the conditions that select them: single day -> get_daily_overview, combined sleep/activity view -> get_trends. Range defaults and overrides are also stated, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.