Oura MCP
Provides LLMs with access to Oura Ring health data including sleep metrics, activity tracking, heart rate, readiness scores, and other wellness insights through the Oura API v2.
README
Oura MCP Server
Connect your Oura Ring to Claude, Cursor, or any MCP-compatible app! Ask questions about your sleep, activity, readiness, heart rate, and other health metrics using natural language.
What Can You Do?
Once installed, you can ask your AI assistant:
- "What was my sleep score last night?"
- "Show me my activity data for the past week"
- "How is my readiness trending this month?"
- "What was my heart rate during yesterday's workout?"
- "Show me my VO2 max progression"
Your AI assistant will have access to all your Oura Ring data and can analyze trends, compare periods, and give you insights.
Quick Setup
Note: This guide covers personal use with Personal Access Tokens. For production deployment with OAuth2, configure environment variables (
OURA_CLIENT_ID,OURA_CLIENT_SECRET,DEPLOYED_URL) in your FastMCP Cloud dashboard and deploy.
Step 1: Get Your Oura Token
- Go to https://cloud.ouraring.com/personal-access-tokens
- Log in with your Oura account
- Click "Create A New Personal Access Token"
- Give it a name (like "Claude")
- Copy the token - you won't see it again!
Step 2: Configure Your MCP Client
For Claude Desktop:
Find your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Open it in a text editor and add this (replace YOUR_TOKEN_HERE with your token from Step 1):
{
"mcpServers": {
"oura": {
"command": "uvx",
"args": ["oura-mcp"],
"env": {
"OURA_ACCESS_TOKEN": "YOUR_TOKEN_HERE"
}
}
}
}
If you already have other MCP servers, just add the "oura" section inside "mcpServers".
For other MCP clients (Cursor, etc.): Refer to your client's documentation for MCP server configuration. Use the same uvx oura-mcp command with the OURA_ACCESS_TOKEN environment variable.
Step 3: Restart Your MCP Client
Close and reopen your application (Claude Desktop, Cursor, etc.). Look for the MCP servers/tools indicator - you should see "oura" listed as connected.
Step 4: Start Using It!
Try asking: "Show me my sleep data from last week"
Available Data
The server provides access to:
Daily Summaries
- Sleep scores and analysis (deep sleep, REM, efficiency, etc.)
- Activity scores, steps, calories, and active time
- Readiness scores with HRV, temperature, and recovery metrics
- Stress and recovery data
Detailed Metrics
- Sleep sessions with heart rate, HRV, and breathing patterns
- Workouts with intensity, calories, and distance
- Heart rate data in 5-minute intervals
- VO2 max estimates
- Blood oxygen levels (Gen 3 ring)
- Resilience and cardiovascular age
Personal Data
- Ring information and settings
- Personal profile data
- Tags and annotations
Troubleshooting
"No access token available" or connection error
- Double-check your token is correct in the config file
- Make sure there are no extra spaces or quotes
- Restart your application after making changes
- Create a new token if needed: https://cloud.ouraring.com/personal-access-tokens
No data showing up
- Make sure your Oura Ring has synced recently (open the Oura mobile app)
- Sleep data requires manual sync via the app
- You can only access dates when you were wearing the ring
MCP client doesn't see the Oura server
- Check your client's MCP servers/tools list - is "oura" listed?
- Verify your config file has valid JSON (use a JSON validator online)
- Make sure you restarted your application after editing the config
Still having issues?
Check the Oura API status: https://api.ouraring.com
For Developers
Local Development
git clone https://github.com/pokidyshev/oura-mcp.git
cd oura-mcp
# Create .env file with your token
cp .env.example .env
# Edit .env and add: OURA_ACCESS_TOKEN=your_token
# Install and test
uv sync
uv run mcp dev src/oura_mcp/server.py
Production Deployment (OAuth2)
For production deployment to FastMCP Cloud:
-
Configure OAuth in Oura Developer Portal:
- Go to https://cloud.ouraring.com/oauth/applications
- Add redirect URI:
https://your-app.fastmcp.app/mcp/auth/callback
-
Generate a JWT signing key:
python -c "import secrets; print(secrets.token_urlsafe(32))"Copy the output - you'll need it in the next step.
-
Set environment variables in FastMCP Cloud dashboard:
OURA_CLIENT_ID=your_client_id OURA_CLIENT_SECRET=your_client_secret DEPLOYED_URL=https://your-app.fastmcp.app JWT_SIGNING_KEY=<paste_generated_key_here>⚠️ Important Notes:
DEPLOYED_URLis the base domain (FastMCP Cloud handles/mcpmounting automatically)- Keep
JWT_SIGNING_KEYstable! If you change it, all user tokens become invalid.
-
Deploy: Push to connected GitHub repo or use FastMCP CLI
-
Use in Claude Desktop: Add to config:
{ "mcpServers": { "oura": { "url": "https://your-app.fastmcp.app" } } }
Technical Details
- Rate Limits: 5,000 requests per 5-minute window (handled automatically)
- Data Format: All responses in JSON
- Date Formats: Supports natural language ("today", "yesterday", "last week") and YYYY-MM-DD
- Security: All API calls use HTTPS. Tokens stored in environment variables only.
License
MIT License - see LICENSE file
Links
- Oura API Documentation: https://cloud.ouraring.com/docs
- MCP Documentation: https://modelcontextprotocol.io
- Built with: FastMCP
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.