Apple Watch と iPhone でひたすら健康データを積み上げてきました。歩数、睡眠、HRV(心拍変動)、安静時心拍、VO2Max……。記録はあるのに、アプリで眺めて「ふーん」で終わる毎日でした。
この状況を変えたくて、Apple ヘルスケアの export.xml から SQLite DB を構築し、Claude から直接クエリできる仕組みを整えました。今回はその最新構成の話です。
前回
ツールはこちら
SQLiteのDBにするツール github.com
SQLiteをMCPでClaudeに公開するツール github.com
仕組み:chiebukuro-mcp 経由でデータと会話する
export.xml (数GB) ↓ import_xml.rb(SAXパース、初回のみ) raw_records(全件) ↓ build_summary.rb daily_summary(日次集計) ↑ chiebukuro-mcp(chiebukuro_query_health ツール) ↑ Claude Code / Claude Desktop
ポイントは chiebukuro-mcp というところです。以前は自前で MCP サーバーを立てていましたが、今は廃止して chiebukuro-mcp に統合しました。
chiebukuro-mcp は「知恵袋」として、いろんな情報をいれたいくつかのSQLiteのDBをまとめて Claude に提供する個人用 MCP サーバーです。この機能により、 chiebukuro_query_health というツールが登録されており、Claude がここに SELECT を投げると即座に結果が返ってきます。
自前 MCP サーバーを別途起動・管理する必要がなくなり、Claude Code を開けばそのまま健康データと話せる状態になっています。
データの構造
DB に持っているのはこういう指標です:
| 指標 | 内容 |
|---|---|
| step_count | 歩数 |
| active_energy | 消費カロリー |
| body_mass | 体重 |
| body_fat | 体脂肪率 |
| heart_rate | 平均心拍数 |
| resting_hr | 安静時心拍 |
| hrv | HRV(SDNN) |
| respiratory_rate | 呼吸数 |
| vo2max | VO2Max |
| sleep_hours | 就床時間 |
| asleep_hours | 実睡眠時間 |
| body_battery | Garmin 身体スコア |
daily_summary テーブルに日次で集計されており、raw_records には Apple Health の生データが全件入っています。
使い方:自然言語で聞くだけ
Claude Code で直接質問するだけです。
直近90日の健康状態をまとめて。HRV・安静時心拍・睡眠・歩数の傾向と、 このまま続けると3ヶ月後どうなりそうかも教えて。
裏では chiebukuro_query_health が走り、Claude が結果を受け取って考察します。SQL は書かなくていい。
深掘りも自然言語でそのまま投げられます:

後者の問いには、Claude が条件付きの SQL を自力で組み立ててくれます。自分で SQL を書いてもできることですが、「思いついたままに聞ける」という体験は別物です。
やってみてよかったこと
複数指標を横断した気づきが早いです。「睡眠時間は十分なのに翌日スコアが低い日がある」と思っていたら、「就床〜実睡眠の乖離が大きい日に翌日スコアが下がる傾向がある」と Claude がすぐ指摘してくれました。睡眠の「量」ではなく「質(寝つきの悪さ)」が影響している可能性を、数値ベースで見せてもらえます。
もちろん偽相関もあるので、そのまま信じるのではなく「こういう傾向があるかもしれない」として扱っています。それでも、眺めるだけだったデータが「仮説を試す素材」に変わったのは大きな変化です。
DB の再構築
Apple Health で新しいデータをエクスポートしたときは /apple-health-care-update-db コマンドで DB を再構築できます。初回セットアップは /apple-health-care-init-db です。どちらも Claude Code のスラッシュコマンドとして登録してあり、サブエージェントが一連の作業を自動でやってくれます。