Oura MCP. Analyze sleep cycles, readiness, and recovery metrics.
Works with every AI agent you already use
…and any MCP-compatible client
Just plug in your AI agents and start using Vinkius.
Oura MCP Server gives your AI agent direct access to your Oura Ring health data. You can query sleep scores, track daily activity goals, monitor readiness metrics (HRV, body temp), and analyze workout logs—all through natural conversation.
Stop staring at dashboards; ask the questions you actually want answered.
What your AI agents can do
Get activity
Retrieves your daily step count, calories burned, and MET minutes within a specified date range.
Get heart rate
Gets high-frequency heart rate samples and corresponding HRV for every data point in a narrow time window.
Get readiness
Retrieves your daily readiness score, resting heart rate, body temperature, and recovery metrics within a date range.
The agent retrieves detailed sleep scores and stages (REM, deep, light, wake) for a specified time frame using the get_sleep tool.
You can check your current readiness score, resting heart rate, body temperature, and overall recovery status with get_readiness.
The tool pulls daily activity data—steps, calories, MET minutes—to show performance over a date range using get_activity.
You get a list of logged workouts, including type, duration, and estimated heart rate zones via the get_workouts tool.
This feature pulls detailed 5-minute heart rate samples and HRV data points using get_heart_rate; remember to narrow your dates here.
The agent reads your manual tags (mood, energy) via get_tags so you can cross-reference them against sleep or readiness scores.
Ask AI about this MCP
Supported MCP Clients
Waiting for input…
Oura MCP Server: 7 Tools for Health Metrics
Use these seven tools to programmatically pull every type of data from your Oura Ring, including sleep stages, heart rate samples, and activity logs.
019d8468get activity
Retrieves your daily step count, calories burned, and MET minutes within a specified date range.
019d8468get heart rate
Gets high-frequency heart rate samples and corresponding HRV for every data point in a narrow time window.
019d8468get readiness
Retrieves your daily readiness score, resting heart rate, body temperature, and recovery metrics within a date range.
019d8468get sessions
Gathers an overall summary of sleep scores, activity data, and key readiness indicators for a given period.
019d8468get sleep
Retrieves detailed sleep data, including time spent in REM, light, deep, and awake stages, over a specified date range.
019d8468get tags
Fetches user-entered tags—like mood or energy levels—allowing you to correlate subjective feelings with physical metrics.
019d8468get workouts
Gets a list of all recorded workouts, including the type, duration, and calories burned for each session.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with Oura, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 4,700+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
What you can do with this MCP connector
Your AI agent connects straight to your Oura Ring health data stream. You don't have to jump between apps or pore over dashboards; you just ask a question in plain language, and the server gives you the numbers. It lets you analyze complex patterns—like how poor sleep impacts your recovery score—using nothing but conversation.
Analyze Sleep Cycles: When you need to know about sleep efficiency, use get_sleep. This tool pulls detailed data covering your time spent in REM sleep, deep sleep, light sleep, and periods when you were awake. You can check these stages over any specific date range to see patterns in your nightly rest.
Assess Recovery Status: To quickly gauge how recovered you are, run get_readiness. This gives you your daily readiness score alongside crucial metrics like your resting heart rate, body temperature, and overall recovery status for a given period. It's your quick check on whether you can push it or if you need to chill out.
Track Physical Activity Trends: For general fitness tracking, get_activity retrieves your daily performance data. You get the step count, total calories burned, and MET minutes across any date range you specify. This helps you see how your physical output changes week over week.
Review Exercise Performance: Want to look back at a specific workout? The get_workouts tool gathers a complete list of every logged session. For each one, it provides the type of exercise, how long it lasted, and the estimated calories burned. It’s a straightforward log of your physical effort.
Get High-Frequency Heart Data: When you need deep metrics, use get_heart_rate. This feature pulls detailed heart rate samples and corresponding HRV data points for every five minutes within a narrow date window. You gotta remember to keep those dates tight here; this is high-resolution stuff.
Correlate Behaviors with Health Metrics: Sometimes the data isn't enough—you need context. get_tags lets your agent read your manual entries, like notes on how you felt or your energy levels. You can then cross-reference those subjective feelings against hard metrics like sleep scores or readiness readings to find connections.
View Summaries and Overviews: Need a big-picture view for a whole period? get_sessions gives you an overall summary that bundles together the key sleep scores, activity totals, and major readiness indicators for the entire span of time you're interested in. It’s a solid starting point before diving into granular details.
Putting it Together: You can track your full health picture by querying these tools together. For example, you'll get get_sleep data to check your REM and deep cycles; then you'll run get_readiness on the same dates to see if poor sleep correlated with a lower recovery score. If you want more depth, you can cross-reference that using get_tags, noting whether you felt stressed or energized during those low-scoring days.
It all comes down to asking specific questions: 'What was my average deep sleep duration last month?' (using get_sleep) or 'How did my readiness score change in the week I started running more often?' (combining get_readiness and get_activity). Your agent handles the data retrieval from all these sources—from basic step counts via get_activity to complex HRV readings via get_heart_rate—so you just get the answer.
It's built for deep analysis, letting you stop staring at dashboards and start talking about your health.
How Oura MCP Works
- 1 First, subscribe to the Oura server and provide your personal access token.
- 2 Next, prompt your AI client (Claude, Cursor, etc.) with a question—like 'Why was my readiness low yesterday?'
- 3 The agent automatically calls multiple tools (
get_readiness,get_sleep,get_tags), compiles the raw data, and gives you a plain English answer.
The bottom line is: Your AI client handles all the API calling and data stitching for you.
Who Is Oura MCP For?
This isn't just for tracking—it's for diagnosis. It’s for the athlete who knows their metrics are more important than a simple summary, or the biohacker trying to prove correlation between mood and deep sleep cycles. If you're tired of jumping between Oura's app, your calendar, and a spreadsheet just to get one answer, this is for you.
Uses the tool to track recovery metrics (HRV via get_readiness) and correlate them with specific workout logs (get_workouts) to fine-tune training cycles.
Runs multi-tool queries that link manual tags (e.g., 'stressful meeting' from get_tags) directly against sleep efficiency scores (get_sleep) for pattern recognition.
Pulls weekly activity summaries (get_activity, get_sessions) to spot trends in patient adherence and recovery over time, providing data for actionable recommendations.
What Changes When You Connect
- Deep correlation analysis: Instead of just seeing a low score in the Oura app, you can ask your agent to check
get_tags(e.g., 'How did my mood last week?') alongsideget_sleepdata to find patterns. - High-resolution biometric reads: Need more detail than a daily graph? Use
get_heart_rate. It delivers specific 5-minute heart rate samples and HRV, giving you the raw numbers for advanced analysis. - Actionable recovery assessment: Stop guessing if you're ready to train. Running
get_readinessgives you an immediate score plus resting HR and body temperature context, telling you exactly where your system stands. - Workout performance review: Don't just look at the total minutes. Use
get_workoutscombined withget_activityto see if your effort (MET minutes) matched your intended goal for that day. - Comprehensive weekly overview: Forget jumping between screens. Running
get_sessionspulls together a summary of sleep, activity, and readiness so you get one holistic view of the week's performance. - Pinpoint poor sleep causes: If your score is low, ask the agent to check
get_sleepfor specific stages (like 'was my deep sleep enough?') or cross-reference it with what happened that day usingget_tags.
Real-World Use Cases
Determining workout appropriateness
An athlete wakes up and their readiness score is low (retrieved via get_readiness). They ask the agent, 'Should I run today?' The agent compares this against historical data from get_workouts and advises a rest day because recent sleep quality (get_sleep) was also poor.
Investigating energy dips
A biohacker notices their readiness score drops on days they eat specific foods. They prompt the agent to run get_tags (inputting 'high-carb meal') and cross-reference this with multiple calls to get_heart_rate over time, building a data correlation chart.
Reviewing chronic poor sleep
A user feels tired all the time. They ask their agent to run get_sleep for the last month and combine it with get_activity data. The agent highlights that while total minutes were high, deep sleep stages consistently dipped below optimal thresholds.
Analyzing overall recovery trends
A physical therapist needs a quick report on 10 patients. They use the server to run get_sessions for all 10 over the last week, getting standardized scores and activity summaries without logging into 10 different dashboards.
The Tradeoffs
Asking for 'all data' at once
Prompting: 'Give me everything about my health.' The agent throws a massive, unreadable dump of raw JSON data covering every metric for the last year. It’s useless noise.
→
Don't ask for everything. Be specific and use multiple tools: If you need to check recovery, start with get_readiness. Then, if needed, drill into the cause using get_sleep or checking behavior via get_tags.
Treating heart rate as a single number
Asking: 'What was my average heart rate yesterday?' This gives you one useless mean value that ignores fluctuations.
→
Use the dedicated get_heart_rate tool. It fetches high-frequency data, giving you the actual samples and HRV over time, which is what matters for real analysis.
Forgetting context limits
Trying to run get_readiness or get_sleep across a decade. The server hits rate limits or returns incomplete data.
→
Always specify the date range and keep it tight. Use get_readiness for the current day's status, and limit historical lookbacks (e.g., 'last 7 days') to ensure reliable data.
When It Fits, When It Doesn't
Use this server if your goal is multi-source correlation: you need to link a behavior (get_tags) with a physiological result (get_sleep or get_readiness). You shouldn't use it just because you want 'all the data'; you should use it when one tool's output needs context from another. For example, if you only care about today's recovery status, just run get_readiness. If you need to know why that score is low—was it bad sleep, or was it high stress?—then you must combine the results of get_sleep and get_tags in a single prompt. Don't assume one tool holds all the answers; its power is stitching them together.
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Oura. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This server provides 7 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.
Available Capabilities
Checking your recovery status shouldn't mean jumping through five different apps.
Today, if you want to know if you should train hard, you open the Oura app for a score. Then you check Google Fit for step counts. You might jump into a journal or spreadsheet to manually log your mood tags. Finally, you pull up an old workout summary just to compare effort levels—it’s click-by-click data collection.
With this MCP server, you ask your agent: 'Given my mood and sleep last night, can I handle a hard run?' The agent instantly runs `get_readiness`, cross-references it with `get_sleep` stages, and checks for recent activity via `get_workouts`. It delivers one answer. Period.
Oura MCP Server: Getting your full health picture.
Before this, getting a complete view meant manually compiling graphs of sleep stages from one dashboard, heart rate variability from another, and correlating it all with subjective mood entries. It was time-consuming data archaeology.
Now, you just tell your agent: 'Show me the full picture for last week.' The server runs `get_sessions`, pulls in detailed metrics via `get_sleep` and `get_activity`, and hands you a single, synthesized report. That's what changes.
Common Questions About Oura MCP
How do I get my sleep data using the get_sleep tool? +
You call the get_sleep tool and specify the start and end dates (YYYY-MM-DD). This returns detailed metrics like time spent in REM, light, deep, and awake stages.
What is the best way to check my readiness score using get_readiness? +
The get_readiness tool gives you your score alongside resting heart rate, body temperature, and HRV. Always specify a narrow date range for accuracy.
Can I correlate mood with sleep scores using the get_tags and get_sleep tools? +
Yes. The agent runs get_tags to pull your manual entries (like 'stressed') and uses those keywords to analyze how they relate to patterns found in your get_sleep data.
Does get_heart_rate return enough data for advanced analysis? +
Yes, it returns high-frequency 5-minute heart rate samples and HRV. Because this is detailed, you must use a narrow date range to avoid overload.
How do I get all my sleep data using the get_sleep tool, even if it spans many days? +
You must use the nextToken field provided in the response. Your AI client needs to loop through this token, passing it back into the tool call until the server indicates no further pages are available.
What should I watch out for when using the get_heart_rate tool? +
Because this endpoint returns high-frequency samples, you must use very narrow date ranges. Otherwise, your query will generate an extremely large payload and could fail due to data volume.
Should I always specify a date range when calling get_activity? +
Yes, filtering by dates is critical. Specifying the exact start and end times drastically improves response speed for your agent and prevents unnecessary data fetching.
What if my AI client runs into an error while using any of these Oura tools? +
Check the specific error code provided by the tool. Most issues are related to invalid date formats or expired access tokens, so double-check your authentication setup first.
How do I get an Oura Personal Access Token? +
Log in to your Oura account at cloud.ouraring.com, create a personal access token in your account settings. The token gives access to your sleep, activity, readiness and health data.
What health data is available? +
Sleep (score, stages, efficiency), Activity (steps, calories, MET), Readiness (score, HRV, RHR, temperature), Tags (mood, energy, behaviors), Workouts (type, duration, HR zones) and Heart Rate (5-min samples).
How far back can I access data? +
You can access all historical data recorded by your Oura Ring. Use start_date and end_date parameters to filter results. Data is paginated with a nextToken for large date ranges.
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
More in this category
Zinrelo
Manage loyalty programs, reward points, and customer engagement via the Zinrelo API.
Robolytix
Monitor robotic process automation performance with analytics that track bot execution times, success rates, and exceptions.
Mention
Monitor brand mentions across the web, social media, and news in real time to protect your reputation and spot trends early.
You might also like
Zapier Webhook Trigger
This MCP does exactly one thing: it sends JSON payloads to Zapier Webhooks. That's its only function. Incredible for connecting AI agents to thousands of visual automation workflows instantly.
EnterpriseAlumni
Equip your AI agent to manage alumni networks, track engagement, and monitor member profiles via the EnterpriseAlumni API.
Customers.ai
Identify anonymous website visitors by name and turn them into leads with AI-powered visitor identification and outreach automation.