mcpField
M
marrow

marrow

ローカル
marrowhealthapp.comヘルスケア44 日前に更新

marrow について

marrow-mcp は、無料の Marrow iOS アプリ向けセルフホスト型サーバーです。Apple Health のデータをローカルの SQLite にミラーし、AI エージェントから照会できます。データを所有者のハードウェアに保管し、MCP 経由で読み取り専用アクセスを提供します。

主な機能

  1. 01178 種類の健康データをミラー
  2. 02日次サマリーと個人ベースライン
  3. 03睡眠・栄養・運動・症状の照会
  4. 04ローカル SQLite 保存とバックグラウンド同期
  5. 05プロンプトとリソースを付属

活用シーン

  1. 01睡眠とトレーニングの最近の変化を確認
  2. 02個人ベースラインに沿って健康指標を解釈
  3. 03受診に向けて健康記録を整理

MCP 対応

Streamable HTTP と bearer token 認証で MCP サーバーを提供します。ペアリング済みのセルフホスト構成では、読み取り専用ツール 13 個、プロンプト 4 個、リソース 4 個を公開し、書き込みツールは利用できません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"tech-skeletonarmy-marrow": {
"command": "uvx",
"args": [
"marrow-mcp"
]
}
}
}
起動コマンドuvx marrow-mcp

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

パッケージ
pypimarrow-mcp0.4.1

ツール

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

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

詳細

Marrow Health

Marrow Health MCP サーバー(marrow-mcp)

AI エージェントが、あなた自身の Apple Health データを読み取れるようにします。

Marrow は、178 種類の健康データ系列(Apple Health の 172 種類に加え、独自の食事日記とセットごとのウェイトリフティング記録)を追跡する無料の iOS アプリです。このリポジトリはそのセルフホスト可能なコンパニオンサーバーです。標準ライブラリのみを使用する Python ファイル 1 つで、所有するハードウェア上にデータの SQLite ミラーを保持し、Model Context Protocol 経由で提供するため、スマートフォンをポケットに入れたままでも、エージェントは 24 時間いつでもデータを照会できます。

ここからクラウドに接続することはありません。データはスマートフォンからあなたのマシンへ流れるだけです。

MCP 経由で Marrow に問い合わせ、スマートフォンの睡眠データとワークアウトデータを取得するエージェント

実行する

pip install "marrow-mcp[qr]"                  # [qr] adds segno, which draws the pairing QR
marrow-server --port 8800 --data ./data       # prints a pairing URL

[qr] を指定しない場合、ペアリングページにはコードではなくペアリング用 JSON が表示されます。

または、クローンから実行します

python3 marrow_server.py                      # prints a pairing URL
python3 marrow_server.py --port 8800 --data ./data

または Docker で実行します

docker compose up -d

