Kendi barındırdığınız yansı
Sahip olduğunuz donanımda, Marrow verilerinizin eksiksiz, canlı bir kopyasını tutan ve telefonunuz uykudayken, cebinizdeyken ya da dünyanın öbür ucundayken ajanlara yanıt veren küçük bir sunucu.
Her seferinde tek bir uygulama için kurulum, bağlantılar altında kendi sayfasında.
Tüm Marrow rehberleri: MCP · Kendi barındırdığınız yansı · Otomasyonlar · Dosyalar · Destek
Nedir
Sahip olduğunuz donanımda çalıştırdığınız küçük bir açık kaynak sunucu: bir Raspberry Pi, bir NAS, eski bir dizüstü, $5'lık bir VPS. Telefonunuz onunla bir kez QR kodu tarayarak eşleşir, sonra uygulama kapalıyken her değişikliği arka planda gönderir. Sunucu, Marrow verilerinizin eksiksiz bir SQLite kopyasını tutar ve okumak için on üç MCP aracı sunar: telefonun yedisi, sleep_log ve symptoms_and_mood ve uygulamanın kendi terimleriyle yanıt veren dördü (daily_brief, baselines, what_changed, data_quality), böylece bir ajan, telefonunuz çekmecedeyken gece 3'te “bu hafta nasıl uyudum” diye sorabilir. MIT lisanslı: github.com/MarrowHealth/marrow-mcp.
Yükleme
Tek bir Python dosyası, yalnızca standart kütüphane, Python 3.10 veya daha yenisi:
pip install marrow-mcp marrow-server # or: python3 marrow_server.py
Ya da Docker ile:
git clone https://github.com/MarrowHealth/marrow-mcp cd marrow-mcp docker compose up -d
İlk başlatmada bir eşleştirme URL'si yazdırır ve ağınızdaki herhangi bir tarayıcıda bir QR kodu gösterir.
Telefonu eşleştirin
- Eşleştirme URL'sini yakınınızdaki herhangi bir ekranda açın.
- Marrow'da: Dışa aktar, Sunucu MCP, Bir sunucuyla eşleştir, kodu tarayın.
- Bitti. Telefon göndermeye başlar ve Sunucu sayfası son gönderim zamanını ve kaç kaydın beklediğini gösterir.
Eşleştirme, sunucunun veri dizininde iki belirteç oluşturur: biri telefonun göndermek için kullandığı, biri ajanların okumak için kullandığı. Döndürmek için bir belirteç dosyasını silin.
Bir ajanı ona yönlendirin
claude mcp add --transport http marrow http://<server-ip>:8800/mcp \ --header "Authorization: Bearer <mcp token>"
On üç araç, hepsi okuma. Dokuz ham olan: health_summary, list_metrics, metric_daily, metric_samples, workouts, nutrition_log, strength_log, sleep_log, symptoms_and_mood. Ve ham olanların bittiği yerden başlayan, uygulamanın Ana Sayfa'sının kullandığı aynı hesapla kendi geriye dönük normalinize göre puanlanan dört tane: daily_brief (bir gün: her ana ölçüm değeri ve uygulamanın kendi ifadesiyle, hedeflerinize karşı yiyecek ve su, dün gecenin uykusu, yapılan antrenman, anmaya değer işaretler), baselines (ölçüm başına kendi normaliniz, son değerin z değeri ve 90 günlük eğilim), what_changed (son hafta, öncesindeki dörde karşı: neyin oynadığı, sizin için ne kadar dikkate değer olduğu, uyku ve yatış saati kaymaları, başlayan ya da duran akışlar) ve data_quality (neyin taze, eski ya da eksik olduğu, böylece bir ajan bir boşluğu asla bir gerçekle karıştırmaz). Her okuma, telefonun takviminde geriye doğru gün sayısını ya da from ve to alır. Sunucu ayrıca bunları gösteren istemciler için dört istem (how_am_i_doing, weekly_review, doctor_prep, log_from_text) ve dört kaynak listeler. On iki yazma aracı da taşır, telefonunuz izin verdiğinde listelenir. Marrow 1.5'ten itibaren Dışa aktar, Bağlantılarınız içinde sunucunuz için Yapay zekanın yazmasına izin ver'i açın, bir yapay zeka onun üzerinden öğün, su, kilo, antrenman, uyku, belirti, ruh hali ve hedef kaydedebilir, ücretsiz. Sunucu her kaydı sıraya alır ve telefon Marrow açıldığında ya da uyandığında uygular, ve her biri geri alınabilir. Claude Desktop, Cursor ve diğerleri için kurulum MCP sayfasında. Yalnızca URL değişir.
LAN'ınızın dışından ulaşma
Sunucu düz HTTP konuşur ve kendi TLS'i yoktur. Onu ham haliyle port yönlendirmesine açmayın. Cihaza ve telefona Tailscale kurup tailscale serve kullanın ya da önüne Cloudflare Tunnel veya HTTPS sonlandıran herhangi bir ters vekil sunucu koyun. Eşleştirme QR'ı sunucunun duyurduğu adresi taşır: kendi LAN adresi ya da --url ile verdiğiniz adres. Gerçekten kullanacağınız adresle başlatın, örneğin marrow-server --url https://pi.your-tailnet.ts.net, sonra eşleştirin.
Diske yazılanlar
- Her günlük seri, örnek, günlük kaydı ve kuvvet setiyle bir SQLite veritabanı, telefonun gönderimleriyle güncel tutulur.
- Her ham gönderim yanında JSONL olarak hazırlanır, böylece veritabanı bozulursa yeniden oluşturulabilir.
- Tam doğrulukta geçmiş için yılda 50 ila 150 MB hesaplayın.
Birimler: Sağlık ölçümleri saklanan SI birimlerinde ve etiketlerle gelir. Kuvvet setleri, telefonun görüntü ayarı ne olursa olsun "unit": "lb" ile pound cinsinden gelir, böylece yansı birimleri asla karıştırmaz. Grafana'yı, DuckDB'yi ya da bir cron işini doğrudan veritabanı dosyasına yönlendirin.
Sorun giderme
Yapay zekanızın çalıştığı bilgisayardan iki test sorunun nerede olduğunu söyler. Önce, sunucu ayakta mı? Bunun belirtece ihtiyacı yok:
curl http://<server-ip>:8800/health
{"server": "marrow", "ok": true} yanıtı verir. Sonra, ajanınızın belirteci çalışıyor mu?
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"}'
| Ne alırsınız | Anlamı |
|---|---|
200 OK ve bir araç listesi | Sunucu çalışıyor. Ajanınızın yapılandırmasındaki adresi, belirteci ve sunucu türünü (HTTP) kontrol edin, sonra ajanı yeniden başlatın. |
bad bearer token ile 401 | Yanlış belirteç. Ajanlar, telefonun eşleştiği belirteci değil, mcp belirtecini kullanır. Aşağıya bakın. |
| Bağlantı reddedildi ya da zaman aşımı | Sunucu çalışmıyor, port yanlış ya da cihazdaki bir güvenlik duvarı 8800 portunu engelliyor. Docker ile 8800:8800 port eşlemesini kontrol edin. |
- Hangi belirteç. Sunucu, ajanların belirtecini başlarken
agents:ile başlayan satırda yazdırır. O ayrıca veri klasöründeki.mcp-tokendosyasındadır (--datavermediyseniz./data, Docker'da/data). Telefon.app-tokendosyasından farklı bir belirteç kullanır. Ajanların belirtecini değiştirmek için.mcp-tokendosyasını silin, sunucuyu yeniden başlatın ve her ajanı güncelleyin. - Eşleştirme sayfası bad or missing token diyor. Eşleştirme bağlantısını sunucunun yazdırdığı haliyle,
?token=kısmıyla birlikte açın. - Eşleştirme sayfası QR kodu değil, metin gösteriyor. QR için isteğe bağlı
segnopaketi gerekir:pip install "marrow-mcp[qr]". Ya da Marrow'da Bunun yerine elle gir'i seçin ve o metindekiurlvetokendeğerlerini yazın. - Telefonda eşleme başarısız. Telefon QR'daki adrese ulaşamadı. Docker altında sunucu yalnızca konteynerin kendi adresini görür, bu yüzden ona sizinkini verin: komutuna
--url http://<your-computer-ip>:8800ekleyin. Ev Wi-Fi ağınızın dışındatailscale serveya da bir tünelden bir HTTPS adresi kullanın. - Yerel Ağ erişimi. Ev ağınızdaki bir sunucuya ulaşmak için Marrow'un Yerel Ağ erişimine ihtiyacı var. iOS ilk eşleştirmenizde sorar. Hayır dediyseniz Ayarlar, Gizlilik ve Güvenlik, Yerel Ağ içinde Marrow'u açın, sonra Marrow açıkken yeniden eşleştirin.
- Bu QR kodu bir Marrow eşleştirme kodu değil. Kamera başka bir kod okudu. Sunucunun eşleştirme sayfasındakini tarayın.
- Eski veriler ya da Marrow'da Veri ulaşmıyor. Telefon sunucuya gönderemiyor. Marrow'daki Sunucu MCP sayfası son gönderimi ve kaç kaydın beklediğini gösterir. Sunucunun çalıştığını kontrol edin, sonra bekleyenleri göndermek için Marrow'u açın. Arka plan gönderimleri iOS izin verdiğinde çalışır.
- Bu sunucunun kayıt tutabilmesi için güncellenmesi gerekiyor. Onu
pip install -U marrow-mcpile güncelleyin ve yeniden başlatın. Docker ile klondagit pullvedocker compose up -d --buildçalıştırın. - Yapay zekanın kayıtları görünmüyor. Dışa aktar, Bağlantılarınız içinde sunucu için Yapay zekanın yazmasına izin ver'i açın. Yazma araçları sunucuda ancak bundan sonra görünür. Her kayıt sunucuda bekler ve Marrow bir sonraki açıldığında ya da uyandığında iner.
- Bağlantı açılmıyor. Ücretsiz planda aynı anda 1 bağlantı açık kalır, Marrow Pro'da en fazla 10: yapay zekalar, sunucular ve otomasyonlar birlikte.
Bunu ne zaman diğerlerine tercih etmeli
Ajanınızın telefonunuz uykudayken ya da uzaktayken veriye ihtiyacı varsa ya da dosyalar yerine sorgulanabilir bir veritabanı istiyorsanız yansıyı seçin. Ajanınız telefonun yakınında çalışıyorsa ve bakımını yapacak başka bir şey istemiyorsanız telefondaki MCP sunucusunu seçin. Verilerin inmesi gereken bir yeriniz zaten varsa otomasyonları seçin.