Marrow Health
HU
Letöltés

A saját üzemeltetésű tükör

Egy kis szerver a saját hardveredön, amely a Marrow-adataid teljes, élő másolatát tartja, és válaszol az ügynököknek, amíg a telefonod alszik, a zsebedben van, vagy a világ másik felén.

Az egyes appok beállítása a saját oldalán található a kapcsolatok alatt.

Az összes Marrow-útmutató: MCP · Saját üzemeltetésű tükör · Automatizálások · Fájlok · Támogatás

Mi ez

Egy kis nyílt forráskódú szerver, amelyet a saját hardveredön futtatsz: egy Raspberry Pi-n, egy NAS-on, egy régi laptopon, egy $5-os VPS-en. A telefonod egyszer párosul vele egy QR-kód beolvasásával, aztán minden változást a háttérben küld, zárt appal. A szerver a Marrow-adataid teljes SQLite-másolatát tartja, és tizenhárom MCP-eszközt szolgál ki olvasásra: a telefon hetét, a sleep_log és a symptoms_and_mood eszközt, valamint négyet, amelyek az app saját fogalmaival válaszolnak (daily_brief, baselines, what_changed, data_quality), így egy ügynök hajnali 3-kor is megkérdezheti: „hogyan aludtam ezen a héten”, miközben a telefonod egy fiókban van. MIT licenc: github.com/MarrowHealth/marrow-mcp.

Telepítés

Egyetlen Python-fájl, csak a standard könyvtárral, Python 3.10 vagy újabb:

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

Vagy Docker-rel:

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

Az első indításkor kiír egy párosítási URL-t, és QR-kódot mutat a hálózatod bármelyik böngészőjében.

A telefon párosítása

  1. Nyisd meg a párosítási URL-t egy közeli képernyőn.
  2. A Marrow-ban: Exportálás, Szerver MCP, Párosítás szerverrel, olvasd be a kódot.
  3. Kész. A telefon elkezd küldeni, és a Szerver oldal megmutatja az utolsó küldés idejét és hogy hány rekord vár.

A párosítás két tokent hoz létre a szerver adatkönyvtárában: az egyiket a telefon használja a küldéshez, a másikat az ügynökök az olvasáshoz. Egy token cseréjéhez töröld a token fájlját.

Irányíts rá egy ügynököt

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

Tizenhárom eszköz, mind olvasásra. A kilenc nyers: health_summary, list_metrics, metric_daily, metric_samples, workouts, nutrition_log, strength_log, sleep_log, symptoms_and_mood. És négy, amely ott kezdődik, ahol a nyersek véget érnek, a saját, hátrafelé számolt normáloddal összevetve, ugyanazzal a matematikával, amelyet az app Kezdőlapja használ: daily_brief (egy nap: minden kulcsmutató az értékével és az app saját megfogalmazásával, étel és víz a célokhoz mérve, a tegnap éjszakai alvás, az elvégzett edzés, a megemlítésre érdemes jelzések), baselines (a saját normálod mutatónként, a legutóbbi érték z-értéke és a 90 napos trend), what_changed (az elmúlt hét az azt megelőző négyhez képest: mi mozdult, mennyire figyelemre méltó ez nálad, alvás és lefekvés eltolódásai, adatfolyamok, amelyek megindultak vagy leálltak) és data_quality (mi friss, mi elavult vagy hiányzik, így az ügynök sosem téveszt össze egy hiányt egy ténnyel). Minden olvasás fogad visszamenőleges napokat vagy kezdő- és végdátumot a telefon naptára szerint. A szerver négy promptot (how_am_i_doing, weekly_review, doctor_prep, log_from_text) és négy erőforrást is listáz az ezeket megjelenítő klienseknek. Tizenkét író eszközt is hordoz, amelyek akkor jelennek meg, ha a telefonod engedélyezi őket. A Marrow 1.5-től kapcsold be a szerveredhez az AI-írás engedélyezése opciót az Exportálás, Kapcsolataid alatt, és egy AI naplózhat rajta át étkezéseket, vizet, testsúlyt, edzéseket, alvást, tüneteket, hangulatot és célokat, ingyen. A szerver sorba állítja az egyes bejegyzéseket, a telefon pedig akkor alkalmazza őket, amikor a Marrow megnyílik vagy felébred, és mindegyik visszavonható. A Claude Desktop, a Cursor és mások beállítása az MCP oldalon található. Csak az URL változik.

Elérés a LAN-on kívülről

A szerver sima HTTP-t beszél, és nincs saját TLS-e. Ne irányítsd át nyersen a portját. Tedd fel a Tailscale-t a gépre és a telefonra, és használd a tailscale serve parancsot, vagy tegyél elé egy Cloudflare Tunnel-t vagy bármilyen fordított proxyt, amely lezárja a HTTPS-t. A párosítási QR azt a címet hordozza, amelyet a szerver hirdet: a saját LAN-címét, vagy azt, amelyet a --url kapcsolóval megadsz neki. Azzal a címmel indítsd, amelyet ténylegesen használni fogsz, például marrow-server --url https://pi.your-tailnet.ts.net, aztán párosíts.

Mi kerül a lemezre

Mértékegységek: az egészségmutatók a tárolt SI-egységeikben érkeznek, címkékkel. Az erőnléti sorozatok fontban érkeznek "unit": "lb" jelöléssel, a telefon megjelenítési beállításától függetlenül, így a tükör sosem keveri a mértékegységeket. Irányítsd közvetlenül az adatbázisfájlra a Grafana-t, a DuckDB-t vagy egy cron-feladatot.

Hibaelhárítás

Két teszt azon a számítógépen, amelyen az AI fut, megmondja, hol a probléma. Először: fut a szerver? Ehhez nem kell token:

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

Ezt válaszolja: {"server": "marrow", "ok": true}. Aztán: működik az ügynököd tokenje?

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"}'
Mit kapszMit jelent
200 OK és egy eszközlistaA szerver működik. Ellenőrizd a címet, a tokent és a szerver-típust (HTTP) az ügynököd konfigurációjában, aztán indítsd újra az ügynököt.
401 a bad bearer token üzenettelRossz token. Az ügynökök az mcp tokent használják, nem azt, amellyel a telefon párosul. Lásd alább.
Kapcsolat elutasítva vagy időtúllépésA szerver nem fut, rossz a port, vagy a gépen egy tűzfal blokkolja a 8800-as portot. Docker esetén ellenőrizd a 8800:8800 portleképezést.

Mikor válaszd ezt a többi helyett

A tükröt válaszd, ha az ügynöködnek akkor is kell az adat, amikor a telefonod alszik vagy távol van, vagy ha fájlok helyett lekérdezhető adatbázist szeretnél. A telefonon futó MCP-szervert válaszd, ha az ügynököd a telefon közelében fut, és nem akarsz mást karbantartani. Az automatizálásokat válaszd, ha már van helyed, ahová az adatnak meg kell érkeznie.