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.
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.
| Tool | Returns |
|---|---|
health_summary | Recent days across activity, heart, sleep and nutrition |
list_metrics | Every metric tracked, with units and coverage |
metric_daily | Daily values for any metric, up to 400 days |
metric_samples | Raw records with timestamps and source devices |
workouts | Workouts, including set-by-set strength detail |
nutrition_log | Food diary with the full nutrient breakdown |
strength_log | Every 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
- iOS 17 or later, and Apple Health. There is no Android or web version.
- Marrow is on the App Store, free: apps.apple.com/app/id6800819435.
- No Marrow account exists, so there is no hosted API to call without a user's own device.