Marrow Health
MS
Muat turun

Cermin dihoskan sendiri

Pelayan kecil pada perkakasan yang anda miliki yang menyimpan salinan langsung yang lengkap bagi data Marrow anda dan menjawab ejen semasa telefon anda tidur, dalam poket, atau di seberang dunia.

Persediaan untuk satu apl pada satu masa ada pada halamannya sendiri di bawah sambungan.

Semua panduan Marrow: MCP · Cermin dihoskan sendiri · Automasi · Fail · Sokongan

Apa itu

Pelayan kecil sumber terbuka yang anda jalankan pada perkakasan yang anda miliki: Raspberry Pi, NAS, komputer riba lama, VPS $5. Telefon anda bergandingan dengannya sekali dengan mengimbas kod QR, kemudian menolak setiap perubahan di latar belakang, dengan apl ditutup. Pelayan menyimpan salinan SQLite yang lengkap bagi data Marrow anda dan menyajikan tiga belas alat MCP untuk membaca: tujuh alat telefon, sleep_log dan symptoms_and_mood, serta empat yang menjawab dalam istilah apl sendiri (daily_brief, baselines, what_changed, data_quality), jadi ejen boleh bertanya "bagaimana tidur saya minggu ini" pada pukul 3 pagi dengan telefon anda dalam laci. Berlesen MIT: github.com/MarrowHealth/marrow-mcp.

Pasang

Satu fail Python, pustaka standard sahaja, Python 3.10 atau lebih baharu:

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

Atau dengan Docker:

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

Pada permulaan pertama ia mencetak URL penggandingan dan menunjukkan kod QR dalam mana-mana pelayar pada rangkaian anda.

Gandingkan telefon

  1. Buka URL penggandingan pada mana-mana skrin berhampiran anda.
  2. Dalam Marrow: Eksport, MCP Pelayan, Gandingkan dengan pelayan, imbas kod itu.
  3. Siap. Telefon mula menolak data, dan halaman Pelayan menunjukkan masa tolakan terakhir dan berapa banyak rekod yang menunggu.

Penggandingan mencipta dua token dalam direktori data pelayan: satu digunakan telefon untuk menolak, satu digunakan ejen untuk membaca. Padam fail token untuk menukarnya.

Arahkan ejen kepadanya

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

Tiga belas alat, semuanya bacaan. Sembilan yang mentah: health_summary, list_metrics, metric_daily, metric_samples, workouts, nutrition_log, strength_log, sleep_log, symptoms_and_mood. Dan empat yang bermula di mana yang mentah berhenti, dinilai berbanding normal anda sendiri yang terkini dengan matematik yang sama seperti yang digunakan halaman Utama apl: daily_brief (satu hari: setiap metrik utama dengan nilainya dan frasa apl sendiri, makanan dan air berbanding sasaran anda, tidur malam tadi, latihan yang dilakukan, penanda yang wajar disebut), baselines (normal anda sendiri bagi setiap metrik, z bagi nilai terkini dan aliran 90 hari), what_changed (minggu lepas berbanding empat minggu sebelumnya: apa yang berubah, betapa ketara ia bagi anda, perubahan tidur dan waktu tidur, aliran yang bermula atau berhenti) dan data_quality (apa yang segar, lapuk atau tiada, supaya ejen tidak pernah tersalah anggap jurang sebagai fakta). Setiap bacaan menerima bilangan hari ke belakang atau dari dan hingga pada kalendar telefon. Pelayan juga menyenaraikan empat gesaan (how_am_i_doing, weekly_review, doctor_prep, log_from_text) dan empat sumber untuk klien yang menunjukkannya. Ia juga membawa dua belas alat tulis, disenaraikan sebaik telefon anda membenarkannya. Bermula Marrow 1.5, hidupkan Benarkan AI menulis untuk pelayan anda dalam Eksport, Sambungan anda dan AI boleh mencatat hidangan, air, berat, senaman, tidur, simptom, mood dan sasaran melaluinya, secara percuma. Pelayan meletakkan setiap entri dalam baris gilir dan telefon menerapkannya apabila Marrow dibuka atau bangun, dan setiap satunya boleh dibuat asal. Persediaan untuk Claude Desktop, Cursor dan lain-lain ada pada halaman MCP. Hanya URL yang berubah.

Mencapainya dari luar LAN anda

Pelayan bercakap HTTP biasa dan tiada TLS sendiri. Jangan memajukan port secara mentah. Pasang Tailscale pada mesin itu dan telefon, dan gunakan tailscale serve, atau letakkan Cloudflare Tunnel atau mana-mana proksi songsang yang menamatkan HTTPS di hadapannya. Kod QR penggandingan membawa alamat yang diiklankan pelayan: alamat LAN sendiri, atau alamat yang anda berikan dengan --url. Mulakannya dengan alamat yang benar-benar akan anda gunakan, contohnya marrow-server --url https://pi.your-tailnet.ts.net, kemudian gandingkan.

Apa yang disimpan pada cakera

Unit: Metrik Health tiba dalam unit SI yang disimpan dengan label. Set kekuatan tiba dalam paun dengan "unit": "lb" walau apa pun tetapan paparan telefon, jadi cermin tidak pernah mencampurkan unit. Halakan Grafana, DuckDB atau tugas cron terus ke fail pangkalan data.

Penyelesaian masalah

Dua ujian daripada komputer tempat AI anda berjalan memberitahu anda di mana masalahnya. Pertama, adakah pelayan berjalan? Yang ini tidak memerlukan token:

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

Ia menjawab {"server": "marrow", "ok": true}. Kemudian, adakah token ejen anda berfungsi?

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"}'
Apa yang anda dapatMaksudnya
200 OK dan senarai alatPelayan berfungsi. Semak alamat, token dan jenis pelayan (HTTP) dalam konfigurasi ejen anda, kemudian mulakan semula ejen itu.
401 dengan bad bearer tokenToken salah. Ejen menggunakan token mcp, bukan yang digandingkan dengan telefon. Lihat di bawah.
Sambungan ditolak atau tamat masaPelayan tidak berjalan, port salah, atau tembok api pada mesin itu menyekat port 8800. Dengan Docker, semak pemetaan port 8800:8800.

Bila memilih ini berbanding yang lain

Pilih cermin apabila ejen anda memerlukan data semasa telefon anda tidur atau jauh, atau apabila anda mahukan pangkalan data yang boleh ditanya dan bukannya fail. Pilih pelayan MCP pada telefon apabila ejen anda berjalan berhampiran telefon dan anda tidak mahu apa-apa lagi untuk diselenggara. Pilih automasi apabila anda sudah mempunyai tempat untuk data itu mendarat.