mcpField
H
health-data

health-data

github.com/glebisデータ・データベース401394 回インストール1 日前に更新
リポジトリ

health-data について

health-data は、ローカルの SQLite データベースにある Apple Health データを検索・分析するスキルです。定型レポートに加え、SQL による独自の分析にも対応します。

主な機能

  1. 01日次・週次の健康サマリー
  2. 02睡眠、バイタル、活動、ワークアウトの検索
  3. 03Markdown、JSON、FHIR R4、ASCII 形式で出力
  4. 04SQL によるカスタム分析

活用シーン

  1. 01日々の歩数、カロリー、心拍数の確認
  2. 02週ごとの活動量と安静時心拍数の比較
  3. 03睡眠ステージと夜間の睡眠時間の分析
  4. 04健康測定データの FHIR R4 形式での出力

インストール

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

$npx skills add https://github.com/glebis/claude-skills --skill health-data

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

同梱ファイル

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

.claude-plugin/
plugin.json
references/
fhir_mappings.md
schema.md
scripts/
health_query.py

詳細

Apple Health データクエリスキル

43 種類の健康指標にわたる 630 万件以上のレコードを含む、ローカルの SQLite データベースから健康データをクエリして分析します。

データベースの場所

~/data/health.db

クエリ方法

1. Python スクリプト(一般的なクエリにおすすめ)

scripts/health_query.py を使用すると、あらかじめ用意されたクエリを自動的にフォーマットできます。

# Daily summary
python ~/.claude/skills/health-data/scripts/health_query.py --format markdown daily --date 2025-11-29

# Weekly trends
python ~/.claude/skills/health-data/scripts/health_query.py --format json weekly --weeks 4

# Sleep analysis
python ~/.claude/skills/health-data/scripts/health_query.py --format fhir sleep --days 7

# Latest vitals
python ~/.claude/skills/health-data/scripts/health_query.py vitals

# Activity rings
python ~/.claude/skills/health-data/scripts/health_query.py --format json activity --days 30

# Workout history
python ~/.claude/skills/health-data/scripts/health_query.py workouts --days 30 --type Running

# Custom SQL
python ~/.claude/skills/health-data/scripts/health_query.py --format json query "SELECT * FROM workouts LIMIT 5"

出力形式: markdown、json、fhir、ascii

2. 直接 SQL(カスタム/アドホッククエリ向け)

柔軟にクエリするには、データベースに対して SQL を直接実行します。テーブル構造とクエリテンプレートについては、references/schema.md を参照してください。

sqlite3 ~/data/health.db "SELECT AVG(value) FROM health_records WHERE record_type LIKE '%HeartRate%' AND start_date LIKE '2025-11%'"

あらかじめ用意されたクエリ

1 日の健康サマリー

今日の主要な指標を取得します:

python ~/.claude/skills/health-data/scripts/health_query.py daily

返される項目:歩数、カロリー、心拍数(平均/最小/最大)、運動時間、距離、アクティビティリングの状況。

週ごとの傾向

週ごとのパフォーマンスを比較します:

python ~/.claude/skills/health-data/scripts/health_query.py weekly --weeks 4

返される項目:1 日あたりの平均歩数、安静時心拍数、運動時間、週ごとのワークアウト回数。

睡眠分析

睡眠パターンを分析します:

python ~/.claude/skills/health-data/scripts/health_query.py sleep --days 14

返される項目:夜間の睡眠時間、睡眠ステージ(コア、深い睡眠、REM)、平均睡眠時間。

最新のバイタルサイン

直近のバイタル測定値を取得します:

python ~/.claude/skills/health-data/scripts/health_query.py vitals

返される項目:心拍数、HRV、安静時心拍数、血中酸素濃度、呼吸数とタイムスタンプ。

アクティビティリング

リングの達成状況を追跡します:

python ~/.claude/skills/health-data/scripts/health_query.py activity --days 30

返される項目:1 日ごとのリングの値/目標、達成率、すべてのリングを達成した日数。

ワークアウト履歴

運動セッションを確認します:

python ~/.claude/skills/health-data/scripts/health_query.py workouts --days 30 --type Running

返される項目:ワークアウトの種類、時間、距離、カロリー、種類ごとのサマリー。

出力形式

