mcpField
O
oura-ring-mcp

oura-ring-mcp

ローカル
github.com/mitchhankins01ヘルスケア3137 週間前に更新

oura-ring-mcp について

oura-ring-mcp は Oura Ring の睡眠、レディネス、アクティビティのデータを Claude などの AI アシスタントに接続し、生の JSON ではなく読みやすい分析結果を返します。自分の健康指標を対話で確認したい方向けで、リモートサーバーとしてデプロイすることもできます。

主な機能

  1. 01睡眠、レディネス、アクティビティ、心拍データの取得
  2. 02時間と評価を文脈付きで読みやすく表示
  3. 03異常値の検出と指標間の相関分析
  4. 04期間比較と HRV トレンド分析
  5. 05パーソナルアクセストークンまたは OAuth による認証
  6. 06Railway へのリモートデプロイ

活用シーン

  1. 01昨夜の睡眠ステージと効率を確認する
  2. 02今週と先週のレディネスとアクティビティを比較する
  3. 03飲酒などのタグが睡眠の質に与える影響を調べる

MCP 対応

本プロジェクトは MCP サーバーであり、get_sleep や analyze_hrv_trend などのツール、oura://today などのリソース、プロンプトを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"mitchhankins01-oura-ring": {
"command": "npx",
"args": [
"-y",
"oura-ring-mcp"
],
"env": {
"OURA_ACCESS_TOKEN": "<OURA_ACCESS_TOKEN>",
"OURA_CLIENT_ID": "<OURA_CLIENT_ID>",
"OURA_CLIENT_SECRET": "<OURA_CLIENT_SECRET>"
}
}
}
}
起動コマンドnpx -y oura-ring-mcp
設定が必要な環境変数
OURA_ACCESS_TOKENシークレットOura Personal Access Token (get from cloud.ouraring.com/personal-access-tokens)
OURA_CLIENT_IDOAuth Client ID (alternative to access token, from developer.ouraring.com)
OURA_CLIENT_SECRETシークレットOAuth Client Secret (required with OURA_CLIENT_ID)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmoura-ring-mcp0.1.4

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Oura MCP サーバー

npm version MCP Registry CI

Oura Ring を Claude やその他の AI アシスタントに接続する MCP サーバーです。生の JSON ではなく、睡眠・コンディション・活動に関する人間が読みやすいインサイトを取得できます。

機能

デモ
  • スマートなフォーマット - 時間は時/分単位、スコアには文脈を付与(「85 - 最適」)
  • 睡眠分析 - 睡眠ステージ、効率、HRV、生体指標
  • コンディションの追跡 - 回復スコアと寄与要因の内訳
  • 活動データ - 歩数、カロリー、強度の内訳
  • 健康指標 - 心拍数、SpO2、ストレス、心血管年齢
  • スマート分析 - 異常検知、相関、トレンド分析
  • タグ対応 - 条件あり/なしで指標を比較

出力例を見る — 睡眠、コンディション、週次サマリー、スマート分析について Claude が返す内容

クイックスタート

1. インストール
npm install -g oura-ring-mcp

または npx で直接使用できます(インストール不要):

npx oura-ring-mcp
2. Oura での認証

オプション A: パーソナルアクセストークン(より簡単)

  1. cloud.ouraring.com/personal-access-tokens にアクセスします
  2. 新しいトークンを作成します
  3. Claude Desktop の設定で OURA_ACCESS_TOKEN を設定します(以下を参照)

オプション B: OAuth CLI フロー

  1. developer.ouraring.com で OAuth アプリを作成します
    • Redirect URI を http://localhost:3000/callback に設定します
  2. 認証フローを実行します:
    export OURA_CLIENT_ID=your_client_id
    export OURA_CLIENT_SECRET=your_client_secret
    npx oura-ring-mcp auth
    
  3. 認証情報は ~/.oura-mcp/credentials.json に保存されます
3. Claude Desktop の設定

claude_desktop_config.json に追加します:

パーソナルアクセストークンを使用する場合:

