Marrow Health
NB
Last ned

Det selvdrevne speilet

En liten server på maskinvare du eier som holder en komplett, levende kopi av Marrow-dataene dine og svarer agenter mens telefonen sover, ligger i en lomme eller er på den andre siden av verden.

Oppsett for én app om gangen står på sin egen side under tilkoblinger.

Alle Marrow-guider: MCP · Selvdrevet speil · Automatiseringer · Filer · Brukerstøtte

Hva det er

En liten server med åpen kildekode som du kjører på maskinvare du eier: en Raspberry Pi, en NAS, en gammel bærbar, en VPS til $5. Telefonen din kobles sammen med den én gang ved å skanne en QR-kode, og sender deretter hver endring i bakgrunnen, med appen lukket. Serveren holder en komplett SQLite-kopi av Marrow-dataene dine og tilbyr tretten MCP-verktøy for lesing: telefonens sju, sleep_log og symptoms_and_mood, og fire som svarer på appens egne premisser (daily_brief, baselines, what_changed, data_quality), slik at en agent kan spørre «hvordan sov jeg denne uken» klokken 03 med telefonen i en skuff. MIT-lisens: github.com/MarrowHealth/marrow-mcp.

Installer

Én Python-fil, bare standardbiblioteket, Python 3.10 eller nyere:

pip install marrow-mcp
marrow-server         # or: python3 marrow_server.py

Eller med Docker:

git clone https://github.com/MarrowHealth/marrow-mcp
cd marrow-mcp
docker compose up -d

Ved første oppstart skriver den ut en paringsadresse og viser en QR-kode i en hvilken som helst nettleser på nettverket ditt.

Koble sammen telefonen

  1. Åpne paringsadressen på en hvilken som helst skjerm i nærheten.
  2. I Marrow: Eksporter, Server-MCP, Koble sammen med en server, skann koden.
  3. Ferdig. Telefonen begynner å sende, og Server-siden viser tidspunktet for siste sending og hvor mange poster som venter.

Sammenkoblingen lager to tokens i serverens datamappe: ett telefonen bruker til å sende, ett agenter bruker til å lese. Slett en tokenfil for å rotere den.

Pek en agent mot den

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

Tretten verktøy, alle lesing. De ni rå: health_summary, list_metrics, metric_daily, metric_samples, workouts, nutrition_log, strength_log, sleep_log, symptoms_and_mood. Og fire som begynner der de rå slutter, målt mot ditt eget normalnivå over tid med den samme regnemåten som Hjem i appen bruker: daily_brief (én dag: hver nøkkelmåling med verdien og appens egen formulering, mat og vann mot målene dine, gårsnattens søvn, gjennomført trening, flagg som er verdt å nevne), baselines (ditt eget normalnivå per måling, siste verdis z og 90-dagerstrenden), what_changed (den siste uken mot de fire før: hva som har endret seg, hvor bemerkelsesverdig det er for deg, endringer i søvn og leggetid, datastrømmer som begynte eller sluttet) og data_quality (hva som er ferskt, utdatert eller mangler, så en agent aldri forveksler et hull med et faktum). Hver lesing tar et antall dager tilbake eller fra og til etter telefonens kalender. Serveren lister også fire prompter (how_am_i_doing, weekly_review, doctor_prep, log_from_text) og fire ressurser for klienter som viser dem. Den har også tolv skriveverktøy, som listes når telefonen din tillater dem. Fra Marrow 1.5 slår du på Tillat AI-skriving for serveren din i Eksporter, Tilkoblingene dine, og en AI kan loggføre måltider, vann, vekt, treningsøkter, søvn, symptomer, humør og mål gjennom den, gratis. Serveren legger hver oppføring i kø, og telefonen utfører den når Marrow åpnes eller våkner, og hver kan angres. Oppsett for Claude Desktop, Cursor og andre står på MCP-siden. Bare URL-en endres.

Å nå den utenfra lokalnettet ditt

Serveren snakker vanlig HTTP og har ingen egen TLS. Ikke videresend porter til den uten beskyttelse. Sett Tailscale på maskinen og telefonen og bruk tailscale serve, eller sett Cloudflare Tunnel eller en hvilken som helst reverse proxy som avslutter HTTPS foran den. Paring-QR-koden bærer adressen serveren annonserer: sin egen adresse på lokalnettet, eller den du gir den med --url. Start den med adressen du faktisk skal bruke, for eksempel marrow-server --url https://pi.your-tailnet.ts.net, og koble deretter sammen.

Det som havner på disken

Enheter: Helsemålinger kommer i sine lagrede SI-enheter med merking. Styrkesett kommer i pund med "unit": "lb" uansett visningsinnstillingen på telefonen, så speilet blander aldri enheter. Pek Grafana, DuckDB eller en cron-jobb rett mot databasefilen.

Feilsøking

To tester fra datamaskinen AI-en din kjører på, forteller deg hvor problemet er. Først: er serveren oppe? Denne trenger ikke token:

curl http://<server-ip>:8800/health

Den svarer {"server": "marrow", "ok": true}. Deretter: fungerer tokenet til agenten din?

curl -i http://<server-ip>:8800/mcp \
  -H "Authorization: Bearer <mcp token>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Det du fårHva det betyr
200 OK og en liste over verktøyServeren fungerer. Sjekk adressen, tokenet og servertypen (HTTP) i konfigurasjonen til agenten din, og start deretter agenten på nytt.
401 med bad bearer tokenFeil token. Agenter bruker mcp-tokenet, ikke det telefonen kobles sammen med. Se nedenfor.
Tilkobling avvist eller tidsavbruddServeren kjører ikke, porten er feil, eller en brannmur på maskinen blokkerer port 8800. Med Docker sjekker du portmappingen 8800:8800.

Når du bør velge denne fremfor de andre

Velg speilet når agenten din trenger dataene mens telefonen sover eller er borte, eller når du vil ha en database du kan spørre i, i stedet for filer. Velg MCP-serveren på telefonen når agenten din kjører nær telefonen og du ikke vil ha noe annet å vedlikeholde. Velg automatiseringer når du allerede har et sted dataene skal havne.