Marrow Health
DE
Download

Der selbst gehostete Spiegel

Ein kleiner Server auf Hardware, die dir gehört, der eine vollständige Live-Kopie deiner Marrow-Daten hält und Agenten antwortet, während dein Handy schläft, in der Tasche steckt oder am anderen Ende der Welt ist.

Die Einrichtung für jede einzelne App steht auf der jeweils eigenen Seite unter Verbindungen.

Alle Marrow-Anleitungen: MCP · Selbst gehosteter Spiegel · Automationen · Dateien · Support

Was es ist

Ein kleiner Open-Source-Server, den du auf Hardware betreibst, die dir gehört: ein Raspberry Pi, ein NAS, ein alter Laptop, ein VPS für $5. Dein Handy koppelt sich einmal per QR-Code mit ihm und pusht dann jede Änderung im Hintergrund, bei geschlossener App. Der Server hält eine vollständige SQLite-Kopie deiner Marrow-Daten und stellt dreizehn MCP-Tools zum Lesen bereit: die sieben des Handys, sleep_log und symptoms_and_mood und vier, die in den eigenen Begriffen der App antworten (daily_brief, baselines, what_changed, data_quality), sodass ein Agent um 3 Uhr nachts „Wie habe ich diese Woche geschlafen“ fragen kann, während dein Handy in der Schublade liegt. MIT-Lizenz: github.com/MarrowHealth/marrow-mcp.

Installieren

Eine Python-Datei, nur Standardbibliothek, Python 3.10 oder neuer:

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

Oder mit Docker:

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

Beim ersten Start gibt er eine Kopplungs-URL aus und zeigt in jedem Browser in deinem Netzwerk einen QR-Code.

Das Handy koppeln

  1. Öffne die Kopplungs-URL auf einem Bildschirm in deiner Nähe.
  2. In Marrow: Exportieren, Server-MCP, Mit einem Server koppeln, scanne den Code.
  3. Fertig. Das Handy beginnt zu pushen, und die Seite „Server“ zeigt die Zeit des letzten Pushes und wie viele Datensätze warten.

Beim Koppeln entstehen zwei Tokens im Datenverzeichnis des Servers: eines, mit dem das Handy pusht, eines, mit dem Agenten lesen. Lösche eine Token-Datei, um es zu rotieren.

Einen Agenten darauf richten

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

Dreizehn Tools, alle lesend. Die neun rohen: health_summary, list_metrics, metric_daily, metric_samples, workouts, nutrition_log, strength_log, sleep_log, symptoms_and_mood. Und vier, die da ansetzen, wo die rohen aufhören, gemessen an deinem eigenen gleitenden Normalwert mit derselben Rechnung wie in der Übersicht der App: daily_brief (ein Tag: jede wichtige Metrik mit ihrem Wert und der eigenen Formulierung der App, Essen und Wasser im Vergleich zu deinen Zielen, der Schlaf der letzten Nacht, das absolvierte Training, Hinweise, die erwähnenswert sind), baselines (dein eigener Normalwert pro Metrik, z-Wert des letzten Werts und der 90-Tage-Trend), what_changed (die letzte Woche gegen die vier davor: was sich bewegt hat, wie auffällig das für dich ist, Veränderungen bei Schlaf und Schlafenszeit, Datenströme, die begonnen oder aufgehört haben) und data_quality (was frisch, veraltet oder fehlend ist, sodass ein Agent eine Lücke nie für eine Tatsache hält). Jeder Lesezugriff nimmt Tage zurück oder von und bis im Kalender des Handys entgegen. Der Server listet außerdem vier Prompts (how_am_i_doing, weekly_review, doctor_prep, log_from_text) und vier Ressourcen für Clients, die sie anzeigen. Er hat auch zwölf Schreib-Tools, die aufgelistet werden, sobald dein Handy sie erlaubt. Ab Marrow 1.5 schaltest du KI-Schreibzugriff erlauben für deinen Server unter Exportieren, Deine Verbindungen ein, und eine KI kann darüber Mahlzeiten, Wasser, Gewicht, Workouts, Schlaf, Symptome, Stimmung und Ziele eintragen, kostenlos. Der Server reiht jeden Eintrag ein, und das Handy setzt ihn um, wenn Marrow geöffnet wird oder aufwacht, und jeder lässt sich rückgängig machen. Die Einrichtung für Claude Desktop, Cursor und andere steht auf der MCP-Seite. Nur die URL ändert sich.

Von außerhalb deines LANs erreichen

Der Server spricht einfaches HTTP und hat kein eigenes TLS. Leite keinen Port ungeschützt weiter. Installiere Tailscale auf dem Rechner und dem Handy und nutze tailscale serve, oder stelle Cloudflare Tunnel oder einen beliebigen Reverse-Proxy davor, der HTTPS terminiert. Der Kopplungs-QR enthält die Adresse, die der Server bekannt gibt: seine eigene LAN-Adresse oder die, die du ihm mit --url gibst. Starte ihn mit der Adresse, die du tatsächlich nutzen wirst, zum Beispiel marrow-server --url https://pi.your-tailnet.ts.net, und koppele dann.

Was auf der Festplatte landet

Einheiten: Gesundheitsmetriken kommen in ihren gespeicherten SI-Einheiten mit Beschriftung an. Kraftsätze kommen in Pfund mit "unit": "lb" an, unabhängig von der Anzeigeeinstellung des Handys, damit der Spiegel nie Einheiten mischt. Richte Grafana, DuckDB oder einen Cron-Job direkt auf die Datenbankdatei.

Fehlerbehebung

Zwei Tests von dem Rechner aus, auf dem deine KI läuft, sagen dir, wo das Problem liegt. Erstens: Läuft der Server? Dieser Test braucht kein Token:

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

Er antwortet mit {"server": "marrow", "ok": true}. Dann: Funktioniert das Token deines Agenten?

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"}'
Was du bekommstWas es bedeutet
200 OK und eine Liste von ToolsDer Server funktioniert. Prüfe die Adresse, das Token und den Servertyp (HTTP) in der Konfiguration deines Agenten und starte den Agenten dann neu.
401 mit bad bearer tokenFalsches Token. Agenten nutzen das MCP-Token, nicht das, mit dem sich das Handy koppelt. Siehe unten.
Verbindung verweigert oder ein TimeoutDer Server läuft nicht, der Port ist falsch, oder eine Firewall auf dem Rechner blockiert Port 8800. Prüfe bei Docker die Port-Zuordnung 8800:8800.

Wann du dies den anderen vorziehst

Wähle den Spiegel, wenn dein Agent die Daten braucht, während dein Handy schläft oder weg ist, oder wenn du eine abfragbare Datenbank statt Dateien willst. Wähle den MCP-Server auf dem Handy, wenn dein Agent in der Nähe des Handys läuft und du sonst nichts pflegen willst. Wähle Automationen, wenn du schon einen Ort hast, an dem Daten landen sollen.