CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Oura Ring Mcp

mitchhankins01/oura-ring-mcp
1940 toolsauthSTDIOregistry active
Summary

Connects your Oura Ring health data directly to Claude through the Oura API. You get tools for querying sleep stages, readiness scores, activity metrics, heart rate, HRV, and SpO2 readings with formatted output instead of raw JSON. It includes smart analysis tools like anomaly detection, metric correlation, and condition comparison using your Oura tags. Supports both personal access tokens and OAuth flow with automatic refresh. The interesting part is the analysis layer: ask it to find what predicts your best sleep nights or compare recovery patterns across different conditions. Also deploys as an SSE server on Railway if you want remote access through Claude.ai instead of local stdio.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

40 tools
personal_info.listSingle Personal Info Document

Single Personal Info Document

No parameter schema in public metadata yet.

tag.listMultiple Tag Documents3 params

Multiple Tag Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
enhanced_tag.listMultiple Enhanced Tag Documents3 params

Multiple Enhanced Tag Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
workout.listMultiple Workout Documents3 params

Multiple Workout Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
session.listMultiple Session Documents3 params

Multiple Session Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
daily_activity.listMultiple Daily Activity Documents3 params

Multiple Daily Activity Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
daily_sleep.listMultiple Daily Sleep Documents3 params

Multiple Daily Sleep Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
daily_spo2.listMultiple Daily Spo2 Documents3 params

Multiple Daily Spo2 Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
daily_readiness.listMultiple Daily Readiness Documents3 params

Multiple Daily Readiness Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
sleep.listMultiple Sleep Documents3 params

Multiple Sleep Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
sleep_time.listMultiple Sleep Time Documents3 params

Multiple Sleep Time Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
rest_mode_period.listMultiple Rest Mode Period Documents3 params

Multiple Rest Mode Period Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
ring_configuration.listMultiple Ring Configuration Documents1 params

Multiple Ring Configuration Documents

Parameters* required
next_tokenvalue
daily_stress.listMultiple Daily Stress Documents3 params

Multiple Daily Stress Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
daily_resilience.listMultiple Daily Resilience Documents3 params

Multiple Daily Resilience Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
daily_cardiovascular_age.listMultiple Daily Cardiovascular Age Documents3 params

Multiple Daily Cardiovascular Age Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
v_o2_max.listMultiple Vo2 Max Documents3 params

Multiple Vo2 Max Documents

Parameters* required
end_datevalue
next_tokenvalue
start_datevalue
tag.getSingle Tag Document1 params

Single Tag Document

Parameters* required
document_idstring
enhanced_tag.getSingle Enhanced Tag Document1 params

Single Enhanced Tag Document

Parameters* required
document_idstring
workout.getSingle Workout Document1 params

Single Workout Document

Parameters* required
document_idstring
session.getSingle Session Document1 params

Single Session Document

Parameters* required
document_idstring
daily_activity.getSingle Daily Activity Document1 params

Single Daily Activity Document

Parameters* required
document_idstring
daily_sleep.getSingle Daily Sleep Document1 params

Single Daily Sleep Document

Parameters* required
document_idstring
daily_spo2.getSingle Daily Spo2 Document1 params

Single Daily Spo2 Document

Parameters* required
document_idstring
daily_readiness.getSingle Daily Readiness Document1 params

Single Daily Readiness Document

Parameters* required
document_idstring
sleep.getSingle Sleep Document1 params

Single Sleep Document

Parameters* required
document_idstring
sleep_time.getSingle Sleep Time Document1 params

Single Sleep Time Document

Parameters* required
document_idstring
rest_mode_period.getSingle Rest Mode Period Document1 params

Single Rest Mode Period Document

Parameters* required
document_idstring
ring_configuration.getSingle Ring Configuration Document1 params

Single Ring Configuration Document

Parameters* required
document_idstring
daily_stress.getSingle Daily Stress Document1 params

Single Daily Stress Document

Parameters* required
document_idstring
daily_resilience.getSingle Daily Resilience Document1 params

Single Daily Resilience Document

Parameters* required
document_idstring
daily_cardiovascular_age.getSingle Daily Cardiovascular Age Document1 params

Single Daily Cardiovascular Age Document

Parameters* required
document_idstring
v_o2_max.getSingle Vo2 Max Document1 params

Single Vo2 Max Document

Parameters* required
document_idstring
webhook.subscription.listList Webhook Subscriptions

