Marrow Health
NL
Download

Verbind een agent met Marrow

Marrow biedt je Apple Health-gegevens aan via het Model Context Protocol, vanaf je eigen iPhone of je eigen server. Zeven tools om te lezen op de telefoon, dertien op je eigen server (vier ervan antwoorden in de eigen termen van de app, afgezet tegen jouw eigen normaal), authenticatie met een bearertoken, nergens een account. Deze pagina is de hele installatie.

Een agent op een andere computer, of antwoorden nodig terwijl de telefoon slaapt? Koppel de zelfgehoste mirror (pip install marrow-mcp): die antwoordt 24/7 voor Claude Code, Cursor en OpenClaw. Kom je hier vanuit de ingebouwde koppeling van Claude of ChatGPT, dan zie je hier wat Marrow doet dat zij niet doen.

De installatie voor één app tegelijk, Claude Code, Cursor, Codex en meer, staat op een eigen pagina onder verbindingen.

Laat je agent het doen

Ik wil mijn eigen Apple Health-gegevens met jou verbinden. Marrow is een gratis iOS-app die ze aanbiedt via MCP, zonder account en zonder dat daarvoor een abonnement nodig is. Hij staat in de App Store: https://apps.apple.com/app/id6800819435. Loop me door het hele proces: de app installeren, de server aanzetten onder Exporteer en dan Lokale MCP, en de URL en het bearertoken die hij me toont toevoegen aan jouw MCP-configuratie als Streamable HTTP-server. Kun je die configuratie niet zelf bewerken, vertel me dan precies welk bestand het is en wat ik moet plakken. Documentatie voor het instellen: https://marrowhealthapp.com/mcp. Roep als het verbonden is health_summary aan voor de laatste 7 dagen en vertel me wat opvalt.

1. Zet de server aan

Hij staat standaard uit. In de app: Exporteer → Lokale MCP, en zet dan de server aan. Je krijgt een URL, een token en een QR-code. De server bindt alleen aan je lokale netwerk, en de app toont het exacte adres waarop hij luistert.

2. Wijs je client ernaartoe

Vervang <phone-ip> en <token> door wat de app je toont.

Claude Code

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

Claude Desktop, met één klik

Download marrow.mcpb op je computer en dubbelklik erop. Claude Desktop installeert de extensie en vraagt om de URL en het token hierboven. Geen terminal nodig.

Claude Desktop (handmatig), Cursor of elke client die een mcp.json gebruikt

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

Controleer het met de 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"}'

De tools

Leestools zijn er altijd. Schrijftools zijn een tweede schakelaar. Vanaf Marrow 1.5 toont de server van de telefoon dezelfde twaalf schrijftools als Cloud-MCP (log_meal, log_water, log_weight, log_workout, log_strength, log_sleep, log_symptom, log_mood, edit_entry, delete_entry, set_targets, undo_entry) zodra je onder Lokale MCP AI-schrijftoegang toestaan aanzet. Ze worden meteen op de telefoon toegepast en naar Apple Health geschreven, en elk ervan kan ongedaan worden gemaakt. Staat het uit, dan kan de server alleen lezen.

ToolGeeft terug
health_summaryRecente dagen over activiteit, hart, slaap en voeding
list_metricsElke bijgehouden meetwaarde, met eenheden en dekking
metric_dailyDagwaarden voor elke meetwaarde, tot 400 dagen
metric_samplesRuwe records met tijdstempels en bronapparaten
workoutsWork-outs uit elke bron. Op de telefoon ook de krachttrainingen van Marrow set voor set
nutrition_logVoedingsdagboek met de volledige uitsplitsing van voedingsstoffen
strength_logElke krachtset met het settype, geschat 1RM per oefening, volume per spiergroep. Opwarmsets tellen nooit mee voor volume of records
sleep_logEén nacht per dag waarop je wakker wordt: bedtijd, wektijd, uren geslapen, minuten per fase (zelfgehoste mirror)
symptoms_and_moodSymptomen met hun ernst, en items van Gemoedstoestand met gevoelens en waar ze over gingen (zelfgehoste mirror)

Nog vier op de zelfgehoste mirror en op Cloud-MCP. Ze beginnen waar de ruwe leestools ophouden: elke waarde wordt afgezet tegen je eigen voortschrijdende normaal met dezelfde berekening als de Home-pagina van de app (de dag zelf uitgezonderd), zodat een agent begint met een lezing die al voor jou klopt in plaats van een getal te beoordelen tegen de bevolking.

