Skip to main content
Glama
royreznik

Oura Ring MCP Server

Trends

get_trends
Read-onlyIdempotent

Summarize up to 90 days of Oura readiness, sleep, activity, HRV, heart rate, stress, and workouts into day-by-day trends and averages for week/month comparisons and 'how am I trending' questions.

Instructions

Summarize the last N days (default 14, up to 90, including today) as a day-by-day table plus avg/min/max for readiness, sleep and activity scores, sleep hours and stages, HRV, lowest heart rate, temperature deviation, steps, active calories and stress, with readiness-zone counts and workouts per day. Use it for week or month comparisons and 'how am I trending' questions; use get_daily_overview for a single day and the list_* tools for full detail on one data type. Days without data are omitted; today is flagged in_progress and its partial activity is left out of the averages.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNoHow many days to look back, including today (1-90).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond them: days without data are omitted, today is flagged in_progress, and today's partial activity is excluded from averages. It stops short of describing granularity/pagination behavior, but for a read-only aggregate this is strong disclosure.

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

Conciseness5/5

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

Two sentences, front-loaded with the output shape then the routing guidance, then the edge-case behavior. The long metric enumeration is justified because no output schema exists to convey the return columns; every clause carries information.

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 correctly takes on the burden of describing the returned table and per-metric aggregates, and it also covers the two behaviors an agent could otherwise get wrong (missing days, in-progress today excluded from averages). An agent has everything needed to call it correctly.

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

Parameters3/5

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

Schema coverage is 100% and the single optional parameter is fully documented in the schema (default 14, range 1-90, inclusive of today). The description restates those same facts (default 14, up to 90, including today) without adding syntax or edge-case meaning beyond the schema, so baseline 3 applies.

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?

Specific verb ("Summarize") plus resource ("last N days") and an explicit enumeration of what the summary contains (readiness, sleep, activity, HRV, steps, stress, workouts per day). It is clearly distinguishable from siblings like get_daily_overview and the list_* tools 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?

Explicitly names the use cases ("week or month comparisons", "how am I trending" questions) and routes to alternatives with a condition: get_daily_overview for a single day, list_* tools for full detail on one data type. Nothing is left to inference.

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