List Webhook Subscriptions

No parameter schema in public metadata yet.

webhook.subscription.createCreate Webhook Subscription4 params

Create Webhook Subscription

Parameters* required
data_typestring
one of tag · enhanced_tag · workout · session · sleep · daily_sleep
event_typestring
one of create · update · delete
callback_urlstring
verification_tokenstring
webhook.subscription.getGet Webhook Subscription1 params

Get Webhook Subscription

Parameters* required
idstring
webhook.subscription.updateUpdate Webhook Subscription5 params

Update Webhook Subscription

Parameters* required
idstring
data_typevalue
event_typevalue
callback_urlvalue
verification_tokenstring
webhook.subscription.deleteDelete Webhook Subscription1 params

Delete Webhook Subscription

Parameters* required
idstring
webhook.subscription.renew.updateRenew Webhook Subscription1 params

Renew Webhook Subscription

Parameters* required
idstring
heartrate.listMultiple Heart Rate Documents3 params

Multiple Heart Rate Documents

Parameters* required
next_tokenvalue
end_datetimevalue
start_datetimevalue

Oura MCP Server

npm version MCP Registry CI

An MCP server that connects your Oura Ring to Claude and other AI assistants. Get human-readable insights about your sleep, readiness, and activity—not just raw JSON.

Features

Demo
  • Smart formatting - Durations in hours/minutes, scores with context ("85 - Optimal")
  • Sleep analysis - Sleep stages, efficiency, HRV, and biometrics
  • Readiness tracking - Recovery scores and contributor breakdown
  • Activity data - Steps, calories, and intensity breakdown
  • Health metrics - Heart rate, SpO2, stress, cardiovascular age
  • Smart analysis - Anomaly detection, correlations, trend analysis
  • Tags support - Compare metrics with/without conditions

See example outputs — what Claude returns for sleep, readiness, weekly summaries, and smart analysis

Quick Start

1. Install

npm install -g oura-ring-mcp

Or use directly with npx (no install needed):

npx oura-ring-mcp

2. Authenticate with Oura

Option A: Personal Access Token (simpler)

  1. Go to cloud.ouraring.com/personal-access-tokens
  2. Create a new token
  3. Set OURA_ACCESS_TOKEN in your Claude Desktop config (see below)

Option B: OAuth CLI Flow

  1. Create an OAuth app at developer.ouraring.com
    • Set Redirect URI to http://localhost:3000/callback
  2. Run the auth flow:
    export OURA_CLIENT_ID=your_client_id
    export OURA_CLIENT_SECRET=your_client_secret
    npx oura-ring-mcp auth
    
  3. Credentials are saved to ~/.oura-mcp/credentials.json

3. Configure Claude Desktop

Add to claude_desktop_config.json:

With Personal Access Token:

