Oura Mcp Unofficial について
Oura Mcp Unofficial は、MCP 対応 AI エージェントから Oura Ring の準備度、睡眠、活動、HRV データにアクセスするローカル優先のサーバーです。OAuth をローカルで処理し、構造化プライバシーモードでは生データを任意にしています。
主な機能
- 01毎日の準備度・睡眠・活動サマリー
- 02HRV、心拍数、SpO2、ワークアウトの照会
- 03OAuth をローカル処理し、トークンを端末内に保持
- 04デモデータ、プロンプト、リソースの提供
- 05stdio とステートレス HTTP に対応
活用シーン
- 01毎日の準備度と睡眠の確認
- 02睡眠と活動の週次傾向の比較
- 03アカウント連携前のサンプルデータ確認
MCP 対応
MCP 対応クライアントに Oura データのツール、プロンプト、リソースを提供します。標準は stdio で、ループバック限定のステートレス Streamable HTTP も利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
27掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| response_format | enum | いいえ | markdown | json |
詳細
Oura MCP
Oura アプリからコピー&ペーストすることなく、Oura の準備状況、睡眠、活動、HRV を AI エージェントに提供できます。
ローカルファーストの MCP サーバー — トークンがマシンの外に出ることはありません。
⚡ Delx Wellness for Hermesを使ったワンコマンドインストール:
npx -y delx-wellness-hermes setup— 専用の Hermes プロファイルで、このコネクターとほかの8つのコネクターを事前設定します。Claude Desktop/Cursor/ChatGPT Desktop に単体で接続することもできます — 下記のインストールセクションをご覧ください。
HTTP(v2 ステートレス)
デフォルトは stdio です。オプションで Streamable HTTP を使用できます — セッション ID なし、JSON レスポンス、ループバックのみ:
npx -y oura-mcp-unofficial --http
# GET http://127.0.0.1:3000/health
# POST http://127.0.0.1:3000/mcp (sessionless)
環境変数:OURA_MCP_HOST、OURA_MCP_PORT、OURA_MCP_TRANSPORT=http。
AI エージェントを、Oura Ring の準備状況、睡眠、活動、HRV データに接続するローカルファーストの MCP サーバーです。
非公式プロジェクトです。 Ōura Health Oy とは提携、承認、支援のいずれも受けていません。Oura はそれぞれの所有者の商標です。ご自身の Oura アカウントでのみ、Oura Cloud API の規約に従ってご利用ください。
David Mosiahが、準備状況、睡眠、回復について考えるために Claude、Cursor、Hermes、OpenClaw、その他の MCP 対応エージェントを利用している方々のために作成しました — Oura アプリから数値をコピー&ペーストする必要はありません。
ローカルファーストのウェルネス MCP コネクターのレジストリであるDelx Wellnessの一部です。
このコネクターがエージェントのワークフローに役立つ場合は、ぜひリポジトリにスターを付けてください。スターが増えると、ほかの AI 開発者がこのプロジェクトを見つけやすくなり、Delx がローカルファーストのウェルネス基盤を提供し続ける助けになります。
これが作られた理由
Oura Ring は、準備状況スコア、睡眠ステージ、HRV、日々の活動、SpO2、体温の傾向など、非常に洗練された個人の健康シグナルを生成します。しかし、データはスコープごとの認可が必要な OAuth API の背後にあり、複数のエンドポイント(毎日の準備状況、詳細な睡眠期間、心拍ストリームなど)に分散しています。
このパッケージは OAuth の認証フローをローカルで処理し、エンドポイント間のレスポンスを正規化して、Model Context Protocol を通じて Oura を提供します。トークンがマシンの外に出ることはありません。プライバシーモードのデフォルト設定では、生のペイロードはオプトインの場合にのみ利用できます。
60 秒でセットアップ
リダイレクト URI http://127.0.0.1:3000/callback を設定した Oura アプリ(こちらで作成)が必要です。
npx -y oura-mcp-unofficial setup # interactive: paste client id + secret
npx -y oura-mcp-unofficial auth # opens browser, captures the OAuth code
npx -y oura-mcp-unofficial doctor # verifies you're ready
推奨スコープ:
daily heartrate personal workout spo2
次の内容を MCP クライアントの設定に追加します。
{
"mcpServers": {
"oura": {
"command": "npx",
"args": ["-y", "oura-mcp-unofficial"]
}
}
}
Claude Desktop の場合は、setup --client claude を実行すると、設定用のスニペットが自動で書き込まれます。
クイックスタート:接続前にデータを確認
まだ Oura アカウントをお持ちでない場合は、oura_demo を呼び出して、レディネス、睡眠、日次サマリーツールの現実的なサンプルペイロードを取得できます。これにより、OAuth の設定を行う前に、エージェントがデータの仕様を学習できます。すべての値は合成データで、is_demo: true とタグ付けされています。
Call oura_demo and show me what the readiness and sleep data looks like.
oura_demo の実際の出力(response_format=json、日付は今日からの相対値です):
{
"ok": true,
"is_demo": true,
"sample": {
"oura_daily_summary": {
"date": "2026-05-29",
"readiness": { "score": 78, "temperature_deviation": -0.1, "hrv_balance": 84 },
"sleep": { "score": 82, "efficiency": 89, "duration_min": 451, "deep_min": 92, "rem_min": 108 },
"activity": { "score": 86, "steps": 9420, "active_calories": 412, "target_calories": 500 },
"spo2": { "average": 96.8 }
},
"oura_wellness_context": {
"window": "last_24h",
"readiness_score": 78,
"readiness_band": "good",
"sleep_score": 82,
"sleep_efficiency": 89,
"hrv_balance": 84,
"recommendation": "Solid readiness and efficient sleep — green light for moderate-to-high intensity. A protein-forward breakfast keeps HRV trending up."
},
"oura_list_daily_readiness": {
"count": 3,
"records": [
{ "day": "2026-05-29", "score": 78, "contributors": { "hrv_balance": 84, "resting_heart_rate": 71, "sleep_balance": 76 } },
{ "day": "2026-05-28", "score": 74, "contributors": { "hrv_balance": 79, "resting_heart_rate": 73, "sleep_balance": 72 } },
{ "day": "2026-05-27", "score": 69, "contributors": { "hrv_balance": 68, "resting_heart_rate": 80, "sleep_balance": 65 } }
]
}
},
"notes": [
"All sample data is synthetic; tagged with is_demo=true.",
"Real calls return live data from the Oura Cloud v2 API after OAuth setup."
]
}
自分のリングを接続する準備ができたら、oura_quickstart を呼び出して、利用状況に合わせた 3 ステップのセットアップガイドを確認し、60 秒でセットアップに従ってください。
エージェントで試す
最初に尋ねる 3 つの質問:
Use oura_connection_status to check setup, then run oura_daily_summary.
Give me a 5-line operating brief for today.
Call oura_weekly_summary with response_format=json. Identify my biggest
readiness/sleep bottleneck and give me a next-week plan.
Use the oura_daily_checkin prompt, focus=sleep.
Don't claim Oura can prove anything it can't.
データの利用可能状況
このパッケージでは、公式の Oura Cloud API v2 を使用します。この README で raw と記載している場合、対応エンドポイントから取得した Oura の JSON を意味します。生のデバイスセンサーストリームを指すものではありません。
| データ | 利用可能 | 備考 |
|---|---|---|
| 日次レディネススコアと要因 | ✓ | daily スコープが必要です |
| 日次睡眠スコアと睡眠期間 | ✓ | daily および/または sleep スコープが必要です |
| 睡眠ステージとタイミング | ✓ | Oura がスコア付きの睡眠データを返す場合 |
| 日次活動(歩数、カロリー、MET) | ✓ | daily スコープが必要です |
| 心拍数の時系列データ | ✓ | リング、メンバーシップ、スコープで利用可能な場合 |
| HRV(夜間、日次サマリー経由) | ✓ | レディネスの要因を通じて表示されます |
| SpO2(睡眠中の日次平均) | ✓ | spo2 スコープが必要です。対応デバイスのみ |
| ワークアウト、セッション、タグ | ✓ | workout/session/tag スコープが必要です |
| 個人情報(生年月日、性別、身長、体重) | ✓ | personal スコープが必要です |
| 継続的なセンサーテレメトリー | — | Oura Cloud API では公開されていません |
ツール
まずはこちらから:
oura_demo— 現実的な合成レディネス/睡眠/活動ペイロード(アカウント不要。クイックスタートを参照)oura_quickstart— 現在の状況に合わせて調整される、3 ステップのセットアップガイドoura_connection_status— Oura を呼び出す前にローカルのセットアップ状況を確認oura_data_inventory— Oura API を呼び出さずに、対応するデータ領域、スコープ、プライバシーモード、推奨される最初の呼び出しを一覧表示します。oura_daily_summary— 今日のレディネス、睡眠、活動、SpO2 の概要oura_weekly_summary— スコアカード、前週との比較、翌週の計画
認証と診断
oura_capabilities、oura_agent_manifest、oura_privacy_audit、oura_cache_statusoura_get_auth_url、oura_exchange_code、oura_revoke_access
プロフィール
oura_get_personal_info
日次コレクション(next_token によるカーソルページネーション、after/before フィルター、プライバシーモードの上書きに対応)
oura_list_daily_readiness、oura_list_daily_sleep、oura_list_daily_activity、oura_list_daily_spo2- オフセット付き ISO 入力を Oura の日付のみの
start_dateおよびend_dateパラメーターに割り当てる際は、入力されたカレンダー日付が維持されます。不正な日付はネットワークリクエストの前にエラーになります。 - Oura v2 には整数のページインデックスがありません。前回のレスポンスに含まれる
next_tokenを使って再開してください。truncatedが true の場合は、limitを増やすかall_pagesを設定してください。docs/pagination.mdを参照してください。
詳細コレクション
oura_list_sleep、oura_list_workouts、oura_list_heartrate、oura_list_sessions、oura_list_tags
プロンプト
oura_daily_checkin— 実用的な毎日の健康状態とレディネスのチェックインoura_weekly_review— 活動、睡眠、心臓の状況に関する傾向を確認oura_heart_context_investigation— 心拍数の記録を調査(プライバシーに配慮)
リソース
oura://capabilities、oura://agent-manifestoura://personal-infooura://latest/readiness— 最新の readiness レコードを1件返します。「最新の readiness」を確認する場合に使用してください。Oura はコレクションを古い順に返し、並べ替えパラメーターがないため、limit: 1を指定してoura_list_daily_readinessを呼び出すと、期間内の最新ではなく最も古いレコードが返されます。oura://summary/daily、oura://summary/weekly
プライバシーとセキュリティ
- OAuth トークンは
~/.oura-mcp/tokens.jsonに0600の権限で保存され、ツールから返されることはありません。 - サーバーはアクセストークンやリフレッシュトークンを出力しません。
OURA_PRIVACY_MODEのデフォルトはstructuredです。生の Oura JSON を利用するには、rawモードまたは呼び出しごとのオーバーライドを指定します。- 構造化モードでは、GPS データと秘密情報を含む値を除き、Oura 側で後から追加されたフィールドを含む上流の生理学的フィールドを保持します。
- 個人情報(生年月日、性別、身長、体重)にアクセスできるのは、ユーザーが
personalスコープを許可した場合のみです。 - MCP クライアントにアクセストークンやリフレッシュトークンが渡されることはありません。
- これは医療アドバイスではありません。サーバーは、診断や治療ではなく、個人向け AI ワークフローのために、ユーザーが許可したデータを提供します。
設定
setup を実行すると、これらの設定の大半が ~/.oura-mcp/config.json(0600)に書き込まれます。環境変数による手動のオーバーライドにも対応しています。
OURA_CLIENT_ID=…
OURA_CLIENT_SECRET=…
OURA_REDIRECT_URI=http://127.0.0.1:3000/callback
# Optional
OURA_SCOPES="daily heartrate personal workout spo2"
OURA_PRIVACY_MODE=structured # summary | structured | raw
OURA_CACHE=sqlite # optional read-through cache
OURA_TOKEN_PATH=~/.oura-mcp/tokens.json
OURA_CACHE_PATH=~/.oura-mcp/cache.sqlite
Hermes/リモート設定
npx -y oura-mcp-unofficial setup --client hermes --no-auth
npx -y oura-mcp-unofficial auth # run locally if browser auth is needed
npx -y oura-mcp-unofficial doctor --client hermes
hermes mcp test oura
Hermes の設定を変更した後は、/reload-mcp または hermes mcp test oura を使用してください。通常のデータアクセスではゲートウェイを再起動する必要はありません。
Hermes とは別のマシンでブラウザー OAuth を行う必要がある場合は、ローカルで auth を実行し、~/.oura-mcp/tokens.json を chmod 600 を設定したうえでサーバーにコピーしてください。
要件
- Node.js 20+
- https://cloud.ouraring.com/oauth/applications に登録した Oura アプリと、リダイレクト URI
http://127.0.0.1:3000/callback
開発
git clone https://github.com/davidmosiah/oura-mcp.git
cd oura-mcp
npm install
npm test
npm run build
MCP Inspector でテストします。
npx @modelcontextprotocol/inspector node dist/index.js
リンク
- npm:https://www.npmjs.com/package/oura-mcp-unofficial
- ドキュメントサイト:https://wellness.delx.ai/connectors/oura
- 旧ドキュメント:https://ouramcp.vercel.app/
- GitHub:https://github.com/davidmosiah/oura-mcp
- Delx Wellness レジストリ:https://github.com/davidmosiah/delx-wellness
- コネクター品質基準:https://github.com/davidmosiah/delx-wellness/blob/main/docs/connector-quality-standard.md
- Oura Cloud API ドキュメント:https://cloud.ouraring.com/docs/authentication
関連項目
Delx Wellness のコネクターライブラリ全体:
| プロバイダー | パッケージ | リポジトリ |
|---|---|---|
| WHOOP | whoop-mcp-unofficial | whoop-mcp |
| Oura | oura-mcp-unofficial | oura-mcp |
| Garmin | garmin-mcp-unofficial | garminmcp |
| Strava | strava-mcp-unofficial | strava-mcp |
| Fitbit | fitbit-mcp-unofficial | fitbitmcp |
| Withings | withings-mcp-unofficial | withingsmcp |
| Apple Health | apple-health-mcp-unofficial | apple-health-mcp |
| Polar | polar-mcp-unofficial | polarmcp |
| Nourish(栄養) | wellness-nourish | wellness-nourish |
Hermes のワンコマンドセットアップ — 上記のすべてのコネクターに加え、ウェルネススキルとオンボーディングを事前設定します:delx-wellness-hermes。
📧 お問い合わせとサポート
- 📨 [email protected] — 一般的な質問、統合のサポート、パートナーシップ
- 🐛 バグ報告/機能リクエスト — GitHub Issues
- 🐦 最新情報 — X の @delx369
- 🌐 サイト — wellness.delx.ai
ライセンス
MIT — LICENSE を参照してください。
免責事項
このソフトウェアは現状有姿で提供されます。医療機器ではなく、医療上のアドバイスを提供するものではありません。また、診断や治療に使用しないでください。医療上の懸念については、必ず資格を持つ専門家にご相談ください。
スキルまたは MCP
同じパッケージに、2 つの利用方法があります。MCP は stdio/HTTP 経由でツールを登録します。スキルを使えば、クライアントに MCP がない場合でも、CLI 経由で同じツールを実行できます。
npx -y oura-mcp-unofficial call oura_connection_status --json '{}'
skill/SKILL.md をエージェントのスキルディレクトリにコピーしてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。