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
- Buka URL penggandingan pada mana-mana skrin berhampiran anda.
- Dalam Marrow: Eksport, MCP Pelayan, Gandingkan dengan pelayan, imbas kod itu.
- 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
- Pangkalan data SQLite dengan setiap siri harian, sampel, entri diari dan set kekuatan, dikekalkan terkini oleh tolakan telefon.
- Setiap tolakan mentah disimpan sebagai JSONL di sebelahnya, supaya pangkalan data boleh dibina semula jika ia pernah rosak.
- Anggarkan 50 hingga 150 MB setahun untuk sejarah beresolusi penuh.
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 dapat | Maksudnya |
|---|---|
200 OK dan senarai alat | Pelayan berfungsi. Semak alamat, token dan jenis pelayan (HTTP) dalam konfigurasi ejen anda, kemudian mulakan semula ejen itu. |
401 dengan bad bearer token | Token salah. Ejen menggunakan token mcp, bukan yang digandingkan dengan telefon. Lihat di bawah. |
| Sambungan ditolak atau tamat masa | Pelayan tidak berjalan, port salah, atau tembok api pada mesin itu menyekat port 8800. Dengan Docker, semak pemetaan port 8800:8800. |
- Token yang mana. Pelayan mencetak token ejen apabila ia bermula, pada baris yang bermula dengan
agents:. Ia juga ada dalam fail.mcp-tokendalam folder data (./datakecuali anda menghantar--data,/datadalam Docker). Telefon menggunakan token yang berbeza, daripada.app-token. Untuk menukar token ejen, padam.mcp-token, mulakan semula pelayan dan kemas kini setiap ejen. - Halaman penggandingan menyatakan token salah atau tiada. Buka pautan penggandingan tepat seperti yang dicetak pelayan, dengan bahagian
?token=itu. - Halaman penggandingan menunjukkan teks, bukan kod QR. Kod QR memerlukan pakej pilihan
segno:pip install "marrow-mcp[qr]". Atau, dalam Marrow, pilih Masukkan secara manual dan taipurldantokendaripada teks itu. - Penyandingan gagal pada telefon. Telefon tidak dapat mencapai alamat dalam kod QR. Di bawah Docker, pelayan hanya melihat alamat bekas itu sendiri, jadi berikan alamat anda: tambahkan
--url http://<your-computer-ip>:8800pada arahannya. Di luar Wi-Fi rumah anda, gunakan alamat HTTPS daripadatailscale serveatau terowong. - Akses Local Network. Untuk mencapai pelayan pada rangkaian rumah anda, Marrow memerlukan akses Local Network. iOS bertanya kali pertama anda menggandingkan. Jika anda menjawab tidak, hidupkan Marrow dalam Settings, Privacy and Security, Local Network, kemudian gandingkan semula dengan Marrow dibuka.
- Kod QR itu bukan kod penggandingan Marrow. Kamera membaca kod lain. Imbas kod pada halaman penggandingan pelayan.
- Data lama, atau Tidak menerima data dalam Marrow. Telefon tidak dapat menolak ke pelayan. Halaman MCP Pelayan dalam Marrow menunjukkan tolakan terakhir dan berapa banyak rekod yang menunggu. Semak pelayan sedang berjalan, kemudian buka Marrow untuk menghantar apa yang menunggu. Tolakan latar belakang berjalan apabila iOS membenarkannya.
- Pelayan ini perlu dikemas kini sebelum ia boleh mencatat. Kemas kininya dengan
pip install -U marrow-mcpdan mulakan semula. Dengan Docker, jalankangit pulldandocker compose up -d --builddalam klon itu. - Entri daripada AI tidak muncul. Hidupkan Benarkan AI menulis untuk pelayan dalam Eksport, Sambungan anda. Alat tulis muncul pada pelayan hanya selepas itu. Setiap entri menunggu pada pelayan dan masuk apabila Marrow dibuka atau bangun seterusnya.
- Sambungan tidak mahu dihidupkan. Percuma mengekalkan 1 sambungan hidup pada satu masa, Marrow Pro sehingga 10: AI, pelayan dan automasi sekali gus.
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.