Marrow Health
DA
Hent

Det selvhostede spejl

En lille server på hardware, du selv ejer, som holder en komplet, levende kopi af dine Marrow-data og svarer agenter, mens din telefon sover, ligger i en lomme eller er på den anden side af jorden.

Opsætning for én app ad gangen står på sin egen side under forbindelser.

Alle Marrow-guides: MCP · Selvhostet spejl · Automatiseringer · Filer · Support

Hvad det er

En lille server med åben kildekode, du kører på hardware, du selv ejer: en Raspberry Pi, en NAS, en gammel bærbar, en VPS til $5. Din telefon parres med den én gang ved at scanne en QR-kode og sender derefter hver ændring i baggrunden, mens appen er lukket. Serveren opbevarer en komplet SQLite-kopi af dine Marrow-data og leverer tretten MCP-værktøjer til læsning: telefonens syv, sleep_log og symptoms_and_mood og fire, der svarer i appens egne vendinger (daily_brief, baselines, what_changed, data_quality), så en agent kan spørge »hvordan sov jeg i denne uge« klokken 3 om natten med din telefon i en skuffe. MIT-licens: github.com/MarrowHealth/marrow-mcp.

Installér

Én Python-fil, kun 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 start udskriver den en parrings-URL og viser en QR-kode i en hvilken som helst browser på dit netværk.

Par telefonen

  1. Åbn parrings-URL'en på en hvilken som helst skærm i nærheden.
  2. I Marrow: Eksporter, Server-MCP, Par med en server, scan koden.
  3. Færdig. Telefonen begynder at sende, og siden Server viser tidspunktet for den seneste afsendelse og hvor mange poster, der venter.

Parring opretter to tokens i serverens datamappe: ét, telefonen bruger til at sende, og ét, agenter bruger til at læse. Slet en tokenfil for at rotere den.

Peg en agent på den

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

Tretten værktøjer, alle til læsning. De ni rå: health_summary, list_metrics, metric_daily, metric_samples, workouts, nutrition_log, strength_log, sleep_log, symptoms_and_mood. Og fire, der starter, hvor de rå stopper, vurderet op imod dit eget løbende normale med samme matematik som på appens Hjem-side: daily_brief (én dag: hver nøglemåling med sin værdi og appens egen vending, mad og vand mod dine mål, nattens søvn, udført træning, markeringer der er værd at nævne), baselines (dit eget normale pr. måling, den seneste værdis z og 90-dages tendensen), what_changed (den seneste uge mod de fire før: hvad der flyttede sig, hvor bemærkelsesværdigt det er for dig, forskydninger i søvn og sengetid, strømme der begyndte eller stoppede) og data_quality (hvad der er friskt, forældet eller mangler, så en agent aldrig forveksler et hul med et faktum). Hver læsning tager dage tilbage eller fra og til på telefonens kalender. Serveren viser også fire prompter (how_am_i_doing, weekly_review, doctor_prep, log_from_text) og fire ressourcer til klienter, der viser dem. Den har også tolv skriveværktøjer, som vises, når din telefon tillader dem. Fra Marrow 1.5 kan du slå Tillad AI at skrive til for din server under Eksporter, Dine forbindelser, og en AI kan så logføre måltider, vand, vægt, træninger, søvn, symptomer, humør og mål gennem den, gratis. Serveren stiller hver post i kø, og telefonen udfører den, når Marrow åbnes eller vågner, og hver eneste kan fortrydes. Opsætning til Claude Desktop, Cursor og andre står på siden om MCP. Kun URL'en ændrer sig.

Sådan når du den uden for dit LAN

Serveren taler almindelig HTTP og har ingen egen TLS. Åbn ikke porte til den uden beskyttelse. Sæt Tailscale på boksen og telefonen, og brug tailscale serve, eller sæt Cloudflare Tunnel eller en hvilken som helst reverse proxy, der afslutter HTTPS, foran. QR-koden til parring bærer den adresse, serveren oplyser: dens egen LAN-adresse eller den, du giver den med --url. Start den med den adresse, du rent faktisk vil bruge, for eksempel marrow-server --url https://pi.your-tailnet.ts.net, og par derefter.

Det, der havner på disken

Enheder: Sundhedsmålinger kommer i deres gemte SI-enheder med mærkater. Styrkesæt kommer i pund med "unit": "lb", uanset telefonens visningsindstilling, så spejlet aldrig blander enheder. Peg Grafana, DuckDB eller et cron-job direkte på databasefilen.

Fejlfinding

To tests fra den computer, din AI kører på, fortæller dig, hvor problemet er. Først: er serveren oppe? Denne kræver intet token:

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

Den svarer {"server": "marrow", "ok": true}. Dernæst: virker din agents token?

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årHvad det betyder
200 OK og en liste over værktøjerServeren virker. Tjek adressen, tokenet og servertypen (HTTP) i din agents konfiguration, og genstart agenten.
401 med bad bearer tokenForkert token. Agenter bruger mcp-tokenet og ikke det, telefonen parres med. Se nedenfor.
Forbindelse afvist eller en timeoutServeren kører ikke, porten er forkert, eller en firewall på boksen blokerer port 8800. Med Docker skal du tjekke portmappingen 8800:8800.

Hvornår du skal vælge denne frem for de andre

Vælg spejlet, når din agent har brug for dataene, mens din telefon sover eller er væk, eller når du vil have en database, du kan forespørge, frem for filer. Vælg MCP-serveren på telefonen, når din agent kører tæt på telefonen, og du ikke vil have noget andet at vedligeholde. Vælg automatiseringer, når du allerede har et sted, hvor data skal lande.