Reads Oura Ring data and returns readable analysis of sleep, readiness and activity.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add oura-ring --env OURA_ACCESS_TOKEN='<OURA_ACCESS_TOKEN>' --env OURA_CLIENT_SECRET='<OURA_CLIENT_SECRET>' -- npx -y oura-ring-mcp~/.codex/config.toml
[mcp_servers.oura-ring]
command = "npx"
args = ["-y", "oura-ring-mcp"]
env = { OURA_ACCESS_TOKEN = "<OURA_ACCESS_TOKEN>", OURA_CLIENT_SECRET = "<OURA_CLIENT_SECRET>" }
# codex mcp add oura-ring --env OURA_ACCESS_TOKEN='<OURA_ACCESS_TOKEN>' --env OURA_CLIENT_SECRET='<OURA_CLIENT_SECRET>' -- npx -y oura-ring-mcp~/.cursor/mcp.json
{
"mcpServers": {
"oura-ring": {
"command": "npx",
"args": [
"-y",
"oura-ring-mcp"
],
"env": {
"OURA_ACCESS_TOKEN": "<OURA_ACCESS_TOKEN>",
"OURA_CLIENT_SECRET": "<OURA_CLIENT_SECRET>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"oura-ring": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"oura-ring-mcp"
],
"env": {
"OURA_ACCESS_TOKEN": "<OURA_ACCESS_TOKEN>",
"OURA_CLIENT_SECRET": "<OURA_CLIENT_SECRET>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"oura-ring": {
"command": "npx",
"args": [
"-y",
"oura-ring-mcp"
],
"env": {
"OURA_ACCESS_TOKEN": "<OURA_ACCESS_TOKEN>",
"OURA_CLIENT_SECRET": "<OURA_CLIENT_SECRET>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"oura-ring": {
"command": "npx",
"args": [
"-y",
"oura-ring-mcp"
],
"env": {
"OURA_ACCESS_TOKEN": "<OURA_ACCESS_TOKEN>",
"OURA_CLIENT_SECRET": "<OURA_CLIENT_SECRET>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"oura-ring": {
"command": "npx",
"args": [
"-y",
"oura-ring-mcp"
],
"env": {
"OURA_ACCESS_TOKEN": "<OURA_ACCESS_TOKEN>",
"OURA_CLIENT_SECRET": "<OURA_CLIENT_SECRET>"
}
}
}
}Environment variables
OURA_ACCESS_TOKENOURA_CLIENT_SECRET
Replace the placeholders with your own credentials and keep them out of version control.