mcpField
G
garmin-health-analysis

garmin-health-analysis

github.com/eversonlデータ・データベース2068 回インストール39 週間前に更新
リポジトリ

garmin-health-analysis について

garmin-health-analysisは、Garmin Connectの健康指標を取得し、傾向を調べ、インタラクティブなHTMLチャートを作成するClawdbotスキルです。READMEにはClaude Desktop向けの別個のMCPサーバー設定も記載されています。

主な機能

  1. 01睡眠、HRV、アクティビティなどのデータ取得
  2. 02健康指標と傾向の分析
  3. 03インタラクティブなHTMLチャート作成
  4. 04複数の認証情報設定方法

活用シーン

  1. 011週間のBody Batteryによる回復状況の確認
  2. 02HRVや安静時心拍数の変化の追跡
  3. 03月間健康データのチャート作成

MCP 対応

READMEにはClaude Desktopで使う別個のMCPサーバー設定が記載されており、Clawdbotスキルの設定とは独立して利用できます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/eversonl/clawdbot-garmin-health-analysis --skill garmin-health-analysis

インストール後、Claude Code で/garmin-health-analysisを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
CHANGELOG.md
config.example.json
README.md
install.sh
references/
extended_capabilities.md
health_analysis.md
api.md
mcp_setup.md
scripts/
garmin_chart.py
garmin_data_extended.py
garmin_activity_files.py
garmin_auth.py
garmin_query.py
garmin_data.py

詳細

Garmin Health Analysis

Garmin Connect から健康指標を取得し、インタラクティブな HTML チャートを生成します。

2 つのインストール方法

このスキルでは、2 種類のセットアップに対応しています。

  1. Clawdbot Skill(このガイド)- Clawdbot で自動化と先回りした健康モニタリングを行います
  2. MCP サーバー(MCP のセットアップガイドを参照)- 標準の Claude Desktop で MCP サーバーとして使用します

用途に合った方法を選択してください。両方を同時に使うこともできます。


Clawdbot Skill のセットアップ(初回のみ)

1. 依存関係をインストールする
pip3 install garminconnect
2. 認証情報を設定する

Garmin Connect の認証情報を提供する方法は 3 つあります。

オプション A:Clawdbot の設定(推奨 - UI で設定可能)

認証情報を ~/.clawdbot/clawdbot.json に追加します。

{
  "skills": {
    "entries": {
      "garmin-health-analysis": {
        "enabled": true,
        "env": {
          "GARMIN_EMAIL": "[email protected]",
          "GARMIN_PASSWORD": "your-password"
        }
      }
    }
  }
}

ヒント:Skills の設定パネルにある Clawdbot UI から設定することもできます。

オプション B:ローカル設定ファイル

スキルディレクトリに設定ファイルを作成します。

cd ~/.clawdbot/skills/garmin-health-analysis
# or: cd <workspace>/skills/garmin-health-analysis
cp config.example.json config.json
# Edit config.json and add your email and password

config.json:

{
  "email": "[email protected]",
  "password": "your-password"
}

注:認証情報を安全に保つため、config.json は gitignore の対象です。

オプション C:コマンドライン

認証時に認証情報を直接渡します。

python3 scripts/garmin_auth.py login \
  --email [email protected] \
  --password YOUR_PASSWORD
3. 認証する

Garmin Connect にログインし、セッショントークンを保存します。

python3 scripts/garmin_auth.py login

認証情報は、次の優先順位で使用されます。

  1. コマンドライン引数(--email、--password)
  2. ローカル設定ファイル(config.json)
  3. 環境変数(GARMIN_EMAIL、GARMIN_PASSWORD)
  4. Clawdbot の設定(skills.entries.garmin-health-analysis.env)

セッショントークンは ~/.clawdbot/garmin-tokens.json に保存され、自動的に更新されます。

認証状態を確認します。

python3 scripts/garmin_auth.py status

データの取得

scripts/garmin_data.py を使って JSON データを取得します。

# Sleep (last 7 days default)
python3 scripts/garmin_data.py sleep --days 14

# Body Battery (Garmin's recovery metric)
python3 scripts/garmin_data.py body_battery --days 30

# HRV data
python3 scripts/garmin_data.py hrv --days 30

# Heart rate (resting, max, min)
python3 scripts/garmin_data.py heart_rate --days 7

# Activities/workouts
python3 scripts/garmin_data.py activities --days 30

# Stress levels
python3 scripts/garmin_data.py stress --days 7

# Combined summary with averages
python3 scripts/garmin_data.py summary --days 7

# Custom date range
python3 scripts/garmin_data.py sleep --start 2026-01-01 --end 2026-01-15

# User profile
python3 scripts/garmin_data.py profile

出力は stdout に JSON 形式で表示されます。内容を解析してユーザーの質問に答えてください。

チャートの生成

scripts/garmin_chart.py を使って、インタラクティブな HTML ビジュアライゼーションを生成します。

# Sleep analysis (hours + scores)
python3 scripts/garmin_chart.py sleep --days 30

# Body Battery recovery chart (color-coded)
python3 scripts/garmin_chart.py body_battery --days 30

# HRV & resting heart rate trends
python3 scripts/garmin_chart.py hrv --days 90

# Activities summary (by type, calories)
python3 scripts/garmin_chart.py activities --days 30

# Full dashboard (all 4 charts)
python3 scripts/garmin_chart.py dashboard --days 30

# Save to specific file
python3 scripts/garmin_chart.py dashboard --days 90 --output ~/Desktop/garmin-health.html

チャートはデフォルトのブラウザーで自動的に開きます。Chart.js を使用し、モダンなグラデーションデザイン、統計カード、インタラクティブなツールチップを備えています。

