エージェントをMarrowに接続する
Marrowは、Apple Healthのデータを、あなた自身のiPhoneまたはあなた自身のサーバーから、Model Context Protocolで提供します。iPhone上では読み取りツールが9つ、自分のサーバーでは13個(そのうち4つは、アプリ自身の言葉で、あなた自身の普段の値と比べて答えます)、スイッチの裏に書き込みツールが12個あり、認証はベアラートークン、アカウントはどこにも不要です。このページに、セットアップのすべてがあります。
別のマシンのエージェントを使う場合や、iPhoneがスリープ中も答えが必要な場合は、セルフホスト版ミラー(pip install marrow-mcp)とペアリングしてください。Claude Code、Cursor、OpenClaw向けに24時間365日答えます。内蔵のClaudeやChatGPTのコネクタからここに来た方は、ミラーならではの点をご覧ください.
Claude Code、Cursorなど、アプリごとのセットアップは、接続の中の専用ページにあります.
私のApple Healthのデータを、あなたに接続したいです。Marrowは、アカウントも、この用途のためのサブスクリプションも要らない無料のiOSアプリで、MCPでデータを提供します。App Storeにあります:https://apps.apple.com/app/id6800819435。最初から最後まで案内してください。アプリのインストール、エクスポートからローカルMCPでサーバーをオンにすること、そして表示されるURLとベアラートークンを、Streamable HTTPサーバーとしてあなたのMCP設定に追加することです。その設定をあなた自身で編集できない場合は、どのファイルに何を貼り付けるかを正確に教えてください。セットアップのドキュメント:https://marrowhealthapp.com/mcp。接続できたら、直近7日間でhealth_summaryを呼び出して、目立つ点を教えてください。
1. サーバーをオンにする
初期状態ではオフです。アプリでエクスポート → ローカルMCPを開き、サーバーを有効にします。URL、トークン、QRコードが表示されます。サーバーはローカルネットワークの中だけで待ち受け、アプリは待ち受けている正確なアドレスを表示します。
2. クライアントに接続先を設定する
<phone-ip>と<token>を、アプリに表示された値に置き換えてください。
Claude Code
claude mcp add --transport http marrow \ http://<phone-ip>:21212/mcp \ --header "Authorization: Bearer <token>"
Claude Desktop、ワンクリック
パソコンでmarrow.mcpbをダウンロードして、ダブルクリックします。Claude Desktopが拡張機能をインストールし、上のURLとトークンを尋ねます。ターミナルは使いません。
Claude Desktop(手動)、Cursor、またはmcp.jsonを使うクライアント
{
"mcpServers": {
"marrow": {
"type": "http",
"url": "http://<phone-ip>:21212/mcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}
手動で確認する
curl -s http://<phone-ip>:21212/mcp \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
ツール
読み取りは常に使えます。書き込みは2つ目のスイッチです。ローカルMCPでAIの書き込みを許可をオンにすると、iPhone上のサーバーに、クラウドMCPと同じ12個の書き込みツール(log_meal、log_water、log_weight、log_workout、log_strength、log_sleep、log_symptom、log_mood、edit_entry、delete_entry、set_targets、undo_entry)が並びます。変更はiPhoneにすぐ反映されてApple Healthにも書き込まれ、どれも元に戻せます。オフのときは、サーバーは読み取り専用です。
| ツール | 返すもの |
|---|---|
health_summary | アクティビティ、心臓、睡眠、栄養にわたる直近の日々 |
list_metrics | 追跡しているすべての指標。単位とカバー範囲つき |
metric_daily | 任意の指標の日ごとの値。最大400日分 |
metric_samples | タイムスタンプとソースデバイスつきの生のレコード |
workouts | すべてのソースのワークアウト。iPhoneでは、Marrowの筋トレセッションもセットごとに |
nutrition_log | 栄養素の内訳がすべてわかる食事日記 |
strength_log | すべてのトレーニングのセットを、セットの種類つきで。種目ごとの推定1RM、筋群ごとのボリューム。ウォームアップは、ボリュームにも記録にも含まれません |
sleep_log | 起床日ごとに1晩分:就寝時刻、起床時刻、睡眠時間、ステージごとの分数(セルフホスト版ミラー) |
symptoms_and_mood | 重症度つきの症状と、感情とその理由つきのState of Mindの記録(セルフホスト版ミラー) |
セルフホスト版ミラーとクラウドMCPには、さらに4つあります。生データの読み取りが終わるところから始まります。各値は、アプリのホームと同じ計算で、あなた自身の直近の普段の値と比べて評価されます(その日自体は除外)。だからエージェントは、数値を一般の人々と比べて判断するのではなく、すでにあなたにとって正しい読みから始められます。
| ツール | 返すもの |
|---|---|
daily_brief | 1日分:主要な各指標の値とアプリ自身の言葉(あなたにとって普段どおり、普段より高め、普段をかなり下回る)、目標に対する食事と水分、昨夜の睡眠、行ったトレーニング、気分と症状、触れておく価値のあるフラグ |
baselines | 指標ごとのあなたの普段の値:期間の平均とばらつき、最新の値のzスコアとその言葉、7日間の平均、月ごとの変化で示す90日間の傾向 |
what_changed | 直近1週間と、その前の4週間との比較:何が動いたか、それがあなたにとってどれだけ注目に値するか、食事、トレーニング、睡眠と就寝時刻の変化、届き始めた、または届かなくなったデータの流れ |
data_quality | ミラーが持っているデータと、その新しさ:指標ごとの最新の日、カバー範囲、頻度、ソース、古くなっていないか。エージェントが、欠けた部分を事実と取り違えないようにします |
端末上のサーバーが提供するのは、最初の7つの生データのツールに、daily_briefとbaselinesを加えた9個の読み取りです。セルフホスト版ミラーは13個すべてを提供し、ホスト型のクラウドMCPのコピーも同じです。ミラーの読み取りはすべて、iPhoneのカレンダーに沿った、さかのぼる日数、またはfromとtoを受け付けます。また、ミラーは、表示に対応するクライアント向けに、4つのプロンプト(how_am_i_doing、weekly_review、doctor_prep、log_from_text)と4つのリソースも提供します。生のサンプルには、睡眠ステージと症状の重症度が含まれます。
list_metricsの先には172のApple Health指標があり、さらにnutrition_logとstrength_logの先にあるMarrow独自の食事日記と筋トレのデータがあって、アクティビティ、心臓、睡眠、身体、呼吸、モビリティ、聴覚、栄養、心、症状、周期、習慣をカバーしています。このページの機械可読版:tools.json.
iPhoneが使えないときも使い続ける
端末上のサーバーは、アプリが動いている間だけ応答します。24時間365日のアクセスには、セルフホスト版ミラーをペアリングしてください。Raspberry Pi、NAS、古いノートパソコンで動く、Pythonの標準ライブラリだけの1ファイルです。iPhoneのバックグラウンドでのプッシュが最新の状態を保ち、同じMCPの仕様を、独自のトークンでhttp://<server-ip>:8800/mcpに提供します。iPhoneのツールはアプリの指標キー(active_energy、heart_rate_variability)を使います。サーバーはそれらとAppleの短い名前(active_energy_burned)の両方を受け付けるので、エージェントは覚え直さずに行き来できます。オープンソースで、インストールできます:
pip install marrow-mcp marrow-server
ソース:github.com/MarrowHealth/marrow-mcp。公式MCPレジストリにtech.skeletonarmy/marrowとして掲載されています.
どちらのサーバーも、ポートフォワードでインターネットに公開しないでください。どちらもLANまたはtailnet向けに設計されています。リモートアクセスが必要な場合は、tailscale serveなどを前に置いて、通信をHTTPSにし、ベアラートークンが見える前にデバイスが認証されるようにします。
トラブルシューティング
まず下のテストから始めます。AIが動いているパソコンから実行してください。問題がどちら側にあるかがわかります。Marrowのその接続のページに表示されるアドレスとトークンを使い、iPhoneではMarrowを開いたままにします。
curl -i http://<phone-ip>:21212/mcp \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
| 結果 | 意味 |
|---|---|
HTTP/1.1 200 OKとツールの一覧 | iPhone側は問題ありません。問題はアプリの設定にあります。アドレス、トークン、またはHTTP(Streamable HTTP)以外のサーバータイプです。設定を直して、アプリを再起動してください。 |
401 Unauthorized | トークンが違うか、Marrowでこの接続がオフになっています。「あなたの接続」の各接続には専用のトークンがあり、1つをオフにすると、そのアプリだけが締め出され、ほかは使い続けられます。オンにするか、トークンをもう一度コピーしてください。 |
404 Not Foundとuse POST /mcp | パスが違います。アドレスの末尾は/mcpです. |
| 接続が拒否される、またはタイムアウトするまで応答がない | パソコンがiPhoneに届いていません。下のリストを順に確認してください。 |
- Marrowを開いたままにする。iPhoneのサーバーが応答するのは、Marrowが前面で開いている間だけです。アプリを切り替えたりiPhoneをロックしたりすると、iOSがまもなくサーバーを一時停止します。Marrowをもう一度開けば、また応答します。iPhoneがスリープ中も答えが必要なら、サーバーMCPかクラウドMCPを使ってください.
- 同じWi-Fiかtailnet。パソコンとiPhoneは、同じWi-Fiネットワークか、同じtailnetにある必要があります。ローカルMCPは、モバイル回線では応答しません。MarrowにNo network address foundと表示されたら、Wi-Fiかtailnetに接続してください。ゲスト用やホテルのWi-Fiでは、機器どうしが通信できないことがよくあります。
- tailnetのアドレスか、Wi-Fiのアドレスか。Marrowが表示するのはiPhoneのアドレスの1つで、たいていはWi-Fiのものです。Tailscale経由でiPhoneに届くパソコンでは、代わりにiPhoneのtailnetアドレスが必要です。Tailscaleアプリに表示されます(
100.で始まります)。設定のWi-Fiのアドレスの代わりにそれを入れ、ポートとトークンはそのままにします。 - アドレスが変わった。ルーターは、しばらくすると新しいWi-FiのアドレスをiPhoneに割り当てることがあります。Marrowに表示されるアドレスと、設定のアドレスを比べてください。ルーターでアドレスを予約しておくと、固定されます。
- 原因はローカルネットワークのアクセスではない。iOSがこれを尋ねるのは、ペアリングしたサーバーなど、ネットワーク上の機器にMarrowが接続するときです。iPhoneのサーバーがパソコンに応答するのに許可は要らないので、そのスイッチをオンにしてもオフにしても、ローカルMCPは変わりません。
- パソコンのVPN。tailnet以外のVPNは、ローカルの通信をWi-Fiから逸らすことがあります。VPNを一時停止して、もう一度テストしてください。
- アプリのログに405が出る。iPhoneはPOSTにしか応答せず、ストリームも開いたままにしないので、GETには
405が返ります。Streamable HTTPに対応するアプリはPOSTで続けるので、この1行だけでは問題ではありません。 - アプリがコマンド(stdio)しか受け付けない。iPhoneのアドレスをmcp-remoteブリッジ経由で渡します。パソコン自体ではない暗号化なしのhttpアドレスには、
--allow-httpが必要です:npx -y mcp-remote http://<phone-ip>:21212/mcp --allow-http --header "Authorization: Bearer <token>"。WindowsのCursor、Codex、Claude Desktopの設定ファイルでは、argsの中のスペースが壊れることがあります。ヘッダーをAuthorization:${AUTH_HEADER}と書き、サーバーのenvでAUTH_HEADERをBearer <token>に設定します。 - 読み取れるのに記録できない。ローカルMCPでAIの書き込みを許可をオンにしてください。エントリはiPhoneにすぐ反映され、どれも元に戻せます。
- 接続がオンにならない。無料では同時に1つの接続、Marrow Proでは最大10個までオンにできます。AI、サーバー、オートメーションの合計です。先に「あなたの接続」で1つをオフにしてください。
Claude Code、Cursor、VS Codeなど、アプリごとのセットアップと対処は、接続にあります.
費用
かかりません。エージェントからのアクセスは、バックグラウンド同期、自動エクスポート、CSVとJSONのエクスポート、バーコードスキャンとともに、無料のティアに入っています。Health Auto ExportはMarrowより先にMCPサーバーを出していて、出来も良いのですが、あちらはPremiumのサブスクリプションが必要です。言う価値があるのは、先に出したかどうかではなく、この違いです。
必要なもの
- iOS 17以降と、Apple Health。Android版もウェブ版もありません。
- MarrowはApp Storeで無料で入手できます:apps.apple.com/app/id6800819435.
- Marrowのアカウントは存在しないため、ユーザー自身の端末なしで呼び出せるホスト型のAPIはありません。