Skip to main content
Glama
jordanburke

oura-ring-mcp-server

by jordanburke

oura_data

Read-only

Retrieve data from Oura Ring API v2: daily summaries, time-series heart rate and battery, personal info, and more. Supports date ranges, pagination, and document lookup.

Instructions

Fetch data from the Oura Ring API v2.

Pick a collection and provide the matching date range:

  • Daily collections use start_date/end_date (YYYY-MM-DD). If both are omitted, the last 7 days are returned.

  • Time-series collections (heartrate, ring_battery_level) use start_datetime/end_datetime (ISO-8601), or latest: true.

  • personal_info takes no parameters; ring_configuration is a plain list.

  • Any list collection with a document id can be fetched directly via document_id. Large lists paginate: pass the returned next_token to fetch the next page.

Available collections:

  • daily_activity: Daily activity summary: steps, calories, activity score.

  • daily_sleep: Daily sleep summary and sleep score.

  • daily_readiness: Daily readiness summary and readiness score.

  • daily_spo2: Daily average blood oxygen (SpO2) percentage.

  • daily_stress: Daily stress and recovery high/normal durations.

  • daily_resilience: Daily resilience level derived from recovery metrics.

  • daily_cardiovascular_age: Daily cardiovascular age estimate.

  • vO2_max: VO2 max (cardiorespiratory fitness) estimates.

  • sleep: Detailed per-period sleep sessions (stages, HRV, heart rate).

  • sleep_time: Recommended/ideal bedtime windows.

  • session: Guided/unguided moment sessions (meditation, breathing, rest).

  • workout: Recorded workouts with intensity, calories, and duration.

  • tag: Legacy user-entered tags.

  • enhanced_tag: Enhanced user-entered tags (current tag model).

  • rest_mode_period: Rest mode periods (recovery/illness) the user enabled.

  • heartrate: Time-series heart rate samples.

  • ring_battery_level: Time-series ring battery level samples.

  • ring_configuration: Ring hardware configuration records (size, color, firmware, design).

  • personal_info: The user's personal info: age, weight, height, biological sex, email.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fieldsNoComma-separated sparse fieldset to limit returned fields (list endpoints only).
latestNoReturn only the most recent sample (heartrate / ring_battery_level only).
end_dateNoEnd date (inclusive) for daily collections.
collectionYesWhich Oura data collection to fetch. Determines which date parameters apply.
next_tokenNoPagination cursor returned as `next_token` by a previous list response.
start_dateNoStart date (inclusive) for daily collections.
document_idNoFetch a single document by id instead of a list. Not supported by all collections.
end_datetimeNoEnd datetime for time-series collections.
start_datetimeNoStart datetime for time-series collections (heartrate, ring_battery_level).
Behavior5/5

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

Annotations already declare readOnlyHint=true, which the description confirms by implying data retrieval. The description adds valuable behavioral context: daily collections have a 7-day default, time-series require ISO-8601 datetimes, list collections paginate via next_token, and document_id fetches a single record. No annotation contradiction exists.

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?

The description is fairly long but well-structured with a clear opening, bullet-point collection list, and separate parameter usage notes. While every sentence adds value, it could be slightly more concise by grouping common parameter patterns. Still, it remains readable and informative.

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?

Given the tool's complexity (9 parameters, 19 collections, no output schema), the description covers all necessary usage contexts: parameter selection by collection type, default behaviors, pagination, and single-document retrieval. It is complete enough for an agent to use the tool correctly without needing additional external documentation.

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%, providing a baseline of 3. The description adds meaning by explaining which parameters apply to which collection types, the default date range, and the semantics of latest and document_id. This goes beyond the schema's field descriptions, justifying a 4.

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?

The description starts with 'Fetch data from the Oura Ring API v2' and enumerates all 19 collection types with brief summaries, clearly distinguishing the resource and scope. It separates daily, time-series, and singleton collections, making the tool's purpose unambiguous and differentiating it from a sibling like 'info'.

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

Usage Guidelines4/5

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

The description provides explicit guidance on which date parameters to use for daily vs. time-series collections, explains the default behavior when omitted, and covers pagination via next_token. However, it does not explicitly state when to prefer this tool over the sibling 'info' tool, which serves a distinct purpose, so a full 5 is not warranted.

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

Install Server

Other Tools

Latest Blog Posts

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/jordanburke/oura-ring-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server