Marrow Health
IT
Scarica

Collega un agente a Marrow

Marrow serve i tuoi dati di Apple Health tramite il Model Context Protocol, dal tuo iPhone o dal tuo server. Sette strumenti in sola lettura sul telefono, tredici sul tuo server (quattro rispondono con i termini propri dell'app, valutati rispetto alla tua normalità), autenticazione con token bearer, nessun account da nessuna parte. Questa pagina è l'intera configurazione.

Un agente su un'altra macchina, o ti servono risposte a telefono in standby? Abbina il mirror self-hosted (pip install marrow-mcp): risponde 24 ore su 24 a Claude Code, Cursor e OpenClaw. Se sei arrivato qui dal connettore integrato di Claude o ChatGPT, ecco che cosa fa lui che quelli non fanno.

La configurazione per ogni singola app, Claude Code, Cursor, Codex e altre, è nella sua pagina in connessioni.

Lascia fare al tuo agente

Voglio collegarti i miei dati di Apple Health. Marrow è un'app gratuita per iOS che li serve tramite MCP, senza account e senza bisogno di un abbonamento per questo. È sull'App Store: https://apps.apple.com/app/id6800819435. Guidami in tutto il procedimento: installare l'app, attivare il server in Esporta e poi MCP locale, e aggiungere l'URL e il token bearer che mi mostra alla tua configurazione MCP come server Streamable HTTP. Se non puoi modificare tu quella configurazione, dimmi il file esatto e che cosa incollare. Documentazione di configurazione: https://marrowhealthapp.com/mcp. Quando è collegato, chiama health_summary per gli ultimi 7 giorni e dimmi che cosa spicca.

1. Attiva il server

Arriva disattivato. Nell'app: Esporta → MCP locale, poi attiva il server. Ottieni un URL, un token e un codice QR. Il server si lega solo alla tua rete locale, e l'app mostra l'indirizzo esatto su cui è in ascolto.

2. Punta il tuo client su di esso

Sostituisci <phone-ip> e <token> con ciò che ti mostra l'app.

Claude Code

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

Claude Desktop, con un clic

Scarica marrow.mcpb sul tuo computer e fai doppio clic. Claude Desktop installa l'estensione e chiede l'URL e il token qui sopra. Nessun terminale.

Claude Desktop (manuale), Cursor, o qualsiasi client che usa un mcp.json

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

Verificalo a mano

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

Gli strumenti

Le letture ci sono sempre. Le scritture sono un secondo interruttore. Da Marrow 1.5 il server del telefono elenca gli stessi dodici strumenti di scrittura dell'MCP cloud (log_meal, log_water, log_weight, log_workout, log_strength, log_sleep, log_symptom, log_mood, edit_entry, delete_entry, set_targets, undo_entry) una volta attivato Consenti scrittura all'IA sotto MCP locale, applicati subito sul telefono e scritti in Apple Health, ciascuno annullabile. Se è disattivato, il server è in sola lettura.

StrumentoRestituisce
health_summaryGiorni recenti tra attività, cuore, sonno e alimentazione
list_metricsOgni metrica tracciata, con unità e copertura
metric_dailyValori giornalieri per qualsiasi metrica, fino a 400 giorni
metric_samplesRecord grezzi con orari e dispositivi di origine
workoutsAllenamenti da ogni fonte. Sul telefono anche le sessioni di forza di Marrow serie per serie
nutrition_logDiario alimentare con la ripartizione completa dei nutrienti
strength_logOgni serie di sollevamento con il suo tipo, il massimale stimato per esercizio, il volume per gruppo muscolare. Il riscaldamento non conta mai per volume o record
sleep_logUna notte per giorno di risveglio: ora di coricarsi, ora di sveglia, ore di sonno, minuti per fase (mirror self-hosted)
symptoms_and_moodSintomi con la loro gravità, e voci di Stato d'animo con emozioni e a che cosa si riferivano (mirror self-hosted)

Altri quattro sul mirror self-hosted e sull'MCP cloud. Partono da dove si fermano le letture grezze: ogni valore è valutato rispetto alla tua normalità recente con gli stessi calcoli della pagina Home dell'app (escluso il giorno stesso), così un agente parte da una lettura già vera per te invece di giudicare un numero rispetto alla popolazione.

StrumentoRestituisce
daily_briefUn giorno: ogni metrica chiave con il suo valore e l'espressione propria dell'app (nella tua norma, sopra la tua norma, ben sotto la tua norma), cibo e acqua rispetto ai tuoi obiettivi, il sonno della notte scorsa, l'allenamento fatto, umore e sintomi, e i segnali degni di nota
baselinesLa tua normalità per ogni metrica: media e dispersione nella finestra, lo z e l'espressione dell'ultimo valore, la media a 7 giorni e la tendenza a 90 giorni al mese
what_changedL'ultima settimana rispetto alle quattro precedenti: che cosa si è mosso e quanto è notevole per te, cibo, allenamento, spostamenti di sonno e orario di coricarsi, flussi che hanno iniziato o smesso di arrivare
data_qualityChe cosa contiene il mirror e quanto è aggiornato: per ogni metrica l'ultimo giorno, la copertura, la cadenza, le fonti e se è diventata vecchia, così un agente non scambia mai un vuoto per un fatto

Il server sul dispositivo offre i primi sette strumenti grezzi più daily_brief e baselines (nove letture). Il mirror self-hosted li offre tutti e tredici, come la copia ospitata dell'MCP cloud. Ogni lettura sul mirror accetta i giorni indietro oppure da e a sul calendario del telefono, e il mirror offre anche quattro prompt (how_am_i_doing, weekly_review, doctor_prep, log_from_text) e quattro risorse ai client che li mostrano. I campioni grezzi portano le fasi del sonno e le gravità dei sintomi.

Dietro list_metrics ci sono 172 metriche di Apple Health, più i dati nativi di Marrow, diario e forza, dietro nutrition_log e strength_log, che coprono attività, cuore, sonno, corpo, respirazione, mobilità, udito, alimentazione, mente, sintomi, ciclo e abitudini. Versione leggibile dalle macchine di questa pagina: tools.json.

Tenerlo attivo quando il telefono non lo è

Il server sul dispositivo risponde finché l'app è in esecuzione. Per l'accesso 24 ore su 24 abbina un mirror self-hosted: un solo file Python con la sola libreria standard su un Pi, un NAS o un vecchio portatile. Gli invii in background del telefono lo tengono aggiornato, e offre la stessa interfaccia MCP su http://<server-ip>:8800/mcp con un suo token. Gli strumenti del telefono usano le chiavi delle metriche dell'app (active_energy, heart_rate_variability). Il server accetta sia quelle sia i nomi brevi di Apple (active_energy_burned), così un agente può passare dagli uni agli altri senza reimparare. È open source e installabile:

pip install marrow-mcp
marrow-server

Sorgente: github.com/MarrowHealth/marrow-mcp. Elencato nel registro MCP ufficiale come tech.skeletonarmy/marrow.

Non fare port-forward di nessuno dei due server verso internet aperto. Entrambi sono pensati per una LAN o un tailnet. Se ti serve l'accesso remoto, mettilo dietro tailscale serve o un equivalente, così il trasporto è HTTPS e il dispositivo è autenticato prima ancora che si veda il token bearer.

Risoluzione dei problemi

Parti dal test qui sotto, eseguito dal computer su cui gira la tua IA. Ti dice da che parte sta il problema. Usa l'indirizzo e il token dalla pagina della connessione in Marrow, con Marrow aperto sul telefono.

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"}'
Che cosa ottieniChe cosa significa
HTTP/1.1 200 OK e un elenco di strumentiIl telefono funziona. Il problema è nelle impostazioni della tua app: l'indirizzo, il token, o un tipo di server diverso da HTTP (Streamable HTTP). Correggi la configurazione e riavvia l'app.
401 UnauthorizedIl token è sbagliato, oppure questa connessione è disattivata in Marrow. Ogni connessione in Le tue connessioni ha il proprio token, e disattivarne una esclude quell'app mentre le altre continuano a funzionare. Attivala, oppure copia di nuovo il suo token.
404 Not Found con use POST /mcpIl percorso è sbagliato. L'indirizzo termina con /mcp.
Connessione rifiutata, o nessuna risposta fino al timeoutIl computer non riesce a raggiungere il telefono. Passa in rassegna l'elenco qui sotto.

La configurazione e le soluzioni per ogni singola app, Claude Code, Cursor, VS Code e altre, sono in connessioni.

Quanto costa

Niente. L'accesso per gli agenti è nel livello gratuito, insieme a sincronizzazione in background, esportazione automatica, esportazione CSV e JSON e scansione dei codici a barre. Health Auto Export ha rilasciato un server MCP prima di Marrow, ed è buono, ma il suo richiede un abbonamento Premium. Questa differenza, non il primato, è l'affermazione che vale la pena fare.

Requisiti