任意の画面でペアリング URL を開き、Marrow で Export, Server MCP, Pair with a server を選択して、スキャンしてください。以降は、アプリを閉じていても、アプリのバックグラウンドプッシュによってミラーが最新の状態に保たれます。アプリがプレーン HTTP でペアリングできるのは、自分のネットワーク上のみです(プライベートまたは tailnet の IPv4 アドレス、.local または .ts.net の名前、短い LAN 名)。公開アドレスには HTTPS が必要です(--url https://...)。

0.3.0 へのアップグレード

古いサーバーを停止し、同じ --data ディレクトリを指定して新しいサーバーを起動します。既存の mirror.sqlite には初回起動時に新しい列が追加され、--data 内のトークンも引き継がれるため、スマートフォンのペアリングはそのまま維持されます。Marrow 1.4 で記録したセットには set_type(work、 warmup、failure、drop)が含まれます。ウォームアップは引き続き一覧に表示されますが、ボリュームや記録にはカウントされなくなります。また、アップグレード前にミラーされた行は work セットとして扱われます。

エージェントを接続する

このサーバーは Streamable HTTP 経由で MCP を提供します(JSON-RPC 2.0、プロトコルバージョン 2025-06-18)。初回起動時に生成され、ペアリングリンクとともに表示されるベアラートークンで認証します。

Claude Code

claude mcp add --transport http marrow \
  http://<server-ip>:8800/mcp \
  --header "Authorization: Bearer <mcp token>"

Claude Desktop、ワンクリックで設定

marrow.mcpb をダウンロードしてダブルクリックすると、Claude Desktop が拡張機能をインストールし、URL とトークンを尋ねます。ターミナルは不要です。(このバンドルは mcpb/ にある、依存関係のない小さなブリッジです。Claude の stdio を Marrow の URL に転送するだけで、それ以外の処理は行いません。)

Claude Desktop(手動)、Cursor、または mcp.json を使用するもの

{
  "mcpServers": {
    "marrow": {
      "type": "http",
      "url": "http://<server-ip>:8800/mcp",
      "headers": { "Authorization": "Bearer <mcp token>" }
    }
  }
}

手動で確認する

curl -s http://<server-ip>:8800/mcp \
  -H "Authorization: Bearer <mcp token>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

ツール

13個のツールがあり、すべて読み取り専用です。サーバーには書き込みツール(食事やワークアウトの記録など)もありますが、書き戻し用にスマートフォンを登録した後にのみ表示されます。現在、これに対応しているのは Marrow Connect だけです。アプリからペアリングしたセルフホスト可能なサーバーが提供するのは13個の読み取りツールのみで、エージェントが健康記録に書き込めるツールはありません。

そのうち4つは、アプリ独自の基準に沿って回答します。アプリのホームページと同じ計算方法で、あなた自身の直近の通常値と照らして評価します(当日分は除外)。そのため、エージェントは数値を全体集団と比較して判断するのではなく、あなたにとってすでに適切な読み取り結果を出発点にできます。

ツール戻り値
daily_brief1日分:各主要指標の値と説明(あなたの通常値、通常値より高い、通常値を大幅に下回る)、食事と水分の目標に対する達成状況、昨夜の睡眠、実施したトレーニング、気分と症状、言及すべきフラグ
baselines指標ごとのあなた自身の通常値:対象期間の平均値とばらつき、最新値の z 値と説明、7日間の平均値、月ごとの90日間の傾向
what_changed直近の日々とその前の期間との比較:変化した項目と、あなたにとっての注目度、食事、トレーニング、睡眠と就寝時刻の変化、データが届き始めたストリームや届かなくなったストリーム
data_qualityミラーに保存されているデータとその鮮度:指標ごとの最新日、カバレッジ、更新頻度、データソース、データが古くなっているかどうかに加え、日誌、睡眠、トレーニングのカバレッジと、スマートフォンが最後に同期した日時

9つの生データ読み取りツール:

ツール戻り値
health_summary活動、心臓、睡眠、栄養に関する直近の日々のデータ
list_metricsミラー内のすべての指標と、単位およびカバレッジ
metric_daily任意の指標の日ごとの値(最大400日分)
metric_samplesタイムスタンプとデータソースのデバイスを含む生データのレコード
workoutsすべてのデータソースのワークアウト:活動、開始、終了、時間、データソース
nutrition_log食事日誌:記録したすべての食品と栄養素の詳細(日ごと)
strength_logすべての筋力トレーニングのセット(セットの種類と推定1RMを含む)、種目ごとの進捗、筋肉群ごとの総ボリューム(ウォームアップは除外)
sleep_log起床日ごとの1晩分のデータ:就寝時刻、起床時刻、睡眠時間、各睡眠ステージの時間
symptoms_and_mood重症度を含む症状と、感情価、感情、内容を含む「心の状態」の記録

すべての読み取りツールでは、スマートフォン上の今日から遡る日数を days で指定するか、スマートフォンのカレンダーに基づいて from と to を指定します。metric_samples は before(手元にある最新レコードの開始日時)を使ってページ分割します。出力スキーマを持つツールは、structuredContent も返します。

サーバーには4つのプロンプト(how_am_i_doing、weekly_review、doctor_prep、log_from_text)と4つのリソース(marrow://today、marrow://metrics、marrow://targets、marrow://quality)が付属しており、それらを表示するクライアントで利用できます。

指標キー:list_metrics には Apple の短縮名(active_energy_burned)が表示されます。また、ツールはアプリ独自のキー(active_energy、heart_rate_variability)も受け付けるため、スマートフォンから移行したエージェントも、これまでと同じ用語を使えます。

エージェントに 「朝のトレーニングを始めてから、睡眠はどう変わりましたか?」 のようなことを尋ねて、調べてもらいましょう。

キット、レシピ、Claude Code プラグイン

  • kits/:Claude Code、Claude Desktop、 Cursor、OpenClaw、Hermes Agent 向けのコピー&ペーストで使えるセットアップ。
  • recipes/:Marrow のオートメーションの受信側(アプリを閉じていても、スケジュールに沿ってアプリから任意の URL にデータを POST します):Home Assistant、 n8n、Apps Script 経由の Google Sheets、InfluxDB。
  • Marrow で構築: これらの接続を使って実行されている、ユーザー作成の完成プロジェクトです。最初のプロジェクトは、Marrow が送信するあらゆる種類のデータを表示する Grafana ダッシュボード、Body Ops です。ぜひ投稿してください。
  • Claude Code プラグイン:/plugin marketplace add MarrowHealth/marrow-mcp の後に /plugin install marrow-health@marrow を実行します。Marrow Connect サーバーと4つのコマンド(/marrow-health:how-am-i-doing、weekly-review、 doctor-prep、log)、さらに各ツールが何に答えるかを把握したスキルが追加されます。

Claude や ChatGPT に組み込まれたコネクターを使わない理由は?

Claude(米国の Pro/Max)と ChatGPT は、どちらも Apple Health のデータをネイティブに読み取れるようになりました。それだけで十分な場合は、そちらをご利用ください。ただし、これらの機能が対応する範囲は、このサーバーが提供する機能には及びません。

Claude/ChatGPT コネクターMarrow + このサーバー
動作する場所iOS アプリのみClaude Code、Claude Desktop、Cursor、OpenClaw、Hermes、あらゆる MCP クライアント、あらゆるマシン
動作するタイミングスマートフォンでチャットをしている間24時間365日、スマートフォンをポケットに入れたまま、自分のマシンから
モデルが参照するデータHealthKit の生の数値Apple 独自の合計値と照合された日次データ、食事日記、セットごとのリフト記録
データの保存場所会話ごとに各社のクラウド自分が所有するハードウェア上の SQLite
費用サブスクリプション無料、MIT

OpenClaw/Hermes/自宅のマシンで動くあらゆるエージェント。 上記の mcp.json ブロックと同じように、ベアラートークンとサーバー URL をエージェントの MCP 設定に指定します。tailscale serve --bg --https=8800 http://127.0.0.1:8800 を使うと LAN の外からアクセスでき、tailnet の URL を使用できます。

その他のアクセス方法

このサーバーは Marrow の「エクスポート」タブにある接続方法のひとつです。エージェントにアクセス権を与えるのに、このサーバーは必須ではありません。

  1. ローカル MCP。 Marrow は iPhone 上で http://<phone-ip>:21212/mcp に MCP サーバーを実行し、アプリの実行中に応答します。上記の生データ読み取りのうち7つを利用でき、追加のハードウェアは不要です。
  2. サーバー MCP。 このパッケージです。自分のマシン上で常時稼働するミラーです。
  3. 自動化。 任意の URL へのスケジュール送信(Home Assistant、n8n、自分のエンドポイントなど)。
  4. 手動。 共有シートから CSV、JSON、GPX ファイルを書き出します。

4つすべてを無料プランで利用できます。すべてのセットアップ方法はこちらをご覧ください: https://marrowhealthapp.com/guides。

Marrow Connect はホスト型の Pro プランです。Marrow がミラーを実行するため、スマートフォンの電源がオフでも、何も実行せずに ChatGPT、Claude、Gemini からデータを読み取れます。アプリで「AI による書き込みを許可」をオンにすると、操作の記録までできる唯一の接続方法です。https://marrowhealthapp.com/connect

セキュリティ

  • どちらのサーバーも LAN または tailnet 向けです。インターネットにポートフォワーディングしないでください。 リモートから利用する場合は、tailscale serve、Caddy、または同等の仕組みを前段に配置し、トランスポートに HTTPS を使い、ベアラートークンを提示する前にデバイスを認証してください。
  • --data には、スマートフォンからの送信用の .app-token と、エージェント用の .mcp-token の2つのトークンが別々に保存されます。一方をローテーションしても、もう一方には影響しません。
  • データ取り込みは冪等で UUID をキーにするため、バッチを再送しても二重にカウントされません。

ステータス

Marrow は App Store で配信中です。iOS 17 以降に対応し、Apple Health が必要です。 App Store から入手。

iOS アプリはクローズドソースです。このサーバーはオープンソースです。自分のハードウェアで実行するよう求められるものは、すべて内容を確認できるべきだからです。

レジストリ

公式 MCP レジストリに tech.skeletonarmy/marrow として登録され、skeletonarmy.tech の DNS により検証されています。

mcp-name: tech.skeletonarmy/marrow

ヘルプとポリシー

ライセンス

MIT。LICENSEをご覧ください。

コメント

MCP は初めてですか?

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

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