Marrow Health
CS
Stáhnout

Vlastní zrcadlo na serveru

Malý server na hardwaru, který vlastníte, uchovává úplnou živou kopii vašich dat z Marrow a odpovídá agentům, i když váš telefon spí, je v kapse nebo na druhé straně světa.

Nastavení pro jednotlivé aplikace je na vlastní stránce v části připojení.

Všechny návody k Marrow: MCP · Vlastní zrcadlo na serveru · Automatizace · Soubory · Podpora

Co to je

Malý open source server, který provozujete na hardwaru, který vlastníte: Raspberry Pi, NAS, starý notebook, VPS za $5. Váš telefon se s ním jednou spáruje naskenováním kódu QR a pak na pozadí odesílá každou změnu, i se zavřenou aplikací. Server uchovává úplnou kopii vašich dat z Marrow v SQLite a nabízí třináct nástrojů MCP pro čtení: sedm z telefonu, sleep_log a symptoms_and_mood a čtyři, které odpovídají v pojmech samotné aplikace (daily_brief, baselines, what_changed, data_quality), takže se agent může ve 3 ráno zeptat „jak jsem tento týden spal“, zatímco váš telefon leží v zásuvce. Licence MIT: github.com/MarrowHealth/marrow-mcp.

Instalace

Jeden soubor v Pythonu, jen standardní knihovna, Python 3.10 nebo novější:

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

Nebo s Dockerem:

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

Při prvním spuštění vypíše párovací adresu URL a v libovolném prohlížeči ve vaší síti ukáže kód QR.

Spárování telefonu

  1. Otevřete párovací adresu URL na libovolné obrazovce poblíž.
  2. V Marrow: Export, Serverové MCP, Spárovat se serverem, naskenujte kód.
  3. Hotovo. Telefon začne odesílat data a stránka Server ukazuje čas posledního odeslání a kolik záznamů čeká.

Spárování vytvoří v datovém adresáři serveru dva tokeny: jeden používá telefon k odesílání, druhý agenti ke čtení. Smazáním souboru tokenu ho obměníte.

Nasměrování agenta

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

Třináct nástrojů, všechny pro čtení. Devět surových: health_summary, list_metrics, metric_daily, metric_samples, workouts, nutrition_log, strength_log, sleep_log, symptoms_and_mood. A čtyři, které začínají tam, kde surové končí, vyhodnocené proti vaší vlastní dosavadní normě stejným výpočtem, jaký používá stránka Domů v aplikaci: daily_brief (jeden den: každá klíčová metrika s hodnotou a frází samotné aplikace, jídlo a voda proti cílům, spánek minulé noci, odtrénováno, upozornění, která stojí za zmínku), baselines (vaše vlastní norma pro každou metriku, z poslední hodnoty a 90denní trend), what_changed (poslední týden proti předchozím čtyřem: co se pohnulo, jak je to pro vás významné, posuny spánku a času uložení ke spánku, řady dat, které začaly nebo skončily) a data_quality (co je čerstvé, zastaralé nebo chybí, aby agent nikdy nepovažoval mezeru za fakt). Každé čtení přijímá počet dní zpět nebo od a do podle kalendáře telefonu. Server také nabízí čtyři prompty (how_am_i_doing, weekly_review, doctor_prep, log_from_text) a čtyři zdroje pro klienty, kteří je zobrazují. Má i dvanáct nástrojů pro zápis, které se zobrazí, jakmile je váš telefon povolí. Od Marrow 1.5 zapněte Povolit zápis AI pro svůj server v Export, Vaše připojení a AI přes něj může zapisovat jídla, vodu, hmotnost, tréninky, spánek, příznaky, náladu a cíle, zdarma. Server každý záznam zařadí do fronty a telefon ho provede, když se Marrow otevře nebo probudí, a každý lze vrátit zpět. Nastavení pro Claude Desktop, Cursor a další je na stránce MCP. Mění se jen adresa URL.

Přístup zvenčí vaší místní sítě

Server mluví prostým HTTP a nemá vlastní TLS. Nepřesměrovávejte na něj porty přímo. Nainstalujte Tailscale na server i telefon a použijte tailscale serve, nebo mu předřaďte Cloudflare Tunnel či libovolnou reverzní proxy, která ukončuje HTTPS. Párovací kód QR nese adresu, kterou server oznamuje: jeho vlastní adresu v místní síti, nebo tu, kterou mu zadáte pomocí --url. Spusťte ho s adresou, kterou skutečně použijete, například marrow-server --url https://pi.your-tailnet.ts.net, a pak spárujte.

Co se ukládá na disk

Jednotky: zdravotní metriky přicházejí v uložených jednotkách SI s popisky. Série silového tréninku přicházejí v librách s "unit": "lb" bez ohledu na zobrazení v telefonu, takže zrcadlo nikdy nemíchá jednotky. Grafanu, DuckDB nebo úlohu cron můžete nasměrovat přímo na soubor databáze.

Řešení potíží

Dva testy z počítače, na kterém běží vaše AI, řeknou, kde je problém. Nejdřív: běží server? Tento nepotřebuje token:

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

Odpoví {"server": "marrow", "ok": true}. Potom: funguje token vašeho agenta?

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"}'
Co dostaneteCo to znamená
200 OK a seznam nástrojůServer funguje. Zkontrolujte adresu, token a typ serveru (HTTP) v konfiguraci agenta a pak agenta restartujte.
401 s bad bearer tokenŠpatný token. Agenti používají token mcp, ne ten, se kterým se páruje telefon. Viz níže.
Připojení odmítnuto nebo vypršel časServer neběží, port je špatný, nebo firewall na počítači blokuje port 8800. U Dockeru zkontrolujte mapování portu 8800:8800.

Kdy zvolit tuto cestu místo ostatních

Zrcadlo zvolte, když váš agent potřebuje data, zatímco váš telefon spí nebo je pryč, nebo když chcete databázi, na kterou se dá dotazovat, místo souborů. Server MCP v telefonu zvolte, když agent běží poblíž telefonu a nechcete udržovat nic dalšího. Automatizace zvolte, když už máte místo, kam data mají dorazit.