ToolGeeft terug
daily_briefEén dag: elke belangrijke meetwaarde met zijn waarde en de eigen formulering van de app (normaal voor jou, boven je normaal, ver onder je normaal), voeding en water ten opzichte van je doelen, de slaap van afgelopen nacht, gedane training, stemming en symptomen, en signalen die het noemen waard zijn
baselinesJe eigen normaal per meetwaarde: gemiddelde en spreiding over het venster, de z en formulering van de laatste waarde, het 7-daagse gemiddelde en de 90-daagse trend per maand
what_changedDe laatste week ten opzichte van de vier ervoor: wat bewoog en hoe opvallend dat voor jou is, voeding, training, verschuivingen in slaap en bedtijd, reeksen die begonnen of stopten met binnenkomen
data_qualityWat de mirror bevat en hoe vers het is: per meetwaarde de laatste dag, dekking, frequentie, bronnen en of het verouderd is, zodat een agent een gat nooit voor een feit aanziet

De server op het apparaat biedt de eerste zeven ruwe tools plus daily_brief en baselines (negen leestools). De zelfgehoste mirror biedt alle dertien, net als de gehoste kopie van Cloud-MCP. Elke leestool op de mirror accepteert dagen terug of van en tot op de kalender van de telefoon, en de mirror biedt ook vier prompts (how_am_i_doing, weekly_review, doctor_prep, log_from_text) en vier resources aan clients die ze tonen. Ruwe samples bevatten slaapfases en ernst van symptomen.

Achter list_metrics zitten 172 Apple Health-meetwaarden, plus de eigen dagboek- en krachtgegevens van Marrow achter nutrition_log en strength_log, over activiteit, hart, slaap, lichaam, ademhaling, mobiliteit, gehoor, voeding, geest, symptomen, cyclus en gewoonten. Machineleesbare versie van deze pagina: tools.json.

Bereikbaar blijven als de telefoon dat niet is

De server op het apparaat antwoordt zolang de app draait. Voor toegang 24/7 koppel je een zelfgehoste mirror: één Python-stdlib-bestand op een Pi, NAS of oude laptop. De pushes van de telefoon op de achtergrond houden hem actueel, en hij biedt hetzelfde MCP-oppervlak op http://<server-ip>:8800/mcp met een eigen token. De tools op de telefoon gebruiken de meetwaardesleutels van de app (active_energy, heart_rate_variability). De server accepteert zowel die als de korte namen van Apple (active_energy_burned), zodat een agent tussen beide kan wisselen zonder opnieuw te leren. Hij is open source en te installeren:

pip install marrow-mcp
marrow-server

Bron: github.com/MarrowHealth/marrow-mcp. Vermeld in het officiële MCP-register als tech.skeletonarmy/marrow.

Gebruik geen port-forwarding om een van beide servers aan het open internet bloot te stellen. Beide zijn ontworpen voor een lokaal netwerk of een tailnet. Heb je toegang op afstand nodig, zet er dan tailscale serve of iets vergelijkbaars voor, zodat het transport HTTPS is en het apparaat is geauthenticeerd voordat het bearertoken ooit wordt gezien.

Problemen oplossen

Begin met de test hieronder, uitgevoerd vanaf de computer waarop je AI draait. Hij vertelt je aan welke kant het probleem zit. Gebruik het adres en het token van de pagina van de verbinding in Marrow, met Marrow open op de telefoon.

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"}'
Wat je krijgtWat het betekent
HTTP/1.1 200 OK en een lijst met toolsDe telefoon werkt. Het probleem zit in de instellingen van je app: het adres, het token, of een servertype anders dan HTTP (Streamable HTTP). Pas de configuratie aan en start de app opnieuw.
401 UnauthorizedHet token is onjuist, of deze verbinding staat uit in Marrow. Elke verbinding bij Je verbindingen heeft een eigen token, en als je er een uitzet, wordt die app buitengesloten terwijl de andere blijven werken. Zet hem aan, of kopieer zijn token opnieuw.
404 Not Found met use POST /mcpHet pad klopt niet. Het adres eindigt op /mcp.
Verbinding geweigerd, of geen antwoord totdat de time-out verstrijktDe computer kan de telefoon niet bereiken. Loop de lijst hieronder langs.

Instellen en oplossingen voor één app tegelijk, Claude Code, Cursor, VS Code en meer, staan onder verbindingen.

Wat het kost

Niets. Toegang voor agents zit in de gratis variant, samen met synchronisatie op de achtergrond, geautomatiseerde export, export naar CSV en JSON en het scannen van barcodes. Health Auto Export bracht een MCP-server uit vóór Marrow, en die is goed, maar die van hen vraagt om een Premium-abonnement. Dat verschil, niet de eerste zijn, is de claim die het waard is om te maken.

Vereisten