Markdown(デフォルト)

読みやすい表やリストで出力します。レポートやサマリーに最適です。

JSON

プログラムで利用できる構造化データです:

{
  "date": "2025-11-29",
  "metrics": {
    "steps": 8542,
    "active_calories": 450.5,
    "heart_rate": {"avg": 72.3, "min": 52, "max": 145}
  }
}
FHIR R4

医療情報の相互運用形式です。LOINC コードを使用した Observation リソースを含む FHIR Bundle として出力します。コードの対応表については、references/fhir_mappings.md を参照してください。

ASCII

棒グラフと統計を含む、ターミナルで見やすい出力です:

============================================================
  DAILY SUMMARY - 2025-11-29
============================================================

METRICS
----------------------------------------
  steps                      2620
  active_calories           234.5
  heart_rate           avg:  67.5  min:  52  max: 108

ACTIVITY RINGS
----------------------------------------
  move       [███████░░░░░░░░░░░░░]  36.7% (238/650)
  exercise   [░░░░░░░░░░░░░░░░░░░░]   0.0% (0/35)
  stand      [████████████████████] 100.0% (10/10)

よく使われる SQL パターン

アドホッククエリには、references/schema.md にある次のパターンを使用します。

時間ごとの心拍数(概日リズムのパターン):

SELECT strftime('%H', start_date) as hour, ROUND(AVG(value), 1) as avg_hr
FROM health_records
WHERE record_type = 'HKQuantityTypeIdentifierHeartRate'
AND value BETWEEN 40 AND 200
GROUP BY hour ORDER BY hour;

今月の日ごとの歩数:

SELECT DATE(start_date) as day, SUM(value) as steps
FROM health_records
WHERE record_type = 'HKQuantityTypeIdentifierStepCount'
AND start_date >= DATE('now', 'start of month')
GROUP BY day ORDER BY day;

睡眠の質(深い睡眠+REM の時間):

SELECT DATE(start_date) as night,
       ROUND(SUM(duration_minutes)/60.0, 1) as quality_hours
FROM sleep_sessions
WHERE sleep_stage IN ('Deep', 'REM')
GROUP BY night ORDER BY night DESC LIMIT 14;

ワークアウトのサマリー:

SELECT REPLACE(workout_type, 'HKWorkoutActivityType', '') as type,
       COUNT(*) as count, ROUND(SUM(duration_minutes)) as total_min
FROM workouts
WHERE start_date >= DATE('now', '-30 days')
GROUP BY type ORDER BY count DESC;

利用可能なレコードの種類

データベースには、次のような 43 種類の健康指標が含まれています。

バイタルサイン: 心拍数、HRV、安静時心拍数、血中酸素濃度、呼吸数、血圧

アクティビティ: 歩数、距離、アクティブカロリー、基礎代謝カロリー、上った階数、運動時間、スタンド時間

モビリティ: 歩行速度、歩幅、歩行時の非対称性、階段昇降速度、歩行安定性

身体: 体重、BMI、体脂肪率

音声: 環境騒音、ヘッドフォンの音量

その他: VO2 Max、日光を浴びた時間、紫外線への曝露

データの対象範囲

  • レコード数: 630 万件以上の測定値
  • 日付範囲: 2015-10-13 から現在まで
  • ワークアウト: 1,435 セッション
  • 睡眠セッション: 40,514 レコード
  • アクティビティ日数: 1,875 日分のサマリー

リソース

scripts/
  • health_query.py - Markdown/JSON/FHIR 形式で出力するメインのクエリツール
references/
  • schema.md - データベーススキーマ、レコードの種類の対応表、SQL クエリテンプレート
  • fhir_mappings.md - LOINC コードと FHIR R4 テンプレート

トラブルシューティング

データベースが見つからない場合: ~/data/health.db が存在することを確認してください。/Users/server/apple_health_export/ からインポートスクリプトを実行します。

python import_health.py --status

指定した日付範囲にデータがない場合: 利用可能な日付範囲を確認します。

SELECT MIN(start_date), MAX(start_date) FROM health_records;

外れ値がある場合: 生理学的に妥当な範囲(例:心拍数 40~200 bpm)でフィルタリングします。

WHERE value BETWEEN 40 AND 200

コメント