Oura MCP Server
Pricing
from $10.00 / 1,000 results
Oura MCP Server
Oura MCP Server exposes your Oura Ring API v2 data through Model Context Protocol (MCP), so AI assistants can query sleep, activity, stress, heart rate, workouts, readiness, and more. What You Get - 15+ MCP tools covering sleep, recovery, activity, vitals, and device/profile data.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Unlimited Dots
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
an hour ago
Last modified
Categories
Share
Oura MCP Server on Apify
Oura MCP Server exposes your Oura Ring API v2 data through Model Context Protocol (MCP), so AI assistants can query sleep, activity, stress, heart rate, workouts, readiness, and more.
This repository is configured to run as an Apify Actor and be consumed as an MCP server by AI tools that support MCP.
What You Get
- 17 MCP tools covering sleep, recovery, activity, vitals, and device/profile data.
- Apify Actor packaging for cloud deployment.
- Input schema for secure Oura token entry.
- Output schema and startup status output for observability.
Tool Coverage
Sleep and Recovery
| Tool | Description |
|---|---|
| get_sleep_data | Detailed sleep sessions with stages, HR, HRV, and breathing rate |
| get_daily_sleep | Daily sleep scores and contributors |
| get_sleep_time | Recommended and actual sleep timing windows |
| get_daily_readiness | Readiness score with contributor breakdown |
| get_daily_resilience | Recovery capacity and stress tolerance indicators |
Activity and Fitness
| Tool | Description |
|---|---|
| get_daily_activity | Steps, calories, MET levels, and activity time buckets |
| get_workouts | Workout sessions with type, duration, calories, distance |
| get_sessions | Guided sessions with biometrics |
| get_vo2_max | VO2 max fitness estimates |
Health Vitals
| Tool | Description |
|---|---|
| get_heart_rate | Heart rate time-series data (datetime range) |
| get_daily_spo2 | Daily blood oxygen saturation |
| get_daily_stress | Daily stress and recovery summary |
| get_daily_cardiovascular_age | Cardiovascular age estimate |
User and Device
| Tool | Description |
|---|---|
| get_personal_info | User profile data |
| get_ring_configuration | Ring model, firmware, setup details |
| get_rest_mode | Rest mode periods |
| get_tags | User-created tags and annotations |
Note: date-based tools accept optional start_date and end_date in YYYY-MM-DD.
Run actor
Oura Auth Token Setup
This MCP server needs an Oura Personal Access Token to call the Oura API.
1. Create token in Oura Cloud
- Open https://cloud.ouraring.com/personal-access-tokens
- Sign in to your Oura account
- Create a new personal access token
- Copy the token value (you will use it in Apify input)
2. Set token in Apify Actor input (recommended)
Where to set it in Apify:
- Open your actor in Apify Console
- Go to Input
- Fill the field named ouraApiToken
- Run the actor
Input example:
{"ouraApiToken": "YOUR_OURA_PERSONAL_ACCESS_TOKEN"}
The actor entrypoint reads this value and maps it to OURA_API_TOKEN internally.
Token troubleshooting
- 401 Unauthorized usually means token is invalid, expired, or copied with extra spaces.
- Confirm you are using a Personal Access Token (not another API credential type).
- Regenerate the token in Oura Cloud and update the actor input if needed.
Oura API Rate Limits
Oura Cloud API applies request rate limits per token. If you hit the limit, Oura returns HTTP 429 (Too Many Requests).
What this means for MCP usage:
- Repeated broad date-range queries can trigger limits faster.
- Some tools paginate results, which can make multiple API calls in one request.
- During spikes, requests may temporarily fail until the limit window resets.
Recommended practices:
- Query smaller date ranges first, then expand only if needed.
- Avoid firing many similar prompts in parallel.
- Cache or reuse recent results in your AI workflow when possible.
- On 429 errors, retry with backoff (for example 5 to 30 seconds), then try again.
If your platform exposes response headers, monitor Oura rate-limit headers to track remaining quota and reset timing.
In actor input, set:
- ouraApiToken: your Oura personal access token
At startup, the actor writes status output to:
- default dataset (a startup status item)
- key-value store key OUTPUT
Connect to AI Tools Through MCP
Different products expose MCP setup differently, but the pattern is the same:
- Create and run this actor on Apify.
- In Apify, open the actor MCP integration details.
- Copy the MCP connection URL and any required auth token.
- Add that MCP server in your AI tool MCP settings.
Example MCP Config Templates
Use these as templates. Product UIs and accepted keys can change, but the core values are the same:
- MCP server URL from Apify
- Bearer token or API key for that MCP endpoint
Replace placeholders:
- https://your-apify-mcp-url
- YOUR_MCP_BEARER_TOKEN
Claude
{"mcpServers": {"oura-apify": {"transport": "streamable-http","url": "https://your-apify-mcp-url","headers": {"Authorization": "Bearer YOUR_MCP_BEARER_TOKEN"}}}}
ChatGPT
{"mcp_servers": [{"name": "oura-apify","url": "https://your-apify-mcp-url","authorization": {"type": "bearer","token": "YOUR_MCP_BEARER_TOKEN"}}]}
Gemini
mcpServers:- id: oura-apifytransport: streamable-httpendpoint: https://your-apify-mcp-urlheaders:Authorization: Bearer YOUR_MCP_BEARER_TOKEN
Perplexity
{"integrations": {"mcp": [{"label": "oura-apify","server_url": "https://your-apify-mcp-url","auth_header": "Authorization","auth_value": "Bearer YOUR_MCP_BEARER_TOKEN"}]}}
If your AI tool only supports UI setup, use the same values in the form fields:
- Name: oura-apify
- Transport: streamable-http (or HTTP MCP)
- URL/Endpoint: your Apify MCP URL
- Header: Authorization = Bearer YOUR_MCP_BEARER_TOKEN
Claude
Use Claude's MCP server settings to add the Apify MCP endpoint, then allow tool calls from this server.
Example prompts:
- Analyze my last 7 days of sleep quality and explain the biggest factors.
- Compare my daily stress and readiness trends for the past 14 days.
- Summarize workouts this month and flag days with low recovery.
ChatGPT
In ChatGPT environments that support MCP or external tool connectors, add the Apify MCP server endpoint and authorize it.

Example prompts:
- Build a weekly recovery report from my Oura data.
- Find correlations between bedtime timing and readiness score.
- Give me a concise morning briefing from yesterday's Oura metrics.
Gemini
For Gemini workflows that support MCP via integrations or agent tooling, register the Apify MCP endpoint as an external tool server.
Example prompts:
- Identify patterns in my sleep stages over the last 30 days.
- Show whether my resting heart metrics improve after rest days.
- Recommend a low-intensity training week using my readiness and stress data.
Perplexity
For Perplexity environments with MCP/tool integrations, add the Apify MCP server and enable tool invocation.

Example prompts:
- Pull my recent Oura data and produce a plain-language health trend summary.
- Highlight unusual stress spikes and what changed around those dates.
- Compare weekly activity volume and sleep efficiency.
Example Query Patterns
Sleep deep dive
Prompt:
"Use get_sleep_data and get_daily_sleep for the last 14 days. Give me trends, outliers, and three actionable changes."
Recovery-aware training
Prompt:
"Use get_daily_readiness, get_daily_stress, and get_workouts from the last 21 days. Build a simple training-intensity plan for next week."
Stress and lifestyle notes
Prompt:
"Use get_daily_stress and get_tags for this month. Explain which tagged behaviors seem linked to higher stress or better recovery."
Notes
- This project provides data access and summarization support, not medical diagnosis.
- Oura API limits, availability, and account permissions apply.