質問への回答

ユーザーの質問アクション
「昨夜はよく眠れましたか?」garmin_data.py summary --days 1 を実行し、睡眠時間とスコアを報告します
「今週の回復状態はどうですか?」garmin_data.py body_battery --days 7 を実行し、平均値と傾向を報告します
「先月の健康状態を見せて」garmin_chart.py dashboard --days 30 を実行します
「HRV は改善していますか?」garmin_data.py hrv --days 30 を実行し、傾向を分析します
「今週はどんなワークアウトをしましたか?」garmin_data.py activities --days 7 を実行し、詳細とともにアクティビティを一覧表示します
「安静時心拍数はどうですか?」garmin_data.py heart_rate --days 7 を実行し、平均値と傾向を報告します

主な指標

Body Battery(0~100)

Garmin 独自の回復指標です。HRV、ストレス、睡眠、アクティビティを基に算出されます。

  • 高(75~100):十分に回復しており、高強度の運動に適しています
  • 中(50~74):エネルギーは中程度で、通常のアクティビティに適しています
  • 低(25~49):エネルギーが限られており、回復が必要です
  • 非常に低(0~24):消耗しているため、休息を優先してください
睡眠スコア(0~100)

睡眠時間、睡眠段階、中断状況を基にした総合的な睡眠の質です。

  • 優秀(90~100):最適な回復効果のある睡眠
  • 良好(80~89):軽微な問題はあるものの、質の高い睡眠
  • 普通(60~79):十分ですが、改善の余地があります
  • 不良(0~59):睡眠に大きな不足があります
HRV(心拍変動)

ミリ秒単位で測定され、一般的に高いほど良好です。

  • 神経系のバランスと回復能力を示します
  • 時間の経過に伴う傾向を追跡します(上昇していれば回復状態の改善を示します)
  • 睡眠、ストレス、トレーニング負荷、体調不良の影響を受けます
  • 正常範囲は個人によって異なります(20~200+ ms)
安静時心拍数(bpm)

一般的に、低いほど心肺機能が優れていることを示します。

  • アスリート:40~60 bpm
  • 体力のある成人:60~70 bpm
  • 平均的な成人:70~80 bpm
  • 急な上昇は、ストレス、体調不良、またはオーバートレーニングを示している可能性があります
ストレスレベル

1 日を通した HRV 分析に基づきます。

  • 低ストレス:休息と回復の時間帯
  • 中程度のストレス:通常の日常活動
  • 高ストレス:身体活動や精神的なプレッシャー

健康分析

ユーザーが分析結果を求めたり、傾向を理解したい場合は、references/health_analysis.md を使用して以下を確認してください。

  • すべての指標について、科学的根拠に基づいて解釈する
  • 年齢やフィットネスレベル別の標準範囲
  • パターンの検出(週ごとの傾向、回復サイクル、トレーニング負荷のバランス)
  • データに基づく実践的な推奨事項
  • 休息や医療機関への相談を検討すべき警告サイン
分析ワークフロー
  1. データを取得します:python3 scripts/garmin_data.py summary --days N
  2. 解釈の枠組みとして references/health_analysis.md を読みます
  3. 分析の枠組みを適用します:状況 → 傾向 → パターン → 分析結果 → 推奨事項
  4. 情報提供を目的としたものであり、医療上の助言ではないことを必ず明記します

トラブルシューティング

認証の問題
  • 「Invalid credentials」:メールアドレスとパスワードを確認し、Garmin Connect のウェブサイトへのログインをお試しください
  • 「Tokens expired」:再度ログインします:python3 scripts/garmin_auth.py login ...
  • 「Too many requests」:Garmin にはレート制限があります。数分待ってからもう一度お試しください
データが見つからない場合
  • 一部の指標には特定の Garmin デバイスが必要です(Body Battery には HRV 対応デバイスが必要です)
  • デバイスを装着していなかった場合、過去のデータに欠損が生じることがあります
  • 新しいアカウントでは、利用できる履歴が限られている場合があります
ライブラリの問題
  • garminconnect のインポートに失敗する場合:pip3 install --upgrade garminconnect
  • Garmin は API を変更することがあります。リクエストが失敗する場合は、ライブラリを更新してください

プライバシーに関する注意

  • 認証情報はローカルの ~/.clawdbot/garmin-tokens.json に保存されます
  • セッショントークンは自動的に更新されます
  • Garmin の公式サーバー以外にデータが送信されることはありません
  • トークンファイルを削除すれば、いつでもアクセスを取り消せます

比較:Garmin と Whoop

機能GarminWhoop
回復指標Body Battery(0~100)Recovery Score(0~100%)
HRV トラッキングはい(夜間の平均値)はい(詳細)
睡眠ステージライト、ディープ、REM、覚醒ライト、SWS、REM、覚醒
アクティビティトラッキングGPS 内蔵、多数のスポーツモードStrain スコア(0~21)
ストレス1 日を通したストレスレベル直接のトラッキングなし
API非公式(garminconnect)公式 OAuth
デバイスの種類ウォッチ、フィットネストラッカーウェアラブルバンドのみ

参考資料

  • references/api.md — Garmin Connect API の詳細(非公式)
  • references/health_analysis.md — 科学的根拠に基づく健康データの解釈
  • garminconnect ライブラリ — Python API ラッパー
  • Garmin Connect — 公式ウェブインターフェース

バージョン情報

  • 作成日:2026-01-25
  • 作成者:EversonL & Claude
  • バージョン:1.2.0
  • 依存関係:garminconnect、fitparse、gpxpy(Python ライブラリ)
  • ライセンス:MIT

コメント