Oura MCP App
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Oura MCP Appchart my sleep score for the last 30 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Oura MCP App
An MCP App that charts Oura Ring trends from a self-hosted warehouse. The tool returns the daily series and an interactive chart: hosts that implement MCP Apps render the chart inline; hosts that don't still get a useful text summary from the same call.
Rendered today by Claude (web and desktop), ChatGPT, VS Code / Copilot Chat 1.109+, Goose and Postman.
What it does
One tool, oura_trend(metric, days), over the daily table:
sleep_score, readiness_score, activity_score, hrv_avg, rhr_lowest, temp_deviation, spo2_avg, steps.
The chart lets you switch metric and range (7/30/90 days) without another model turn — the app calls the tool directly over the host bridge.
Related MCP server: Oura MCP Server
How it is put together
File | Role |
|
|
| Read-only Postgres access. Column names come from a fixed map, never from tool input |
| Streamable HTTP transport, stateless (one server per request) |
| The UI, bundled by Vite into a single inlined HTML file |
The host fetches exactly one HTML resource, so vite-plugin-singlefile inlines the script and CSS into it. The app reads the host's theme and style variables, so it matches whichever client renders it.
Run
npm install
npm run build
DATABASE_URL="postgres://user:pass@host:5432/oura" npm startServes POST /mcp (Streamable HTTP) on PORT, default 5010, plus /healthz.
Connect it
Point an MCP client at http://<host>:5010/mcp. It has no authentication and serves health data: keep it on a private network. For Claude Desktop, add it as a remote MCP server; the app appears when the tool is called.
Layout note
daily is the schema this reads: one row per day with the score and biometric columns listed above. It is produced by oura-platform, not by this repo.
Contributing
Before committing, enable the hooks: git config core.hooksPath .githooks, then copy
.private-terms.example to .private-terms and list what must never appear here.
License
Apache-2.0 — see LICENSE and NOTICE.
Not affiliated with or endorsed by Oura; "Oura" is a trademark of its owner. This is a personal data tool, not a medical device, and nothing it shows is medical advice.
This server cannot be deployed
Maintenance
Related MCP Connectors
Multi-tenant hosted MCP server for Oura Ring — 21 read-only tools, OAuth per user.
Connect your Oura Ring account securely in minutes. Enable authorized access to your sleep, activi…
Connect your Oura Ring account and enable access to your wellness data in apps and automations. In…
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Related MCP Servers
- AlicenseBqualityFmaintenanceEnables querying sleep, readiness, and resilience data from the Oura API via the Model Context Protocol (MCP), allowing natural language interaction and seamless integration with tools like Claude.639MIT
- AlicenseNot gradedqualityDmaintenanceProvides access to Oura Ring health data, including sleep, activity, readiness, and stress metrics via the Model Context Protocol. It enables users to query their personal biometric information and daily health summaries through natural language in MCP-compatible clients.1,632 npmMIT
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to query Oura Ring health data (sleep, readiness, activity, heart rate, SpO2, stress) via a remote MCP server.15 npmMIT
- AlicenseBqualityDmaintenanceEnables users to query their Oura Ring data (sleep, readiness, activity, heart rate) via natural language through any MCP-compatible LLM.422 npm1MIT