Marrow Health
SV
Ladda ner

Spegeln på egen server

En liten server på hårdvara du äger som håller en fullständig, levande kopia av din Marrow-data och svarar agenter medan din telefon sover, ligger i fickan eller är på andra sidan jorden.

Installation för en app i taget finns på en egen sida under anslutningar.

Alla Marrow-guider: MCP · Spegel på egen server · Automatiseringar · Filer · Support

Vad det är

En liten server med öppen källkod som du kör på hårdvara du äger: en Raspberry Pi, en NAS, en gammal laptop, en VPS för $5. Din telefon parkopplas med den en gång genom att skanna en QR-kod och skickar sedan varje ändring i bakgrunden, med appen stängd. Servern håller en fullständig SQLite-kopia av din Marrow-data och serverar tretton MCP-verktyg för läsning: telefonens sju, sleep_log och symptoms_and_mood, och fyra som svarar på appens egna villkor (daily_brief, baselines, what_changed, data_quality), så att en agent kan fråga ”hur sov jag den här veckan” klockan 3 på natten med din telefon i en låda. MIT-licens: github.com/MarrowHealth/marrow-mcp.

Installera

En Python-fil, bara standardbiblioteket, Python 3.10 eller nyare:

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

Vid första start skriver den ut en URL för parkoppling och visar en QR-kod i vilken webbläsare som helst i ditt nätverk.

Parkoppla telefonen

  1. Öppna parkopplings-URL:en på vilken skärm som helst nära dig.
  2. I Marrow: Exportera, Server-MCP, Parkoppla med en server, skanna koden.
  3. Klart. Telefonen börjar skicka, och sidan Server visar tidpunkten för det senaste utskicket och hur många poster som väntar.

Parkopplingen skapar två token i serverns datakatalog: en som telefonen använder för att skicka, en som agenter använder för att läsa. Radera en tokenfil för att rotera den.

Peka en agent mot den

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

Tretton verktyg, alla läsning. De nio råa: health_summary, list_metrics, metric_daily, metric_samples, workouts, nutrition_log, strength_log, sleep_log, symptoms_and_mood. Och fyra som börjar där de råa slutar, mätta mot din egen normalnivå bakåt i tiden med samma matematik som appens startsida använder: daily_brief (en dag: varje nyckelmätvärde med sitt värde och appens egen fras, mat och vatten mot dina mål, gårdagens sömn, genomförd träning, flaggor värda att nämna), baselines (din egen normalnivå per mätvärde, det senaste värdets z och 90-dagarstrenden), what_changed (den senaste veckan mot de fyra före: vad som förändrades, hur anmärkningsvärt det är för dig, förskjutningar i sömn och läggdags, flöden som började eller slutade) och data_quality (vad som är färskt, gammalt eller saknas, så att en agent aldrig misstar ett glapp för ett faktum). Varje läsning tar dagar tillbaka eller från och till i telefonens kalender. Servern listar också fyra prompter (how_am_i_doing, weekly_review, doctor_prep, log_from_text) och fyra resurser för klienter som visar dem. Den har också tolv skrivverktyg, som listas när din telefon tillåter dem. Från Marrow 1.5, slå på Tillåt AI att skriva för din server under Exportera, Dina anslutningar så kan en AI logga måltider, vatten, vikt, träningspass, sömn, symtom, humör och mål via den, gratis. Servern köar varje post och telefonen utför den när Marrow öppnas eller vaknar, och varenda en kan ångras. Installation för Claude Desktop, Cursor och andra finns på MCP-sidan. Bara URL:en ändras.

Nå den utanför ditt LAN

Servern talar vanlig HTTP och har ingen egen TLS. Öppna inte portar mot internet för den rakt av. Lägg Tailscale på datorn och telefonen och använd tailscale serve, eller sätt Cloudflare Tunnel eller valfri omvänd proxy som avslutar HTTPS framför den. QR-koden för parkoppling bär den adress som servern annonserar: dess egen LAN-adress, eller den du ger den med --url. Starta den med den adress du faktiskt kommer att använda, till exempel marrow-server --url https://pi.your-tailnet.ts.net, och parkoppla sedan.

Det som hamnar på disken

Enheter: Hälsomätvärden kommer i sina lagrade SI-enheter med etiketter. Styrkeset kommer i pund med "unit": "lb" oavsett telefonens visningsinställning, så att spegeln aldrig blandar enheter. Peka Grafana, DuckDB eller ett cron-jobb direkt mot databasfilen.

Felsökning

Två tester från datorn som din AI körs på visar var problemet finns. Först, är servern uppe? Det här kräver ingen token:

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

Den svarar {"server": "marrow", "ok": true}. Fungerar sedan 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årVad det betyder
200 OK och en lista över verktygServern fungerar. Kontrollera adressen, token och servertypen (HTTP) i din agents konfiguration och starta sedan om agenten.
401 med bad bearer tokenFel token. Agenter använder mcp-token, inte den som telefonen parkopplas med. Se nedan.
Anslutningen nekas eller en timeoutServern körs inte, porten är fel, eller en brandvägg på datorn blockerar port 8800. Med Docker, kontrollera portmappningen 8800:8800.

När du ska välja den här framför de andra

Välj spegeln när din agent behöver datan medan din telefon sover eller är borta, eller när du vill ha en databas du kan söka i i stället för filer. Välj MCP-servern på telefonen när din agent körs nära telefonen och du inte vill ha något annat att underhålla. Välj automatiseringar när du redan har ett ställe där datan ska landa.