{
  "mcpServers": {
    "oura": {
      "command": "npx",
      "args": ["oura-ring-mcp"],
      "env": {
        "OURA_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

OAuth を使用する場合(npx oura-ring-mcp auth の実行後):

{
  "mcpServers": {
    "oura": {
      "command": "npx",
      "args": ["oura-ring-mcp"]
    }
  }
}

サーバーは ~/.oura-mcp/credentials.json から認証情報を読み取ります。トークンの自動更新を有効にするには、OAuth 認証情報を追加します:

{
  "mcpServers": {
    "oura": {
      "command": "npx",
      "args": ["oura-ring-mcp"],
      "env": {
        "OURA_CLIENT_ID": "your_client_id",
        "OURA_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Claude Desktop を再起動します。Node >=18 が必要です。

どのような質問ができますか?

毎日のチェックイン:

  • 「昨夜はよく眠れましたか?」
  • 「今日ワークアウトできるくらい回復していますか?」
  • 「今の自分の体は何を伝えていますか?」

パターンとトレンド:

  • 「週末のほうがよく眠れますか?」
  • 「最適な睡眠のために何時に就寝すればよいですか?」
  • 「私の HRV は改善していますか、それとも低下していますか?」

相関とインサイト:

  • 「アルコールは睡眠の質に影響しますか?」
  • 「何が最もよく眠れた夜を予測しますか?」
  • 「運動のタイミングは回復にどう影響しますか?」

比較:

  • 「今週の睡眠と先週の睡眠を比較してください」
  • 「瞑想した場合としない場合で睡眠はどう変わりますか?」
  • 「マグネシウムを摂り始めて何が変わりましたか?」

異常:

  • 「データに異常な値はありますか?」
  • 「昨日はなぜコンディションがそんなに低かったのですか?」
  • 「指標が普段とずれていた日を見つけてください」

利用可能なツール

データ取得
ツール説明
get_sleepステージ、効率、心拍数、HRV を含む睡眠データ
get_daily_sleep寄与要因を含む日次の睡眠スコア
get_readinessコンディションスコアと回復指標
get_activity歩数、カロリー、強度の内訳
get_workouts種類と強度を含むワークアウトセッション
get_sessions瞑想およびリラクゼーションのセッション
get_heart_rate一日を通した心拍数の測定値
get_stressストレスレベルと回復時間
get_spo2血中酸素と呼吸障害
get_tagsユーザーが作成したタグとメモ
スマート分析
ツール説明
detect_anomalies外れ値検出を使用して異常な測定値を検出します
analyze_sleep_qualityトレンド、パターン、睡眠負債を考慮した睡眠分析
correlate_metrics健康指標間の相関関係を見つけます
compare_periods今週と先週を比較します
compare_conditionsタグの有無による指標を比較します
best_sleep_conditions良い睡眠と悪い睡眠を予測する要因は何か
analyze_hrv_trend移動平均を用いた HRV トレンド

リソース

リソース説明
oura://today今日の健康サマリー
oura://weekly-summary平均値を含む直近7日間
oura://baseline30日間の平均値と正常範囲
oura://monthly-insightsトレンドと異常を含む30日間の分析
oura://tag-summaryタグと使用頻度

プロンプト

プロンプト説明
weekly-review包括的な週次の健康レビュー
sleep-optimization最高の睡眠につながる要因を特定します
recovery-check今日は高強度のトレーニングをすべきか、休むべきか?
compare-weeks今週と先週の比較
tag-analysis特定のタグが健康にどのように影響するか

リモートデプロイ (Railway)

リモートアクセス用に MCP サーバーをデプロイします。サーバーは Oura を介して OAuth をプロキシするため、ユーザーは自身の Oura アカウントで直接認証します — PAT は不要です。

1. Oura OAuth アプリを作成する
  1. Oura OAuth Applications にアクセスします
  2. 新しいアプリケーションを作成します
  3. Redirect URI を次のように設定します: https://your-app.railway.app/oauth/callback
  4. Client ID と Client Secret を控えます
2. デプロイ
# Install Railway CLI
npm install -g @railway/cli

# Login, init, and deploy
railway login
railway init
railway up
3. 環境変数を設定する

Railway ダッシュボードで以下を追加します:

変数説明
OURA_CLIENT_IDあなたの Oura OAuth アプリから取得
OURA_CLIENT_SECRETあなたの Oura OAuth アプリから取得
NODE_ENVproduction
MCP_SECRET(任意) Claude Desktop 用の静的ベアラートークン (openssl rand -base64 32)
OURA_ACCESS_TOKEN(任意) OAuth を使用しない場合の PAT フォールバック (MCP_SECRET が必要)

Railway は PORT と RAILWAY_PUBLIC_DOMAIN を自動的に設定します。

4. Claude.ai から接続する

Claude.ai の connector を使用します:

  1. Settings > MCP Connectors > Add に移動します
  2. サーバー URL を入力します: https://your-app.railway.app (/mcp は除く)
  3. OAuth Client ID と Secret は空のままにします (動的登録が処理します)
  4. データへのアクセスを承認するため Oura にリダイレクトされます
5. Claude Desktop から接続する

Claude Desktop では、MCP_SECRET + OURA_ACCESS_TOKEN を使用します:

{
  "mcpServers": {
    "oura-remote": {
      "url": "https://your-app.railway.app/mcp",
      "headers": {
        "Authorization": "Bearer your_mcp_secret_here"
      }
    }
  }
}
ローカルテスト
# 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}'

コントリビューション

アーキテクチャの詳細と開発ガイドラインについては CLAUDE.md を参照してください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。