oura-ring-mcp
Servidor MCP para dados do Oura Ring com ferramentas de análise inteligentes
Documentação
Servidor MCP Oura
Um servidor MCP que conecta seu Oura Ring ao Claude e outros assistentes de IA. Obtenha insights legíveis sobre seu sono, prontidão e atividade — não apenas JSON bruto.
Recursos
- Formatação inteligente - Durações em horas/minutos, pontuações com contexto ("85 - Ótimo")
- Análise de sono - Estágios do sono, eficiência, VFC e biométricas
- Acompanhamento de prontidão - Pontuações de recuperação e detalhamento de contribuidores
- Dados de atividade - Passos, calorias e detalhamento de intensidade
- Métricas de saúde - Frequência cardíaca, SpO2, estresse, idade cardiovascular
- Análise inteligente - Detecção de anomalias, correlações, análise de tendências
- Suporte a tags - Compare métricas com/sem condições
Veja exemplos de saídas — o que o Claude retorna para sono, prontidão, resumos semanais e análise inteligente
Início Rápido
1. Instalação
npm install -g oura-ring-mcp
Ou use diretamente com npx (sem necessidade de instalação):
npx oura-ring-mcp
2. Autentique-se com Oura
Opção A: Token de Acesso Pessoal (mais simples)
- Acesse cloud.ouraring.com/personal-access-tokens
- Crie um novo token
- Defina
OURA_ACCESS_TOKENna configuração do seu Claude Desktop (veja abaixo)
Opção B: Fluxo CLI OAuth
- Crie um aplicativo OAuth em developer.ouraring.com
- Defina a URI de Redirecionamento para
http://localhost:3000/callback
- Defina a URI de Redirecionamento para
- Execute o fluxo de autenticação:
export OURA_CLIENT_ID=your_client_id export OURA_CLIENT_SECRET=your_client_secret npx oura-ring-mcp auth - As credenciais são salvas em
~/.oura-mcp/credentials.json
3. Configure o Claude Desktop
Adicione a claude_desktop_config.json:
Com Token de Acesso Pessoal:
{
"mcpServers": {
"oura": {
"command": "npx",
"args": ["oura-ring-mcp"],
"env": {
"OURA_ACCESS_TOKEN": "your_token_here"
}
}
}
}
Com OAuth (após executar npx oura-ring-mcp auth):
{
"mcpServers": {
"oura": {
"command": "npx",
"args": ["oura-ring-mcp"]
}
}
}
O servidor lê as credenciais de ~/.oura-mcp/credentials.json. Para habilitar a atualização automática de token, adicione suas credenciais OAuth:
{
"mcpServers": {
"oura": {
"command": "npx",
"args": ["oura-ring-mcp"],
"env": {
"OURA_CLIENT_ID": "your_client_id",
"OURA_CLIENT_SECRET": "your_client_secret"
}
}
}
}
Reinicie o Claude Desktop. Requer Node >=18.
O Que Posso Perguntar?
Check-ins diários:
- "Como foi meu sono ontem à noite?"
- "Estou recuperado o suficiente para treinar hoje?"
- "O que meu corpo está me dizendo agora?"
Padrões e tendências:
- "Durmo melhor nos fins de semana?"
- "Que horas devo ir dormir para um sono ideal?"
- "Meu VFC está melhorando ou piorando?"
Correlações e insights:
- "O álcool afeta a qualidade do meu sono?"
- "O que prevê minhas melhores noites de sono?"
- "Como o horário do exercício afeta minha recuperação?"
Comparações:
- "Compare meu sono desta semana com o da semana passada"
- "Como durmo após meditação vs. sem?"
- "O que mudou quando comecei a tomar magnésio?"
Anomalias:
- "Há alguma leitura incomum nos meus dados?"
- "Por que minha prontidão estava tão baixa ontem?"
- "Encontre dias em que minhas métricas estavam fora do normal"
Ferramentas Disponíveis
Recuperação de Dados
| Ferramenta | Descrição |
|---|---|
get_sleep | Dados de sono com estágios, eficiência, FC, VFC |
get_daily_sleep | Pontuações diárias de sono com contribuidores |
get_readiness | Pontuações de prontidão e métricas de recuperação |
get_activity | Passos, calorias, detalhamento de intensidade |
get_workouts | Sessões de treino com tipo e intensidade |
get_sessions | Sessões de meditação e relaxamento |
get_heart_rate | Leituras de FC ao longo do dia |
get_stress | Níveis de estresse e tempo de recuperação |
get_spo2 | Oxigênio no sangue e distúrbios respiratórios |
get_tags | Tags e notas criadas pelo usuário |
Análise Inteligente
| Ferramenta | Descrição |
|---|---|
detect_anomalies | Encontre leituras incomuns usando detecção de outliers |
analyze_sleep_quality | Análise de sono com tendências, padrões, dívida de sono |
correlate_metrics | Encontre correlações entre métricas de saúde |
compare_periods | Compare esta semana vs. semana passada |
compare_conditions | Compare métricas com/sem uma tag |
best_sleep_conditions | O que prevê seu bom vs. mau sono |
analyze_hrv_trend | Tendência de VFC com médias móveis |
Recursos
| Recurso | Descrição |
|---|---|
oura://today | Resumo de saúde de hoje |
oura://weekly-summary | Últimos 7 dias com médias |
oura://baseline | Suas médias de 30 dias e faixas normais |
oura://monthly-insights | Análise de 30 dias com tendências e anomalias |
oura://tag-summary | Suas tags e frequência de uso |
Prompts
| Prompt | Descrição |
|---|---|
weekly-review | Revisão semanal abrangente de saúde |
sleep-optimization | Identifique o que leva ao seu melhor sono |
recovery-check | Você deve treinar pesado ou descansar hoje? |
compare-weeks | Comparação desta semana vs. semana passada |
tag-analysis | Como uma tag específica afeta sua saúde |
Implantação Remota (Railway)
Implante o servidor MCP para acesso remoto. O servidor faz proxy do OAuth através da Oura, então os usuários autenticam diretamente com sua conta Oura — sem necessidade de PAT.
1. Crie um Aplicativo OAuth Oura
- Acesse Aplicações OAuth Oura
- Crie um novo aplicativo
- Defina a URI de Redirecionamento para:
https://your-app.railway.app/oauth/callback - Anote o Client ID e o Client Secret
2. Implante
# Install Railway CLI
npm install -g @railway/cli
# Login, init, and deploy
railway login
railway init
railway up
3. Defina as Variáveis de Ambiente
No painel do Railway, adicione:
| Variável | Descrição |
|---|---|
OURA_CLIENT_ID | Do seu aplicativo OAuth Oura |
OURA_CLIENT_SECRET | Do seu aplicativo OAuth Oura |
NODE_ENV | production |
MCP_SECRET | (Opcional) Token bearer estático para Claude Desktop (openssl rand -base64 32) |
OURA_ACCESS_TOKEN | (Opcional) Fallback de PAT se não usar OAuth (MCP_SECRET obrigatório) |
O Railway define automaticamente PORT e RAILWAY_PUBLIC_DOMAIN.
4. Conecte-se pelo Claude.ai
Use o conector no Claude.ai:
- Vá em Configurações > Conectores MCP > Adicionar
- Insira a URL do seu servidor:
https://your-app.railway.app(sem/mcp) - Deixe o OAuth Client ID e Secret vazios (o registro dinâmico cuida disso)
- Você será redirecionado para a Oura para autorizar o acesso aos seus dados
5. Conecte-se pelo Claude Desktop
Para Claude Desktop, use MCP_SECRET + OURA_ACCESS_TOKEN:
{
"mcpServers": {
"oura-remote": {
"url": "https://your-app.railway.app/mcp",
"headers": {
"Authorization": "Bearer your_mcp_secret_here"
}
}
}
}
Teste Local
# With Oura OAuth (full flow)
OURA_CLIENT_ID=your_id OURA_CLIENT_SECRET=your_secret pnpm start:http
# With static secret only (requires OURA_ACCESS_TOKEN)
OURA_ACCESS_TOKEN=your_pat MCP_SECRET=test-secret pnpm start:http
# Verify health endpoint
curl http://localhost:3000/health
# Check OAuth metadata (only available when OURA_CLIENT_ID is set)
curl http://localhost:3000/.well-known/oauth-authorization-server
# Test authenticated request (with static secret)
curl -X POST http://localhost:3000/mcp \
-H "Authorization: Bearer test-secret" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{}},"id":1}'
Contribuindo
Veja CLAUDE.md para detalhes de arquitetura e diretrizes de desenvolvimento.
Licença
MIT