Skip to main content
Glama

Query an Oura collection

oura_query
Read-onlyIdempotent

Fetch complete Oura collections across any date range, automatically following pagination and handling inclusive date boundaries. Get all records without missing last-day data or truncated pages.

Instructions

Fetches a COMPLETE Oura collection over the requested range.

Follows pagination to the end: Oura returns next_token and whoever doesn't chase it receives the first page with nothing saying so. One local day of heartrate is 1,231 samples across 2 pages; a month, ~37,000.

The range is INCLUSIVE on both ends: equal start and end return that day. Oura does not behave that way — some collections exclude the last day and others don't, and workout is skewed to UTC — but that is corrected here.

Date-range collections use YYYY-MM-DD. heartrate and ring_battery_level use ISO 8601 with time. personal_info and ring_configuration take no range.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayNoShorthand for a single day: equivalent to start=end=day.
endNoYYYY-MM-DD, or ISO 8601 with time
startNoYYYY-MM-DD, or ISO 8601 with time
fieldsNoOnly these fields. Oura trims on its side, so less comes down: use it on long heartrate ranges. `day` and `id` always come back.
formatNo`json` (default) or `csv`. CSV for large volumes: a month of heartrate is ~37,000 records and in JSON the keys repeat 37,000 times.json
latestNoOnly the most recent record. heartrate and ring_battery_level only; it needs no range.
collectionYesExact name. See `oura_collections` if you are unsure.
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive. The description adds significant non-obvious behavior: it fully chases pagination while Oura's API doesn't, inclusive range correction differing from Oura's native behavior, collection-specific date formats, and the fact that personal_info/ring_configuration ignore ranges. This is exactly the kind of context that goes beyond annotations.

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?

The description is three compact paragraphs with front-loaded core behavior, followed by edge cases and performance guidance. Every sentence carries value—the sample counts justify csv/fields advice, and the pagination warning is critical. No filler, well-structured.

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

Completeness4/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 should help the agent understand return behavior. It covers pagination, inclusiveness, date formats, collection-specific exceptions, and performance. It does not explicitly state the exact JSON envelope or error behavior, but it is otherwise thorough for a moderate-complexity query tool.

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 descriptions cover all 7 parameters (100%), so the baseline is 3. The description adds meaningful semantics: equal start/end returns that day, heartrate uses ISO 8601 with time while others use YYYY-MM-DD, and example counts (1,231 samples/day) explain why fields and csv are useful. It does not just repeat the schema.

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 opens with a specific verb and object: 'Fetches a COMPLETE Oura collection over the requested range.' It clearly identifies the resource (Oura collection) and differentiates from sibling tools like oura_collections (which lists available collections) by focusing on data retrieval with pagination handling.

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 substantial usage context: when to use csv format for large volumes, when to use the fields parameter for long heartrate ranges, and when latest applies. It also warns about date-format differences and inclusive range semantics. However, it does not explicitly contrast with sibling tools beyond 'see oura_collections if unsure,' lacking explicit when-not-to-use alternatives.

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/proscar87/oura-mcp'

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