Bir ajanı Marrow'a bağlayın
Marrow, Apple Health verilerinizi Model Context Protocol üzerinden, kendi iPhone'unuzdan ya da kendi sunucunuzdan sunar. Telefonda yedi yalnızca okuma aracı, kendi sunucunuzda on üç (dördü uygulamanın kendi terimleriyle yanıt verir, kendi normalinize göre puanlanır), bearer belirteçle kimlik doğrulama, hiçbir yerde hesap yok. Bu sayfa kurulumun tamamı.
Ajan başka bir makinede mi ya da telefon uyurken yanıtlara mı ihtiyacınız var? Kendi barındırdığınız yansıyı eşleştirin (pip install marrow-mcp): Claude Code, Cursor ve OpenClaw için 7/24 yanıt verir. Buraya yerleşik Claude ya da ChatGPT bağlayıcısından geldiyseniz, onların yapmadığı şeyleri burada görebilirsiniz.
Her seferinde tek bir uygulama için kurulum, Claude Code, Cursor, Codex ve daha fazlası, bağlantılar altında kendi sayfasında.
Kendi Apple Health verilerimi sana bağlamak istiyorum. Marrow, bunu MCP üzerinden sunan ücretsiz bir iOS uygulaması, bunun için hesap ya da abonelik gerekmiyor. App Store'da: https://apps.apple.com/app/id6800819435. Bana her şeyi adım adım anlat: uygulamayı yüklemek, sunucuyu Dışa aktar sonra Yerel MCP altından açmak ve bana gösterdiği URL'yi ve bearer belirteci MCP yapılandırmana bir Streamable HTTP sunucusu olarak eklemek. O yapılandırmayı kendin düzenleyemiyorsan bana tam dosyayı ve neyi yapıştıracağımı söyle. Kurulum belgeleri: https://marrowhealthapp.com/mcp. Bağlandığında son 7 gün için health_summary çağır ve bana neyin öne çıktığını söyle.
1. Sunucuyu açın
Kapalı gelir. Uygulamada: Dışa aktar → Yerel MCP, sonra sunucuyu etkinleştirin. Bir URL, bir belirteç ve bir QR kod alırsınız. Sunucu yalnızca yerel ağınıza bağlanır ve uygulama dinlediği tam adresi gösterir.
2. İstemcinizi ona yönlendirin
<phone-ip> ve <token> yerine uygulamanın gösterdiklerini yazın.
Claude Code
claude mcp add --transport http marrow \ http://<phone-ip>:21212/mcp \ --header "Authorization: Bearer <token>"
Claude Desktop, tek tıkla
marrow.mcpb dosyasını bilgisayarınıza indirin ve çift tıklayın. Claude Desktop uzantıyı yükler ve yukarıdaki URL'yi ve belirteci ister. Terminal gerekmez.
Claude Desktop (manuel), Cursor ya da mcp.json kullanan herhangi bir istemci
{
"mcpServers": {
"marrow": {
"type": "http",
"url": "http://<phone-ip>:21212/mcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}
Elle kontrol edin
curl -s http://<phone-ip>:21212/mcp \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Araçlar
Okumalar her zaman vardır. Yazmalar ikinci bir anahtardır. Marrow 1.5'ten itibaren Yerel MCP altında Yapay zekanın yazmasına izin ver'i açtığınızda telefonun sunucusu Bulut MCP ile aynı on iki yazma aracını listeler (log_meal, log_water, log_weight, log_workout, log_strength, log_sleep, log_symptom, log_mood, edit_entry, delete_entry, set_targets, undo_entry), telefonda hemen uygulanır ve Apple Health'e yazılır, hepsi geri alınabilir. Kapalıyken sunucu yalnızca okur.
| Araç | Döndürdüğü |
|---|---|
health_summary | Aktivite, kalp, uyku ve beslenme genelinde son günler |
list_metrics | Takip edilen her ölçüm, birimleri ve kapsamıyla |
metric_daily | Herhangi bir ölçüm için günlük değerler, 400 güne kadar |
metric_samples | Zaman damgalı ve kaynak cihazlı ham kayıtlar |
workouts | Her kaynaktan antrenmanlar. Telefonda ayrıca Marrow kuvvet seansları set set |
nutrition_log | Tam besin öğesi dökümüyle yiyecek günlüğü |
strength_log | Set türüyle her kaldırış seti, egzersiz başına tahmini 1RM, kas grubu başına hacim. Isınmalar hacme ya da rekorlara asla sayılmaz |
sleep_log | Uyanma günü başına bir gece: yatış saati, uyanma saati, uyunan saat, evre başına dakika (kendi barındırdığınız yansı) |
symptoms_and_mood | Şiddetiyle belirtiler ve duyguları ile neyle ilgili olduğuyla State of Mind kayıtları (kendi barındırdığınız yansı) |
Kendi barındırdığınız yansıda ve Bulut MCP'de dört tane daha. Ham okumaların bittiği yerden başlarlar: her değer, uygulamanın Ana Sayfa'sının kullandığı aynı hesapla (günün kendisi hariç) kendi geriye dönük normalinize göre puanlanır, böylece bir ajan, bir sayıyı nüfusa göre değerlendirmek yerine sizin için zaten doğru olan bir okumayla başlar.
| Araç | Döndürdüğü |
|---|---|
daily_brief | Bir gün: her ana ölçüm değeri ve uygulamanın kendi ifadesiyle (sizin için normal, normalinizin üstünde, normalinizin çok altında), hedeflerinize karşı yiyecek ve su, dün gecenin uykusu, yapılan antrenman, ruh hali ve belirtiler ve anmaya değer işaretler |
baselines | Ölçüm başına kendi normaliniz: pencere üzerinden ortalama ve yayılım, son değerin z değeri ve ifadesi, 7 günlük ortalama ve aylık 90 günlük eğilim |
what_changed | Son hafta, öncesindeki dörde karşı: neyin ne kadar oynadığı ve sizin için ne kadar dikkate değer olduğu, yiyecek, antrenman, uyku ve yatış saati kaymaları, gelmeye başlayan ya da duran akışlar |
data_quality | Yansının tuttukları ve ne kadar taze olduğu: ölçüm başına son gün, kapsam, sıklık, kaynaklar ve eskiyip eskimediği, böylece bir ajan bir boşluğu asla bir gerçekle karıştırmaz |
Cihaz üstü sunucu ilk yedi ham aracı ve ayrıca daily_brief ile baselines'ı sunar (dokuz okuma). Kendi barındırdığınız yansı on üçünü de sunar, barındırılan Bulut MCP kopyası da öyle. Yansıdaki her okuma, telefonun takviminde geriye doğru gün sayısını ya da from ve to alır ve yansı ayrıca bunları gösteren istemcilere dört istem (how_am_i_doing, weekly_review, doctor_prep, log_from_text) ve dört kaynak sunar. Ham örnekler uyku evrelerini ve belirti şiddetlerini taşır.
list_metrics arkasında 172 Apple Health ölçümü var, ayrıca nutrition_log ve strength_log arkasında Marrow'a özgü günlük ve kuvvet verileri, aktivite, kalp, uyku, vücut, solunum, hareketlilik, işitme, beslenme, zihin, belirtiler, döngü ve alışkanlıkları kapsıyor. Bu sayfanın makine tarafından okunabilir sürümü: tools.json.
Telefon çalışmıyorken de ayakta tutmak
Cihaz üstü sunucu uygulama çalışırken yanıt verir. 7/24 erişim için kendi barındırdığınız bir yansıyı eşleştirin: bir Pi, NAS ya da eski bir dizüstüde tek bir Python stdlib dosyası. Telefonun arka plan gönderimleri onu güncel tutar ve kendi belirteciyle http://<server-ip>:8800/mcp adresinde aynı MCP yüzeyini konuşur. Telefonun araçları uygulamanın ölçüm anahtarlarını kullanır (active_energy, heart_rate_variability). Sunucu hem bunları hem de Apple'ın kısa adlarını (active_energy_burned) kabul eder, böylece bir ajan yeniden öğrenmeden aralarında geçiş yapabilir. Açık kaynaktır ve yüklenebilir:
pip install marrow-mcp marrow-server
Kaynak: github.com/MarrowHealth/marrow-mcp. Resmi MCP kayıt defterinde tech.skeletonarmy/marrow olarak listelenir.
İki sunucuyu da açık internete port yönlendirmesiyle açmayın. İkisi de bir LAN ya da tailnet için tasarlandı. Uzaktan erişime ihtiyacınız varsa önüne tailscale serve ya da eşdeğerini koyun, böylece aktarım HTTPS olur ve cihazın kimliği, bearer belirteç görülmeden önce doğrulanır.
Sorun giderme
Yapay zekanızın çalıştığı bilgisayardan çalıştırdığınız aşağıdaki testle başlayın. Sorunun hangi tarafta olduğunu söyler. Marrow telefonda açıkken, Marrow'daki bağlantının sayfasından adresi ve belirteci kullanın.
curl -i http://<phone-ip>:21212/mcp \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
| Ne alırsınız | Anlamı |
|---|---|
HTTP/1.1 200 OK ve bir araç listesi | Telefon çalışıyor. Sorun uygulamanızın ayarlarında: adres, belirteç ya da HTTP (Streamable HTTP) dışında bir sunucu türü. Yapılandırmayı düzeltin ve uygulamayı yeniden başlatın. |
401 Unauthorized | Belirteç yanlış ya da bu bağlantı Marrow'da kapalı. Bağlantılarınız'daki her bağlantının kendi belirteci vardır ve birini kapatmak diğerleri çalışmaya devam ederken o uygulamayı dışarıda bırakır. Açın ya da belirtecini yeniden kopyalayın. |
use POST /mcp ile 404 Not Found | Yol yanlış. Adres /mcp ile biter. |
| Bağlantı reddedildi ya da zaman aşımına uğrayana kadar yanıt yok | Bilgisayar telefona ulaşamıyor. Aşağıdaki listeyi sırayla gözden geçirin. |
- Marrow açık olmalı. Telefonun sunucusu yalnızca Marrow ön plandayken yanıt verir. Uygulama değiştirdiğinizde ya da telefonu kilitlediğinizde iOS onu kısa sürede duraklatır. Marrow'u yeniden açın, yeniden yanıt verir. Telefon uykudayken yanıt için Sunucu MCP ya da Bulut MCP kullanın.
- Aynı Wi-Fi veya tailnet. Bilgisayar ve telefon bir Wi-Fi ağını ya da bir tailnet'i paylaşmalıdır. Yerel MCP mobil veri üzerinden asla yanıt vermez. Marrow Ağ adresi bulunamadı diyorsa bir Wi-Fi ağına ya da tailnet'e katılın. Misafir ve otel Wi-Fi ağları çoğu zaman cihazların birbirine ulaşmasını engeller.
- Tailnet adresi mi Wi-Fi adresi mi. Marrow telefonun adreslerinden birini gösterir, genellikle Wi-Fi olanı. Telefona Tailscale üzerinden ulaşan bir bilgisayar bunun yerine telefonun tailnet adresine ihtiyaç duyar. Tailscale uygulaması onu gösterir (
100.ile başlar). Yapılandırmanızda Wi-Fi adresi yerine onu koyun ve aynı portu ve belirteci koruyun. - Adres değişti. Bir yönlendirici bir süre sonra telefona yeni bir Wi-Fi adresi verebilir. Marrow'daki adresi yapılandırmanızdakiyle karşılaştırın. Yönlendiricide ayrılmış bir adres onu sabit tutar.
- Neden Yerel Ağ erişimi değil. iOS bunu Marrow ağınızdaki bir cihaza, örneğin eşleştirilmiş bir sunucuya ulaştığında sorar. Telefonun sunucusunun bir bilgisayara yanıt vermesi izin gerektirmez, bu yüzden o anahtarı açmak ya da kapatmak Yerel MCP'yi değiştirmez.
- Bilgisayarda bir VPN. Tailnet'iniz dışındaki bir VPN yerel trafiği Wi-Fi ağınızdan uzaklaştırabilir. Duraklatın ve testi yeniden deneyin.
- Uygulamanızın günlüğünde bir 405. Telefon yalnızca POST yanıtlar ve hiçbir akışı açık tutmaz, bu yüzden bir GET
405alır. Streamable HTTP konuşan uygulamalar POST ile devam eder, bu yüzden bu satır tek başına sorun değildir. - Uygulamanız yalnızca bir komut (stdio) kabul ediyor. Telefonun adresini mcp-remote köprüsünden geçirin. Bilgisayarın kendisinde olmayan düz bir http adresi için
--allow-httpgerekir:npx -y mcp-remote http://<phone-ip>:21212/mcp --allow-http --header "Authorization: Bearer <token>". Windows'ta Cursor, Codex veya Claude Desktop için bir yapılandırma dosyasında, args içindeki boşluklar bozulabilir. BaşlığıAuthorization:${AUTH_HEADER}olarak yazın ve sunucunun env'indeAUTH_HEADER'ıBearer <token>yapın. - Okuyor ama kayıt tutamıyor. Yerel MCP altında Yapay zekanın yazmasına izin ver'i açın. Kayıtlar telefonda hemen uygulanır ve her biri geri alınabilir.
- 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. Önce Bağlantılarınız içinde birini kapatın.
Her seferinde tek bir uygulama için kurulum ve çözümler, Claude Code, Cursor, VS Code ve daha fazlası, bağlantılar altında.
Maliyeti nedir
Hiçbir şey. Ajan erişimi, arka plan eşzamanlama, otomatik dışa aktarma, CSV ve JSON dışa aktarma ve barkod tarama ile birlikte ücretsiz katmanda. Health Auto Export, Marrow'dan önce bir MCP sunucusu çıkardı ve iyi de, ama onlarınki Premium abonelik gerektiriyor. İddia etmeye değer olan şey ilk olmak değil, bu fark.
Gereksinimler
- iOS 17 veya üzeri ve Apple Health. Android ya da web sürümü yok.
- Marrow App Store'da, ücretsiz: apps.apple.com/app/id6800819435.
- Marrow hesabı diye bir şey yok, bu yüzden bir kullanıcının kendi cihazı olmadan çağrılacak barındırılan bir API de yok.