Apple Health Mcp Unofficial について
Apple Health MCPは、AIエージェントで健康の傾向を調べる人向けの非公式なローカル優先コネクターです。手動で書き出したファイルを読み、活動、睡眠、心臓、HRV、ワークアウトのデータを公開します。HealthKitへのリアルタイムアクセスには対応しません。
主な機能
- 01Apple Healthのエクスポートファイルを解析
- 02活動、睡眠、心臓のデータを公開
- 03日次・週次の傾向を要約
- 04フォルダーを監視して新しいエクスポートを取得
- 05プライバシー保護のため要約モードが既定
活用シーン
- 01日次のウェルネス概要を作成
- 02週ごとの活動と睡眠の傾向を比較
- 03エクスポートのデータ範囲を確認
MCP 対応
MCPサーバーはローカルのApple Healthエクスポートデータを、ツール、リソース、プロンプトとしてMCPクライアントに公開します。既定はstdioで、ループバック限定のステートレスなStreamable HTTPにも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y apple-health-mcp-unofficialAPPLE_HEALTH_EXPORT_PATHPath to export.xml, an Apple Health export directory, or export.zip.APPLE_HEALTH_TIMEZONEIANA timezone used to interpret daily and weekly local-day summaries.APPLE_HEALTH_PRIVACY_MODEsummary, structured, or raw. Defaults to summary.APPLE_HEALTH_WATCH_PATHOptional folder watched for new Apple Health exports; the newest is auto-promoted and summaries refreshed.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
18掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| client | enum | いいえ | generic | claude | cursor | windsurf | hermes | openclaw |
| response_format | enum | いいえ | markdown | json |
詳細
Apple Health MCP
ローカルの export.zip から、Apple Health のアクティビティ、睡眠、HRV、ワークアウトを AI エージェントに提供します。—
ローカル優先の MCP サーバー — トークンがマシンの外に出ることはありません。
⚡ Delx Wellness for Hermes で ワンコマンドインストール:
npx -y delx-wellness-hermes setup— このコネクターとほかの8つを、専用の Hermes プロファイルに事前設定します。または、Claude Desktop / Cursor / ChatGPT Desktop に単独で接続できます — 詳しくは以下のインストールセクションをご覧ください。
HTTP(v2 ステートレス)
デフォルトは stdio です。オプションで Streamable HTTP を利用できます — セッション ID なし、JSON レスポンス、ループバックのみ:
npx -y apple-health-mcp-unofficial --http
# GET http://127.0.0.1:3000/health
# POST http://127.0.0.1:3000/mcp (sessionless)
環境変数:APPLE_HEALTH_MCP_HOST、APPLE_HEALTH_MCP_PORT、APPLE_HEALTH_MCP_TRANSPORT=http。
Apple Health のエクスポートを読み取り、AI エージェントに公開するローカル優先の MCP サーバーです。
非公式プロジェクトです。 Apple Inc. と提携、承認、または支援を受けていません。Apple Health は Apple Inc. の商標です。このパッケージは、Apple Health アプリからご自身で作成したエクスポートを読み取ります。
HealthKit へのライブアクセスには対応していません。 このコネクターは、iPhone からエクスポートした
export.xml/export.zipファイルを読み取ります。ネイティブの iOS HealthKit ブリッジは、将来追加予定の別コンポーネントです。
David Mosiah が、Claude、Cursor、Hermes、OpenClaw、その他の MCP 対応エージェントを使って長期的な健康やアクティビティの傾向を考察する方のために開発しました。Health アプリの数値をコピー&ペーストする必要はありません。
ローカル優先のウェルネス MCP コネクターのレジストリである Delx Wellness の一部です。
このコネクターがエージェントのワークフローに役立った場合は、リポジトリにスターを付けてください。スターが増えると、ほかの AI 開発者がこのプロジェクトを見つけやすくなり、Delx がローカル優先のウェルネス基盤を提供し続ける助けになります。
これが必要な理由
Apple Healthは、多くの人が持つ最も完全な個人健康データセットです。長年にわたるアクティビティ、心拍数、睡眠、ワークアウト、身体測定値、さらには心電図まで含まれています。しかし、Appleは公開クラウドAPIを提供していません。データはiPhone上のHealthKit内に保存されており、現在、デバイスの外に取り出す実用的な方法は、ヘルスケアアプリ内の ヘルスケアデータを書き出す 機能だけです。
このパッケージは、書き出したデータ(生の export.xml、解凍済みフォルダー、または export.zip)をローカルで読み取り、Model Context Protocolを通じてApple Healthを利用できるようにします。トークンも、OAuthも、クラウド同期も不要です。書き出したデータがマシンの外に出ることはありません。
60秒でセットアップ
1. iPhoneでApple Healthのデータを書き出します:
Health app → tap your profile picture → Export All Health Data
数分待ちます。AirDropなどでzipファイルをこのマシンに転送します。
2. 設定して確認します:
npx -y apple-health-mcp-unofficial setup --export-path /path/to/export.zip
npx -y apple-health-mcp-unofficial doctor
または、CLIに Downloads、Desktop、Documents 内で最も新しい書き出しデータを見つけさせ、管理対象のローカルストレージにコピーして、そのパスを保存させることもできます:
npx -y apple-health-mcp-unofficial setup --auto-import
対応している書き出しパス:
/path/to/export.zip/path/to/apple_health_export/(解凍済みフォルダー)/path/to/export.xml(生の書き出しファイル)
常に最新の状態に保つ — フォルダーを監視する(macOSは不要):
Apple Healthのデータは手動で書き出すため、セットアップを再実行しなくなると、データが古くなってしまうのが一般的な問題です。新しい書き出しデータを置くフォルダーをコネクターに指定します:
npx -y apple-health-mcp-unofficial setup --watch-path /path/to/health-exports
これで、iPhoneから書き出して新しい export.zip(または export.xml、解凍済みの apple_health_export/)をそのフォルダーに置くたびに、コネクターが最も新しいデータをアクティブな書き出しデータに自動で切り替えます。サーバーの起動時と、実行中のリアルタイムの両方で切り替え、キャッシュされた要約も更新します。また、apple_health_reimport ツールを使って、必要なときに再スキャンを実行することもできます。これは、プラットフォームを問わず定期的に更新する方法です。HealthKitと完全にリアルタイムで連携するブリッジには、引き続きネイティブのmacOS/iOSコンポーネントが必要です。
次に、これをMCPクライアントの設定に追加します:
{
"mcpServers": {
"apple_health": {
"command": "npx",
"args": ["-y", "apple-health-mcp-unofficial"]
}
}
}
Claude Desktopの場合は、setup --client claude --export-path /path/to/export.zip を実行すると、設定用のスニペットが自動で書き込まれます。
エージェントで試してみる
まずは次の3つを尋ねてみましょう:
Use apple_health_connection_status to check setup, then run apple_health_daily_summary.
Give me a 5-line wellness brief for today.
Call apple_health_data_inventory first. What Apple Health signals and date ranges
are available in this export?
Call apple_health_weekly_summary with response_format=json. Compare steps,
sleep, workouts and heart signals across the last 7 days.
Use the apple_health_weekly_review prompt, days=14.
Find the biggest habit pattern and suggest one experiment.
データの利用可否
このパッケージは、ヘルスケアアプリから書き出したApple Healthのデータを解析します。このREADMEで raw と記載されている場合、上流のXMLレコードフィールドを意味し、生のHealthKitデータを指すものではありません。
| データ | 利用可否 | 備考 |
|---|---|---|
| アクティビティ(歩数、距離、エネルギー、運動) | ✓ | 標準の HKQuantityType レコード |
| 心拍数(安静時+サンプル) | ✓ | 記録された心拍数サンプルと安静時心拍数 |
| 睡眠分析+睡眠ステージ | ✓ | iPhone/Watchで睡眠を記録している場合 |
| ワークアウト+スポーツのメタデータ | ✓ | すべての HKWorkout エントリー |
| 身体測定値(体重、BMI、体脂肪率) | ✓ | ユーザーが記録している場合 |
| HRV(SDNN)+呼吸数 | ✓ | Watchが対応している場合 |
| 心電図レコード | ✓(メタデータ) | Apple Watchの心電図イベント。生の波形にはPDFでの書き出しが必要です |
| HealthKitのリアルタイムアクセス | — | Appleは公開のリアルタイムAPIを提供していません |
| iCloudのヘルスケア同期 | — | 書き出しファイルでは利用できません |
ツール
まずはこちらから:
apple_health_connection_status— データを読み取る前に、エクスポート先のパスを確認しますapple_health_data_inventory— 利用可能なレコードの種類、日付範囲、ソース数、古いエクスポートのリスクを確認しますapple_health_daily_summary— エクスポートデータから日ごとのウェルネス概要を取得しますapple_health_weekly_summary— 週ごとの比較と習慣の傾向を取得します
診断
apple_health_capabilities、apple_health_agent_manifest、apple_health_privacy_audit
レコード
apple_health_list_records—type(例:HKQuantityTypeIdentifierStepCount)、start、end、limitで範囲を指定してレコードを取得します。limitが制限するのは返されるリストのみです。デフォルトのsummaryプライバシーモードでは、aggregateブロック(count_by_type、units、date_range、numeric)はフィルターに一致するすべてのレコードを対象に計算され、リスト自体が切り詰められたかどうかはtruncated/limit_applied/matched_countで確認できます。統計値はaggregate直下ではなく、numericの下(numeric.min/numeric.max/numeric.sum/numeric.average/numeric.count)にあります。ペイロードの例を参照してくださいapple_health_list_workouts—start、end、limitで範囲を指定してワークアウトを取得します。仕様は同じです。limitが制限するのは返されるリストのみで、summaryプライバシーモードでは、aggregateの合計値(count_by_activity、date_range、total_duration_minutes、total_distance、distance_units、total_energy_kcal、workout_count)はフィルターに一致するすべてのワークアウトを対象とします。リストが切り詰められたかどうかはtruncated/limit_applied/matched_countで確認できます
データを最新の状態に保つ
apple_health_reimport— ウォッチフォルダー(APPLE_HEALTH_WATCH_PATH)を再スキャンし、最新のエクスポートを反映して概要を更新します。反映せずにプレビューするには、check_only: trueを指定します
リスト呼び出しのコスト
limitが制限するのは出力であり、処理量ではありません。デフォルトのsummaryプライバシーモードでは、集計に一致するすべてのレコードを含める必要があるため、上限に達してもスキャンは停止せず、export.xmlの末尾まで読み込みます。type、start、endで範囲を絞っても、処理時間は短くなりません。一致するレコードがファイルの最後のバイトにある可能性があるため、いずれの場合もファイル全体を読み込みます。
合成エクスポートを使って測定した結果(Node 23、macOS、ページキャッシュがウォーム状態)では、summaryモードでapple_health_list_recordsを1回呼び出した場合、次のようになりました。
| export.xml | 初回呼び出し、summaryモード | 同じ呼び出しの繰り返し | 同じ呼び出し、privacy_mode: "raw" |
|---|---|---|---|
| 84 MB(353kレコード) | 約3.0秒 | 1ミリ秒未満 | 約1ミリ秒 |
| 336 MB(1.4Mレコード) | 約11.3秒 | 1ミリ秒未満 | 約2ミリ秒 |
ファイルサイズに比例し、1 MBあたり約33 msです。OSのファイルキャッシュに載る前に大きなエクスポートを初めて読み込む場合は、かなり時間がかかります(336 MBで約29秒かかった例があります)。
実用上の指針:
- **同一のクエリを繰り返してもコストはかかりません。**結果はエクスポートファイルごとにメモリ内でキャッシュされ、パス+サイズ+mtimeをキーとして使用します。新しいエクスポートを反映する(または
apple_health_reimportを実行する)とキャッシュが無効になるため、古いエクスポートが返されることはありません。 apple_health_daily_summary、apple_health_weekly_summary、apple_health_data_inventoryは別個のスナップショットキャッシュを共有しており、すでに全体の解析を行っています。この影響は受けません。- 統計ではなく、すばやくページを取得したい場合は?
privacy_mode: "structured"または"raw"を指定すると、スキャンはlimitで停止し、約1ミリ秒で結果を返します。その代わり、集計ではなく個々のレコードが返されます。 - **
apple_health_list_workoutsは、どのモードでもファイルの末尾まで読み込みます。**ワークアウトはまばらで、エクスポートに含まれるWorkout要素がデフォルトの50件分を満たすことはほとんどないためです。 incremental_cache: trueはキャッシュされません。カテゴリごとの永続カーソルを進めるため、呼び出しのたびに実際の処理が必要です。
ペイロードの例
値は合成データですが、実際の形式です。npm run test:readme-contract はリポジトリのフィクスチャを使って実際のサーバーを呼び出し、以下のいずれかのキーがなくなった場合、またはこのセクションに記載されていないキーをサーバーが返し始めた場合に失敗します。
{
"source": "apple_health_export",
"type": "HKQuantityTypeIdentifierHeartRate",
"privacy_mode": "summary",
"count": 50,
"limit_applied": 50,
"truncated": true,
"matched_count": 2847,
"records": [],
"aggregate": {
"count_by_type": { "HKQuantityTypeIdentifierHeartRate": 2847 },
"units": ["count/min"],
"date_range": {
"first": "2026-04-01T03:12:00.000Z",
"last": "2026-04-30T23:41:00.000Z",
"first_date": "2026-04-01",
"last_date": "2026-04-30"
},
"numeric": { "count": 2847, "sum": 202137, "average": 71, "min": 48, "max": 174 }
},
"aggregate_scope": "all_matching_records",
"disclosure": "summary_mode_omits_individual_records_aggregate_covers_all_matching_records"
}
summary モードでは、設計上、records は空です。個々のサンプルの代わりに集計結果が返されます。count はスキャン時にページングされたレコード数を引き続き示し、matched_count は集計対象となる全一致件数を示します。
{
"source": "apple_health_export",
"privacy_mode": "summary",
"count": 12,
"limit_applied": 50,
"truncated": false,
"matched_count": 12,
"workouts": [],
"aggregate": {
"count_by_activity": {
"HKWorkoutActivityTypeRunning": 8,
"HKWorkoutActivityTypeTraditionalStrengthTraining": 4
},
"date_range": {
"first": "2026-04-02T21:10:00.000Z",
"last": "2026-04-29T22:05:00.000Z",
"first_date": "2026-04-02",
"last_date": "2026-04-29"
},
"total_duration_minutes": 486.5,
"total_distance": 62.4,
"distance_units": ["km"],
"total_energy_kcal": 5820,
"workout_count": 12
},
"aggregate_scope": "all_matching_workouts",
"disclosure": "summary_mode_omits_individual_workouts_aggregate_covers_all_matching_workouts"
}
プロンプト
apple_health_daily_review— 医療的な表現を避けた毎日のウェルネスレビューapple_health_weekly_review— 週ごとの習慣の傾向とトレンドの比較
リソース
apple-health://capabilities、apple-health://agent-manifestapple-health://inventory、apple-health://summary/daily、apple-health://summary/weekly
プライバシーとセキュリティ
- Apple Health のエクスポートには、機密性の高い個人健康データが含まれます。ローカルに保管してください。
export.xml/export.zipを GitHub にコミットしたり、生のエクスポートデータをチャットに貼り付けたり、イシューにアップロードしたりしないでください。- エクスポートパスは読み取り専用です。MCP がエクスポートデータを変更することはありません。
- このコネクターでは、データセットが豊富で機密性が高いため、
APPLE_HEALTH_PRIVACY_MODEのデフォルトはsummaryです(ほかの Delx Wellness コネクターよりも慎重な設定です)。summary モードでは、低レベルのリストツールは個々のレコードではなく集計結果を返します。生のレコードのダンプは、明示的に有効にした場合のみ行われます。 - これは医療上のアドバイスではありません。このサーバーは、診断や緊急時のモニタリングではなく、個人の AI ワークフロー向けに、自分でエクスポートしたデータを公開します。
設定
APPLE_HEALTH_EXPORT_PATH=/path/to/export.zip # or export.xml or apple_health_export/
APPLE_HEALTH_PRIVACY_MODE=summary # summary | structured | raw
APPLE_HEALTH_TIMEZONE=America/Fortaleza # local-day summaries; defaults to UTC unless setup saves a timezone
APPLE_HEALTH_WATCH_PATH=/path/to/health-exports # optional: auto-reimport the newest export dropped here
setup は、これらの設定を 0600 のアクセス許可で ~/.apple-health-mcp/config.json に書き込みます。
setup --auto-import は、一般的なローカルフォルダーをスキャンして最新の Apple Health エクスポートを見つけ、0600 のアクセス許可で ~/.apple-health-mcp/exports/ にコピーします。これにより、iPhone からエクスポートを転送した後のローカルへのインポート手順が自動化されます。HealthKit との完全なライブ同期には、別途ネイティブブリッジが必要です。この Node MCP は意図的にローカルのエクスポートのみを読み取ります。
setup --watch-path <dir>(または APPLE_HEALTH_WATCH_PATH)を指定すると、コネクターはフォルダーをドロップゾーンとして扱います。起動時、実行中(ファイルシステムイベント経由)、および apple_health_reimport ツールの呼び出し時に、そこで見つかった最新の Apple Health エクスポート(export.xml、export.zip、apple_health_export/ ディレクトリ、または *apple*health*.zip)をアクティブなエクスポートに設定し、スナップショットキャッシュと増分キャッシュをクリアします。これにより、次のサマリーに新しいデータが反映されます。apple_health_connection_status は監視フォルダーの状態を報告し、より新しいエクスポートが待機中の場合は警告します。
Hermes/リモート設定
npx -y apple-health-mcp-unofficial setup --client hermes --export-path /path/to/export.zip
npx -y apple-health-mcp-unofficial doctor --client hermes
hermes mcp test apple_health
Hermes の設定を変更した後は、/reload-mcp または hermes mcp test apple_health を使用してください。通常のエクスポートへのアクセスでは、ゲートウェイを再起動する必要はありません。
Hermes サーバーが iPhone とは別のマシンで動作している場合は、エクスポートをそのマシンに転送し、--export-path にそのパスを指定してください。エクスポートファイルのアクセス許可は chmod 600 にしてください。
必要条件
- Node.js 20+
- iPhone からエクスポートした Apple Health データ(ヘルスケアアプリ → プロフィール → すべてのヘルスケアデータを書き出す)
開発
git clone https://github.com/davidmosiah/apple-health-mcp.git
cd apple-health-mcp
npm install
npm test
npm run build
MCP Inspector でテストします。
npx @modelcontextprotocol/inspector node dist/index.js
任意のローカル HTTP トランスポート:
APPLE_HEALTH_MCP_TRANSPORT=http APPLE_HEALTH_MCP_PORT=3000 node dist/index.js
curl http://127.0.0.1:3000/health
リンク
- npm:https://www.npmjs.com/package/apple-health-mcp-unofficial
- ドキュメントサイト:https://wellness.delx.ai/connectors/apple-health
- GitHub:https://github.com/davidmosiah/apple-health-mcp
- Delx Wellness レジストリ:https://github.com/davidmosiah/delx-wellness
- コネクター品質基準:https://github.com/davidmosiah/delx-wellness/blob/main/docs/connector-quality-standard.md
- Apple Health エクスポート手順:https://support.apple.com/guide/iphone/share-health-and-fitness-data-iph27f6325b2/ios
関連項目
Delx Wellness のコネクターライブラリ全体:
| プロバイダー | パッケージ | リポジトリ |
|---|---|---|
| WHOOP | whoop-mcp-unofficial | whoop-mcp |
| Oura | oura-mcp-unofficial | ouramcp |
| 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 apple-health-mcp-unofficial call apple_health_connection_status --json '{}'
skill/SKILL.md をエージェントのスキルディレクトリにコピーしてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。