Oura Ring MCP Server runs on your own machine — the client starts it, so there is no endpoint to ping. 242 installs a week from npm. Last commit 17 Oct 2026.
Oura Ring MCP server for the Oura API v2: sleep, readiness, activity, heart rate, and more.
We read the source, 2 d ago · rules 995398eba69f
What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.
spawn(cmd, args, { stdio: "ignore", detached: true })
Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.
We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add oura-ring-mcp-server -e 'OURA_CLIENT_ID=<OURA_CLIENT_ID>' -e 'OURA_CLIENT_SECRET=<OURA_CLIENT_SECRET>' -- npx -y oura-ring-mcp-server
{
"mcpServers": {
"oura-ring-mcp-server": {
"command": "npx",
"args": [
"-y",
"oura-ring-mcp-server"
],
"env": {
"OURA_CLIENT_ID": "<OURA_CLIENT_ID>",
"OURA_CLIENT_SECRET": "<OURA_CLIENT_SECRET>"
}
}
}
}
[mcp_servers.oura-ring-mcp-server]
command = "npx"
args = ["-y", "oura-ring-mcp-server"]
env = { OURA_CLIENT_ID = "<OURA_CLIENT_ID>", OURA_CLIENT_SECRET = "<OURA_CLIENT_SECRET>" }
{
"mcpServers": {
"oura-ring-mcp-server": {
"command": "npx",
"args": [
"-y",
"oura-ring-mcp-server"
],
"env": {
"OURA_CLIENT_ID": "<OURA_CLIENT_ID>",
"OURA_CLIENT_SECRET": "<OURA_CLIENT_SECRET>"
}
}
}
}
{
"servers": {
"oura-ring-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"oura-ring-mcp-server"
],
"env": {
"OURA_CLIENT_ID": "<OURA_CLIENT_ID>",
"OURA_CLIENT_SECRET": "<OURA_CLIENT_SECRET>"
}
}
}
}
Put your own values in place of
<OURA_CLIENT_ID> (Oura OAuth2 client ID (register an app at https://cloud.ouraring.com/oauth/applications, then run `oura-ring-mcp-server login` once to authorize)), <OURA_CLIENT_SECRET> (Oura OAuth2 client secret from the same application).
The author’s registry entry marks them as required.
Optional settings from the registry entry, left out of the block above:
OURA_SANDBOX (Use Oura's /sandbox/ demo data instead of real data (true/false, default false)), TRANSPORT_TYPE (Transport: 'stdio' (default) or 'httpStream' for remote/Docker deployments), PORT (HTTP port for httpStream transport (default 3000)), HOST (HTTP host for httpStream transport (default 0.0.0.0)), OURA_TELEMETRY_FILE (Write NDJSON telemetry events to this file path (safe under any transport)), OURA_TELEMETRY_CONSOLE (Console telemetry under httpStream transport: true (default) or false).
MCP server for Oura Ring API v2 (sleep, activity, readiness, heart rate, workouts).
Read sleep, readiness, activity, stress, heart rate and workouts from the Oura Ring.
Sleep, readiness, HRV, resting heart rate, activity and stress from your Oura Ring
Read-only Oura Ring sleep, readiness, activity, stress and heart rate data (OAuth2)
Read-only access to your Oura Ring readiness, sleep, activity, HRV, heart rate and trends.
Privacy-first, unofficial Oura MCP server for AI health, sleep, activity and heart-rate agents.
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Privacy-first, unofficial Fitbit MCP server for AI health, sleep, activity and heart-rate agents.
Answers built from our own checks of this server.