The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Marrow listing page.
Give your AI agents read-only access to your own Apple Health data.
Marrow is a free iOS app that tracks 178 health data series - 172 Apple Health types plus its own meal diary and set-by-set weightlifting log. This repo is its self-hosted companion server: one Python file, standard library only, that keeps a SQLite mirror of your data on hardware you own and serves it over the Model Context Protocol so agents can query it 24/7, phone in your pocket.
Nothing here talks to a cloud. Data flows phone → your machine, full stop.

or
Open the pairing URL on any screen, then in Marrow: Server → Pair with a server → scan. From then on the app's background pushes keep the mirror current with the app closed.
The server speaks MCP over Streamable HTTP (JSON-RPC 2.0, protocol version
2025-06-18), authenticated with a bearer token it generates on first run and
prints alongside the pairing link.
Claude Code
Claude Desktop, one click
Download marrow.mcpb,
double-click it, and Claude Desktop installs the extension and asks for the
URL and token. No terminal involved. (The bundle is a tiny zero-dependency
bridge in mcpb/; it forwards Claude's stdio to your Marrow URL and nothing
else.)
Claude Desktop (manual), Cursor, or anything using an mcp.json
Check it by hand
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 in the mirror, 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 | The meal diary: every logged food with full nutrient detail, by day |
strength_log | Every lifting set with estimated 1RM, per-exercise progression, and volume per muscle group |
Then ask your agent things like "how did my sleep change once I started training in the mornings?" and let it go and look.
This server is one of four, and you do not need it to give agents access:
http://<phone-ip>:21212/mcp, answering while the app is running. Richest
data, zero extra hardware.All four are in the free tier. Setup for all of them: https://skeletonarmy.tech/mcp.
tailscale serve, Caddy, or an equivalent so the transport is HTTPS and the
device is authenticated before the bearer token is ever presented.--data: .app-token for the phone's pushes and
.mcp-token for agents. Rotating one does not disturb the other.Marrow is in TestFlight beta (0.2.0, build 85), iOS 17+, and requires Apple Health. Ask for an invite.
The iOS app is closed source; this server is not, because you should be able to read anything you are asked to run on your own hardware.
Listed in the official MCP registry
as tech.skeletonarmy/marrow, verified by DNS on skeletonarmy.tech.
mcp-name: tech.skeletonarmy/marrow
MIT. See LICENSE.