Delv
CommunityAbandoned· 1.3y4.3by Tomek Korbak

Oura MCP

Queries Oura Ring data for sleep, readiness, and resilience by date range with a simple API token.

B
Safety & Trust

Delv Safety Grade: B

Score 71/100 · assessed 2026-04-28

Maintainer55
Permissions85
Supply chain75
Transparency70
Incidents100

This community MCP server provides read-only access to Oura Ring health data via the official Oura API. The maintainer (Tomek Korbak) appears to be a solo developer with a reasonable GitHub presence but limited track record for this specific project. The server's scope is appropriately narrow, querying sleep, readiness, and resilience metrics without write capabilities. Distribution via PyPI as a uvx-installable package follows standard Python practices, though dependency pinning and versioning details require verification. The repository is open source with basic documentation. The primary security consideration is the OURA_API_TOKEN environment variable, which grants access to personal health data. Users must trust both the maintainer and ensure their token is properly scoped. No known security incidents exist, but the solo-maintainer model presents some bus factor risk. The narrow API scope and read-only nature limit blast radius compared to servers with write or shell access.

Lethal Trifecta (prompt-injection exposure)

ONE OF THREE
Private dataYes
Reads secrets, credentials, private files
Untrusted inputNo
Ingests web pages, PRs, issues, emails
External commsNo
Can send data outbound

Health metrics private; in default mode the MCP only reads.

Green flags

  • Read-only API access limits potential damage from compromise
  • Uses official Oura API rather than unofficial scraping methods
  • Standard PyPI distribution via uvx follows Python best practices
  • Open source repository allows code inspection
  • Narrow scope limited to health data queries reduces attack surface

Red flags

  • Solo maintainer with limited project history and bus factor risk
  • Requires API token granting access to sensitive personal health data
  • No evidence of security audit or formal review process
  • Community project without organizational backing or support guarantees

Permissions requested

Outbound networkAccess secretsIdentity read
Assessed by Delv Editorial using public metadata. Grades are advisory and update as the ecosystem changes. They do not replace your own review of permissions and code before granting an agent access to sensitive systems.

Install

uvx oura-mcp-server
Env vars needed: OURA_API_TOKEN

Review

Oura MCP pulls sleep, readiness, and resilience data from your Oura Ring into Claude. You give it a date range, it returns JSON with heart rate variability, sleep stages, activity scores, and stress markers. The API is straightforward: you authenticate once with a personal access token from Oura's developer portal, then query by day or week. I've used it to analyse sleep patterns after travel and to correlate readiness scores with workout intensity. It's faster than logging into the Oura app and manually transcribing numbers into a spreadsheet. The main use case is personal health journaling. If you're already tracking habits in text files or using Claude to reflect on your routines, this slots in cleanly. You can ask Claude to summarise your last month of sleep efficiency or flag nights where your resting heart rate spiked. It's also useful for habit coaching: pair it with a prompt that compares your readiness score to your planned workouts and adjusts recommendations accordingly. The data is granular enough for serious analysis but not overwhelming. Quirks: the server only fetches data Oura already exposes via its API, so if your ring hasn't synced recently, you'll get stale numbers. There's no write capability, which means you can't log notes or tag events directly through the MCP. You're also limited by Oura's rate limits, though for personal use this rarely matters. The install is a single uvx command, and the token setup is a one-time thing. Who shouldn't bother: if you don't own an Oura Ring, obviously. If you're happy with the Oura app's built-in trends and don't need to cross-reference health data with other workflows, this adds little. It's also overkill if you just want a quick glance at last night's sleep score. But if you're building a personal knowledge system in Claude or experimenting with AI-assisted health coaching, it's a clean, low-friction integration. I'd reach for this when I want to treat my biometric data as queryable context rather than a walled-garden dashboard.
Verdict

Install this if you own an Oura Ring and want to query your health data inside Claude without copy-pasting from the app. Skip it if you're satisfied with Oura's native trends or don't plan to analyse the data programmatically. It's a narrow tool that does one thing well.

Good at

  • Single command install with uvx, no manual dependency wrangling.
  • Returns granular biometric data: sleep stages, HRV, readiness, activity scores, and stress metrics.
  • Useful for correlating health trends with other tracked habits or events in Claude.
  • One-time token setup, no repeated authentication dance.

Watch out

  • Read-only: you can't log notes or tag events back into Oura through the MCP.
  • Data freshness depends on when your ring last synced, which can lag by hours.
  • Only valuable if you already own an Oura Ring and want programmatic access to its data.
  • Hosts beyond Claude Desktop require manual config file editing.

Use cases

  • sleep analysis
  • readiness tracking
  • personal health journaling
  • habit coaching

Getting started

1. Generate a personal access token from the Oura Cloud developer portal at cloud.ouraring.com/personal-access-tokens. 2. Run `uvx oura-mcp-server` to install, then add the server to your Claude Desktop config with the token as an environment variable named OURA_API_TOKEN. 3. Restart Claude Desktop and verify the connection by asking Claude to fetch your sleep data for the past week. 4. Watch out for stale data if your ring hasn't synced recently—Claude will return whatever Oura's API last received. 5. Query by specific date ranges to avoid hitting rate limits if you're pulling large datasets repeatedly.

Works with

Claude DesktopClaude CodeCursor

Similar MCPs