Skip to main content
Glama
trenerok

oura-mcp-server

by trenerok

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OURA_CLIENT_IDNoOAuth2 application client ID (required for token refresh and webhook management)
OURA_USE_SANDBOXNoSet to 'true' for sandbox/mock datafalse
OURA_ACCESS_TOKENYesOAuth2 access token for user data
OURA_CLIENT_SECRETNoOAuth2 application client secret (required for token refresh and webhook management)
OURA_REFRESH_TOKENNoRefresh token for automatic token renewal

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_personal_infoA

Get personal information for the authenticated Oura user. Returns age, weight, height, biological sex, and email (if available).

get_sleepC

Get detailed sleep data including sleep stages, heart rate, HRV, and breathing rate. Returns comprehensive sleep session data with durations for deep, light, REM sleep, and more.

get_sleep_by_idB

Get a single sleep document by its unique ID.

get_daily_sleepC

Get daily sleep scores and contributor breakdown. Returns sleep score with contributors like deep sleep, efficiency, latency, REM sleep, restfulness, timing, and total sleep.

get_daily_sleep_by_idB

Get a single daily sleep document by its unique ID.

get_sleep_timeC

Get optimal bedtime recommendations and sleep timing data. Returns optimal bedtime windows and sleep timing recommendations.

get_sleep_time_by_idB

Get a single sleep time document by its unique ID.

get_daily_activityC

Get daily activity data including steps, calories, activity levels, and MET data. Returns activity score with contributors like meeting daily targets, movement frequency, recovery time, and training metrics.

get_daily_activity_by_idB

Get a single daily activity document by its unique ID.

get_heart_rateB

Get heart rate time series data. Returns heart rate readings (BPM) with timestamps and source information. Uses datetime range parameters instead of date range.

get_daily_readinessC

Get daily readiness scores with contributor breakdown. Returns readiness score with contributors like activity balance, body temperature, HRV balance, recovery index, and sleep metrics.

get_daily_readiness_by_idB

Get a single daily readiness document by its unique ID.

get_daily_spo2C

Get daily blood oxygen saturation (SpO2) data. Returns average SpO2 percentage readings.

get_daily_spo2_by_idB

Get a single daily SpO2 document by its unique ID.

get_daily_stressC

Get daily stress data. Returns stress levels including high stress time, recovery time, and day summary.

get_daily_stress_by_idB

Get a single daily stress document by its unique ID.

get_daily_resilienceB

Get daily resilience data. Returns resilience level and contributors like sleep recovery, daytime recovery, and stress.

get_daily_resilience_by_idB

Get a single daily resilience document by its unique ID.

get_daily_cardiovascular_ageC

Get daily cardiovascular age data. Returns vascular age estimates based on physiological measurements.

get_daily_cardiovascular_age_by_idC

Get a single daily cardiovascular age document by its unique ID.

get_vo2_maxC

Get VO2 max estimates. Returns VO2 max values which indicate cardiovascular fitness level.

get_vo2_max_by_idC

Get a single VO2 max document by its unique ID.

get_workoutsC

Get workout data including activity type, duration, calories burned, and distance. Returns details about recorded workouts with start/end times and intensity levels.

get_workout_by_idC

Get a single workout document by its unique ID.

get_sessionsC

Get session data for activities like meditation, breathing exercises, and relaxation. Returns session details including heart rate, HRV, and mood data.

get_session_by_idB

Get a single session document by its unique ID.

get_tagsC

Get user-created tags for tracking various activities, behaviors, or conditions. Returns tag text, timestamp, and associated tag categories.

get_tag_by_idB

Get a single tag document by its unique ID.

get_enhanced_tagsC

Get enhanced tags with additional metadata. Returns tags with type codes, time ranges, and comments.

get_enhanced_tag_by_idC

Get a single enhanced tag document by its unique ID.

get_ring_configurationC

Get Oura Ring configuration details including color, design, size, firmware version, and hardware type. Returns information about the user's ring setup.

get_ring_configuration_by_idA

Get a single ring configuration document by its unique ID.

get_rest_mode_periodsC

Get rest mode period data. Returns information about when rest mode was activated, including episodes and tags.

get_rest_mode_period_by_idA

Get a single rest mode period document by its unique ID.

list_webhook_subscriptionsA

List all webhook subscriptions for your application. Requires OURA_CLIENT_ID and OURA_CLIENT_SECRET environment variables.

get_webhook_subscriptionA

Get details of a specific webhook subscription by ID. Requires OURA_CLIENT_ID and OURA_CLIENT_SECRET environment variables.

create_webhook_subscriptionB

Create a new webhook subscription to receive notifications when data changes. Requires OURA_CLIENT_ID and OURA_CLIENT_SECRET environment variables. Valid data types: tag, enhanced_tag, workout, session, daily_activity, daily_sleep, daily_spo2, daily_readiness, sleep, sleep_time, rest_mode_period, ring_configuration, daily_stress, daily_resilience, daily_cardiovascular_age, vO2_max, heartrate.

update_webhook_subscriptionC

Update an existing webhook subscription. Requires OURA_CLIENT_ID and OURA_CLIENT_SECRET environment variables.

delete_webhook_subscriptionA

Delete a webhook subscription. Requires OURA_CLIENT_ID and OURA_CLIENT_SECRET environment variables.

renew_webhook_subscriptionA

Renew a webhook subscription to extend its expiration time. Webhook subscriptions expire after some time and need to be renewed. Requires OURA_CLIENT_ID and OURA_CLIENT_SECRET environment variables.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 40 tools

Disambiguation4/5

Tools are mostly distinct: each data type typically has a list and a by_id variant, and descriptions clarify the difference. However, some pairs like get_sleep vs get_daily_sleep or get_tags vs get_enhanced_tags require careful reading, which could cause occasional misselection.

Naming Consistency4/5

Consistent snake_case with a get_ / get_..._by_id pattern for most data tools, and list_/get_/create_/update_/delete_ for webhooks. Minor inconsistency: list operations sometimes use singular nouns (get_sleep) and sometimes plural (get_workouts), and get_rest_mode_periods pairs with a singular by_id tool.

Tool Count2/5

40 tools is heavy for the apparent scope; many are thin list/by_id pairs that could be merged or parameterized. While each maps to an API endpoint, the count feels excessive and increases cognitive load.

Completeness5/5

Covers the full Oura v2 API surface: personal info, all health metrics with list and by_id, workouts, sessions, tags, enhanced tags, ring config, and full webhook CRUD plus renew. No obvious missing endpoints for the domain.

Maintenance

ActivityInactive
ResponsivenessNo issues