mcpField
A
Apple Health

Apple Health

ローカル
github.comヘルスケア5754 週間前に更新

Apple Health について

Apple Health MCP は、Simple Health Export CSV の書き出しデータを DuckDB と SQL で照会するローカル動作の MCP サーバーです。睡眠、ワークアウト、心臓のデータを分析し、書き出しファイルを手元に置いておきたい利用者に向いています。

主な機能

  1. 01Simple Health Export CSV ファイルの読み込み
  2. 02DuckDB による SELECT 系の分析クエリ
  3. 03サンプル行付きのスキーマ探索
  4. 04週次・月次・任意期間のサマリー生成
  5. 05ファイルアクセスの制限とネットワークの無効化

活用シーン

  1. 01睡眠、ワークアウト、心拍数の履歴データの照会
  2. 02週次または月次の健康サマリーの作成
  3. 03健康記録に対する SQL による独自分析

MCP 対応

stdio トランスポートで動作する MCP サーバーで、health_schema、health_query、health_report の各ツールを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"neiltron-apple-health": {
"command": "npx",
"args": [
"-y",
"@neiltron/apple-health-mcp"
],
"env": {
"HEALTH_DATA_DIR": "<HEALTH_DATA_DIR>",
"MAX_MEMORY_MB": "<MAX_MEMORY_MB>",
"CACHE_SIZE": "<CACHE_SIZE>"
}
}
}
}
起動コマンドnpx -y @neiltron/apple-health-mcp
設定が必要な環境変数
HEALTH_DATA_DIRPath to the Apple Health CSV export directory
MAX_MEMORY_MBMaximum memory usage in megabytes
CACHE_SIZEMaximum number of cached query results

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@neiltron/apple-health-mcp1.4.5

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Apple Health MCP サーバー

npm version License: MIT

SQL と DuckDB を使って、MCP クライアントから Apple Health のデータを照会します。サーバーはローカルで実行され、必要に応じて CSV エクスポートを読み込み、スキーマの確認、分析クエリ、ヘルスサマリー用のツールを提供します。

要件

ネイティブの Apple Health export.xml 形式には、現在対応していません。

MCP クライアントの設定

Claude Desktop の場合、次の内容を ~/Library/Application Support/Claude/claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "apple-health": {
      "command": "npx",
      "args": ["-y", "@neiltron/apple-health-mcp"],
      "env": {
        "HEALTH_DATA_DIR": "/path/to/your/unzipped/health-export"
      }
    }
  }
}

設定を変更した後は、クライアントを再起動してください。他の MCP クライアントでも、同じコマンド、引数、環境、stdio トランスポートを使用できます。

環境変数
変数必須デフォルト用途
HEALTH_DATA_DIRはい—エクスポートした CSV ファイルを含むディレクトリ
MAX_MEMORY_MBいいえ2048DuckDB のメモリ上限(メガバイト)
CACHE_SIZEいいえ100キャッシュするクエリ結果の最大数

ヘルスデータをエクスポートする

  1. iPhone に Simple Health Export CSV をインストールして開きます。
  2. All を選択し、エクスポートする期間を指定します。
  3. アーカイブを MCP クライアントを実行するコンピューターに転送します。
  4. アーカイブを解凍し、HEALTH_DATA_DIR に展開先のディレクトリを設定します。

サーバーはファイルをその場で読み込みます。エクスポートをアップロードしたり、ネットワークリクエストを送信したりすることはありません。ただし、MCP クライアントに返されるクエリ結果は、そのクライアントで設定されたモデルプロバイダーに送信される場合があります。

ツール

ツール用途
health_schemaテーブル名、列、単位、サンプル行を確認します
health_queryJSON、CSV、またはサマリー形式で、DuckDB の SELECT 系分析ステートメントを 1 つ実行します
health_report週次、月次、またはカスタムのヘルスサマリーを生成します

まず health_schema を使用してください。テーブル名はエクスポート内のファイルによって異なります。データモデルと実際の例については、Apple Health データのクエリを参照してください。

health_query は DuckDB の分析ステートメントを 1 つ受け付けます。対応するステートメントと制限対象の操作については、クエリの保護策を参照してください。

クエリの保護策

サーバーは DuckDB のファイルアクセスを HEALTH_DATA_DIR に制限します。また、ネットワークアクセスと一時ディスクストレージを無効にし、データベース設定を固定します。インポーターが CSV ファイルを読み込めるよう、データディレクトリは読み取り可能かつ書き込み可能な状態に保たれます。

これらの制御により、生成された SQL による意図しない副作用を減らせます。ただし、プロセスを分離するものではありません。サーバーはローカルの stdio MCP クライアント経由で実行してください。信頼できないネットワーククライアントに公開しないでください。サーバーが信頼できない SQL を受け付ける必要がある場合は、プロセスまたは OS による分離を使用してください。

履歴とメモリ

テーブルを必要とする最初のリクエストでは、そのテーブルの CSV 履歴全体が読み込まれます。 日付の範囲は設けられていないため、エクスポートされたデータの最も古い時点までクエリできます。

すべてのツールが設定済みの履歴全体にアクセスできるため、このデータを信頼できる MCP クライアントからのみこのサーバーを起動してください。

読み込まれたテーブルはメモリに保持され、DuckDB には上記で説明した MAX_MEMORY_MB の制限が適用されます。 おおよそ 1 GiB あれば 2 年分の複数テーブルのエクスポートに対応できるため、デフォルトの 2048MB なら余裕があります。より大きなエクスポートには MAX_MEMORY_MB を引き上げてください。 サーバーはヘルスデータの行をディスク上の一時ディレクトリに退避しないため、制限内に収まらないエクスポートは、代わりに明示的なエラーで失敗します。

その他の現在の制限事項:

  • Simple Health Export の CSV レイアウトのみがサポートされています。
  • DuckDB データベースはメモリ上にあり、サーバープロセスごとに再構築されるため、起動のたびに CSV ファイルから再読み込みされます。永続的な差分インポートは今後の作業として計画されており、現時点では実装されていません。
  • デバイスの重複によって、同じように見える測定値が生成されることがあります。必要に応じて、クエリでは sourceName を考慮してください。
  • ヘルスレポートは記録されたデータを要約するものであり、医療上の助言ではありません。

開発

git clone https://github.com/neiltron/apple-health-mcp.git
cd apple-health-mcp
bun install

npm test
npm run typecheck
npm run build

コード構成、データのライフサイクル、実装上の制約については、アーキテクチャを参照してください。 公開と復旧の手順については、リリース手順を参照してください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。