{
  "mcpServers": {
    "oura": {
      "command": "npx",
      "args": ["oura-ring-mcp"],
      "env": {
        "OURA_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

With OAuth (after running npx oura-ring-mcp auth):

{
  "mcpServers": {
    "oura": {
      "command": "npx",
      "args": ["oura-ring-mcp"]
    }
  }
}

The server reads credentials from ~/.oura-mcp/credentials.json. To enable automatic token refresh, add your OAuth credentials:

{
  "mcpServers": {
    "oura": {
      "command": "npx",
      "args": ["oura-ring-mcp"],
      "env": {
        "OURA_CLIENT_ID": "your_client_id",
        "OURA_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Restart Claude Desktop. Requires Node >=18.

What Can I Ask?

Daily check-ins:

  • "How did I sleep last night?"
  • "Am I recovered enough to work out today?"
  • "What's my body telling me right now?"

Patterns & trends:

  • "Do I sleep better on weekends?"
  • "What time should I go to bed for optimal sleep?"
  • "Is my HRV improving or declining?"

Correlations & insights:

  • "Does alcohol affect my sleep quality?"
  • "What predicts my best sleep nights?"
  • "How does exercise timing affect my recovery?"

Comparisons:

  • "Compare my sleep this week vs last week"
  • "How do I sleep after meditation vs without?"
  • "What changed when I started taking magnesium?"

Anomalies:

  • "Are there any unusual readings in my data?"
  • "Why was my readiness so low yesterday?"
  • "Find days where my metrics were off"

Available Tools

Data Retrieval

ToolDescription
get_sleepSleep data with stages, efficiency, HR, HRV
get_daily_sleepDaily sleep scores with contributors
get_readinessReadiness scores and recovery metrics
get_activitySteps, calories, intensity breakdown
get_workoutsWorkout sessions with type and intensity
get_sessionsMeditation and relaxation sessions
get_heart_rateHR readings throughout the day
get_stressStress levels and recovery time
get_spo2Blood oxygen and breathing disturbance
get_tagsUser-created tags and notes

Smart Analysis

ToolDescription
detect_anomaliesFind unusual readings using outlier detection
analyze_sleep_qualitySleep analysis with trends, patterns, debt
correlate_metricsFind correlations between health metrics
compare_periodsCompare this week vs last week
compare_conditionsCompare metrics with/without a tag
best_sleep_conditionsWhat predicts your good vs poor sleep
analyze_hrv_trendHRV trend with rolling averages

Resources

ResourceDescription
oura://todayToday's health summary
oura://weekly-summaryLast 7 days with averages
oura://baselineYour 30-day averages and normal ranges
oura://monthly-insights30-day analysis with trends and anomalies
oura://tag-summaryYour tags and usage frequency

Prompts

PromptDescription
weekly-reviewComprehensive weekly health review
sleep-optimizationIdentify what leads to your best sleep
recovery-checkShould you train hard or rest today?
compare-weeksThis week vs last week comparison
tag-analysisHow a specific tag affects your health

Remote Deployment (Railway)

Deploy the MCP server for remote access. The server proxies OAuth through Oura, so users authenticate directly with their Oura account — no PAT needed.

1. Create an Oura OAuth App

  1. Go to Oura OAuth Applications
  2. Create a new application
  3. Set the Redirect URI to: https://your-app.railway.app/oauth/callback
  4. Note the Client ID and Client Secret

2. Deploy

# Install Railway CLI
npm install -g @railway/cli

# Login, init, and deploy
railway login
railway init
railway up

3. Set Environment Variables

In the Railway dashboard, add:

VariableDescription
OURA_CLIENT_IDFrom your Oura OAuth app
OURA_CLIENT_SECRETFrom your Oura OAuth app
NODE_ENVproduction
MCP_SECRET(Optional) Static bearer token for Claude Desktop (openssl rand -base64 32)
OURA_ACCESS_TOKEN(Optional) PAT fallback if not using OAuth (MCP_SECRET required)

Railway automatically sets PORT and RAILWAY_PUBLIC_DOMAIN.

4. Connect from Claude.ai

Use the connector in Claude.ai:

  1. Go to Settings > MCP Connectors > Add
  2. Enter your server URL: https://your-app.railway.app (without /mcp)
  3. Leave OAuth Client ID and Secret empty (dynamic registration handles it)
  4. You'll be redirected to Oura to authorize access to your data

5. Connect from Claude Desktop

For Claude Desktop, use MCP_SECRET + OURA_ACCESS_TOKEN:

{
  "mcpServers": {
    "oura-remote": {
      "url": "https://your-app.railway.app/mcp",
      "headers": {
        "Authorization": "Bearer your_mcp_secret_here"
      }
    }
  }
}

Local Testing

# With Oura OAuth (full flow)
OURA_CLIENT_ID=your_id OURA_CLIENT_SECRET=your_secret pnpm start:http

# With static secret only (requires OURA_ACCESS_TOKEN)
OURA_ACCESS_TOKEN=your_pat MCP_SECRET=test-secret pnpm start:http

# Verify health endpoint
curl http://localhost:3000/health

# Check OAuth metadata (only available when OURA_CLIENT_ID is set)
curl http://localhost:3000/.well-known/oauth-authorization-server

# Test authenticated request (with static secret)
curl -X POST http://localhost:3000/mcp \
  -H "Authorization: Bearer test-secret" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{}},"id":1}'

Contributing

See CLAUDE.md for architecture details and development guidelines.

License

MIT

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Configuration

OURA_ACCESS_TOKENsecret

Oura Personal Access Token (get from cloud.ouraring.com/personal-access-tokens)

OURA_CLIENT_ID

OAuth Client ID (alternative to access token, from developer.ouraring.com)

OURA_CLIENT_SECRETsecret

OAuth Client Secret (required with OURA_CLIENT_ID)

Registryactive
Packageoura-ring-mcp
TransportSTDIO
AuthRequired
UpdatedJan 25, 2026
View on GitHub