Marrow Get the app

MCP 2025-06-18 / streamable http / read-only / free

Connect an agent to Marrow.

Marrow serves your Apple Health data over the Model Context Protocol, from your own iPhone or your own server. Seven read-only tools, bearer-token auth, no account anywhere. This page is the whole setup.

Agent on another machine, or need answers while the phone sleeps? Pair the self-hosted mirror (pip install marrow-mcp): it answers 24/7 for Claude Code, Cursor and OpenClaw. If you came here from the built-in Claude or ChatGPT connector, here is what it does that they don't.

Let your agent do it

I want to connect my own Apple Health data to you. Marrow is a free iOS app that serves it over MCP, with no account and no subscription. It is on the App Store: https://apps.apple.com/app/id6800819435. Walk me through the whole thing: installing the app, turning the server on under Export then Agents, and adding the URL and bearer token it shows me to your MCP config as a Streamable HTTP server. If you cannot edit that config yourself, tell me the exact file and what to paste. Setup docs: https://skeletonarmy.tech/mcp. When it is connected, call health_summary for the last 7 days and tell me what stands out.

1. Turn the server on

It ships off. In the app: Export → Agents (MCP), then enable the server. You get a URL, a token, and a QR code. The server binds to your local network only, and the app shows the exact address it is listening on.

2. Point your client at it

Replace <phone-ip> and <token> with what the app shows you.

Claude Code

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

Claude Desktop, one click

Download marrow.mcpb on your computer and double-click it. Claude Desktop installs the extension and asks for the URL and token above; no terminal involved.

Claude Desktop (manual), Cursor, or any client using an mcp.json

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

Check it by hand

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"}'

The tools

All read-only. Nothing an agent can call writes to your health record.

ToolReturns
health_summaryRecent days across activity, heart, sleep and nutrition
list_metricsEvery metric tracked, with units and coverage
metric_dailyDaily values for any metric, up to 400 days
metric_samplesRaw records with timestamps and source devices
workoutsWorkouts, including set-by-set strength detail
nutrition_logFood diary with the full nutrient breakdown
strength_logEvery lifting set, estimated 1RM per exercise, volume per muscle group

All seven tools are served by both the on-device server and the self-hosted mirror. Raw samples carry sleep stages and symptom severities.

There are 172 Apple Health metrics behind list_metrics, plus Marrow-native diary and strength data behind nutrition_log and strength_log, covering activity, heart, sleep, body, respiratory, mobility, hearing, nutrition, mind, symptoms, cycle and habits. Machine-readable version of this page: tools.json.

Keeping it up when the phone is not

The on-device server answers while the app is running. For 24/7 access, pair a self-hosted mirror: one Python stdlib file on a Pi, NAS or old laptop. The phone's background pushes keep it current, and it speaks the same MCP surface at http://<server-ip>:8800/mcp with its own token. It is open source and installable:

pip install marrow-mcp
marrow-server

Source: github.com/skeletonarmytech/marrow-mcp. Listed in the official MCP registry as tech.skeletonarmy/marrow.

Do not port-forward either server to the open internet. Both are designed for a LAN or a tailnet. If you need remote access, front it with tailscale serve or an equivalent, so the transport is HTTPS and the device is authenticated before the bearer token is ever seen.

What this costs

Nothing. Agent access is in the free tier, along with background sync, automated export, CSV and JSON export, and barcode scanning. Health Auto Export shipped an MCP server before Marrow did, and it is good, but theirs requires a Premium subscription. That difference, not primacy, is the claim worth making.

Requirements