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
- Otevřete párovací adresu URL na libovolné obrazovce poblíž.
- V Marrow: Export, Serverové MCP, Spárovat se serverem, naskenujte kód.
- 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
- Databáze SQLite s každou denní řadou, vzorkem, záznamem deníku a silovou sérií, udržovaná aktuální odesíláním z telefonu.
- Každé surové odeslání připravené jako JSONL vedle ní, aby se databáze dala znovu sestavit, kdybyste ji někdy poškodili.
- Počítejte s 50 až 150 MB ročně za historii v plné kvalitě.
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 dostanete | Co 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 čas | Server neběží, port je špatný, nebo firewall na počítači blokuje port 8800. U Dockeru zkontrolujte mapování portu 8800:8800. |
- Který token. Server vypíše token agentů při spuštění, na řádku, který začíná
agents:. Je také v souboru.mcp-tokenv datové složce (./data, pokud jste nezadali--data, v Dockeru/data). Telefon používá jiný token, ze souboru.app-token. Chcete-li token agentů změnit, smažte.mcp-token, restartujte server a aktualizujte všechny agenty. - Párovací stránka hlásí špatný nebo chybějící token. Otevřete odkaz pro spárování přesně tak, jak ho server vypsal, i s částí
?token=. - Párovací stránka ukazuje text, ne kód QR. Kód QR potřebuje volitelný balíček
segno:pip install "marrow-mcp[qr]". Nebo v Marrow zvolte Zadat raději ručně a zadejteurlatokenz toho textu. - Spárování v telefonu se nezdařilo. Telefon se nemohl dostat na adresu v kódu QR. V Dockeru vidí server jen vlastní adresu kontejneru, takže mu zadejte tu svou: přidejte do jeho příkazu
--url http://<your-computer-ip>:8800. Mimo domácí Wi-Fi použijte adresu HTTPS ztailscale servenebo tunelu. - Přístup k místní síti. Aby se Marrow dostal na server v domácí síti, potřebuje přístup k místní síti. iOS se zeptá při prvním spárování. Pokud jste odpověděli ne, zapněte Marrow v Nastavení, Soukromí a zabezpečení, Místní síť a pak spárujte znovu s otevřeným Marrow.
- Tento kód QR není párovací kód Marrow. Fotoaparát přečetl jiný kód. Naskenujte ten na párovací stránce serveru.
- Stará data, nebo Nedoručuje v Marrow. Telefon nemůže odeslat data na server. Stránka Serverové MCP v Marrow ukazuje poslední odeslání a kolik záznamů čeká. Ověřte, že server běží, a pak otevřete Marrow, aby se odeslalo, co čeká. Odesílání na pozadí běží, když to iOS dovolí.
- Tento server potřebuje aktualizaci, než bude moct zapisovat. Aktualizujte ho pomocí
pip install -U marrow-mcpa restartujte ho. U Dockeru spusťte v klonugit pulladocker compose up -d --build. - Záznamy od AI se nezobrazují. Zapněte Povolit zápis AI pro server v Export, Vaše připojení. Nástroje pro zápis se na serveru objeví až poté. Každý záznam čeká na serveru a dorazí, až se Marrow příště otevře nebo probudí.
- Připojení nejde zapnout. Zdarma umožňuje mít zapnuté vždy 1 připojení, Marrow Pro až 10: AI, servery a automatizace dohromady.
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.