An MCP server for your Oura Ring data. It exposes sleep, readiness, and activity from the official Oura v2 API as clean tools, so any MCP-capable assistant can reason about your recovery — not just chart it.
Bring your own credentials. Nothing is stored, proxied, or logged.
Not affiliated with or endorsed by Oura Health Oy.
| Tool | Returns |
|---|---|
get_sleep |
Daily sleep score + contributors (deep sleep, REM, latency, efficiency, restfulness, timing) |
get_readiness |
Daily readiness score, body temperature deviation + contributors (HRV balance, resting HR, recovery index) |
get_activity |
Daily activity score, steps, calories (active / total / target) + contributors |
All tools accept optional start_date / end_date (YYYY-MM-DD). Defaults: yesterday through today.
- Get an API token. Oura now issues credentials through OAuth2 apps in the developer portal — register a personal app and mint an access token for your own account. (Legacy personal access tokens still work if you have one from before the December 2025 deprecation.)
- Install and build:
git clone https://github.com/stanleytejakusuma/ring-mcp
cd ring-mcp
npm install
npm run build- Add to your MCP client. Claude Desktop (
claude_desktop_config.json):
{
"mcpServers": {
"oura": {
"command": "node",
"args": ["/path/to/ring-mcp/dist/index.js"],
"env": { "OURA_TOKEN": "your-api-token" }
}
}
}Any other MCP client: run node dist/index.js over stdio with OURA_TOKEN set.
"How did I sleep this week, and should I train hard today?"
The assistant calls get_sleep and get_readiness for the last 7 days and answers from your actual scores, contributors, and temperature deviation.
- Requires Node 20+.
- The Oura v2 API is documented at https://cloud.ouraring.com/v2/docs.
- Errors are surfaced plainly: a bad token reads as a bad token, a rate limit as a rate limit.
MIT