Marrow Health
HI
डाउनलोड

सेल्फ़-होस्टेड मिरर

आपके अपने हार्डवेयर पर एक छोटा सर्वर जो आपके Marrow डेटा की पूरी, लाइव कॉपी रखता है और एजेंट को तब जवाब देता है जब आपका फ़ोन सोया हो, जेब में हो, या दुनिया के दूसरे छोर पर हो।

एक-एक ऐप का सेटअप कनेक्शन के नीचे अपने अलग पेज पर है.

Marrow की सभी गाइड: MCP · सेल्फ़-होस्टेड मिरर · ऑटोमेशन · फ़ाइलें · सहायता

यह क्या है

आपके अपने हार्डवेयर पर चलने वाला एक छोटा ओपन-सोर्स सर्वर: Raspberry Pi, NAS, कोई पुराना लैपटॉप, $5 का VPS। आपका फ़ोन QR कोड स्कैन करके एक बार उससे पेयर होता है, फिर ऐप बंद होने पर भी बैकग्राउंड में हर बदलाव पुश करता है। सर्वर आपके Marrow डेटा की पूरी SQLite कॉपी रखता है और पढ़ने के लिए तेरह MCP टूल परोसता है: फ़ोन के सात, sleep_log और symptoms_and_mood, और चार जो ऐप की अपनी भाषा में जवाब देते हैं (daily_brief, baselines, what_changed, data_quality), ताकि एजेंट रात के 3 बजे, आपका फ़ोन दराज़ में होते हुए भी, पूछ सके "इस हफ़्ते मेरी नींद कैसी रही"। MIT लाइसेंस: github.com/MarrowHealth/marrow-mcp.

इंस्टॉल करें

एक Python फ़ाइल, सिर्फ़ स्टैंडर्ड लाइब्रेरी, Python 3.10 या नया:

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

या Docker से:

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

पहली बार शुरू होने पर यह एक पेयरिंग URL छापता है और आपके नेटवर्क के किसी भी ब्राउज़र में QR कोड दिखाता है।

फ़ोन को पेयर करें

  1. पेयरिंग URL को अपने पास की किसी भी स्क्रीन पर खोलें।
  2. Marrow में: एक्सपोर्ट, सर्वर MCP, सर्वर से पेयर करें, कोड स्कैन करें।
  3. हो गया। फ़ोन पुश करना शुरू कर देता है, और सर्वर पेज आख़िरी पुश का समय और कितने रिकॉर्ड इंतज़ार में हैं यह दिखाता है।

पेयरिंग सर्वर की डेटा डायरेक्टरी में दो टोकन बनाती है: एक जिससे फ़ोन पुश करता है, एक जिससे एजेंट पढ़ते हैं। उसे बदलने के लिए टोकन फ़ाइल हटाएँ।

किसी एजेंट को उस पर लगाएँ

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

तेरह टूल, सब रीड। नौ रॉ वाले: health_summary, list_metrics, metric_daily, metric_samples, workouts, nutrition_log, strength_log, sleep_log, symptoms_and_mood। और चार जो वहाँ से शुरू होते हैं जहाँ रॉ वाले रुकते हैं, आपके अपने पिछले सामान्य स्तर के हिसाब से आँके हुए, उसी गणित से जो ऐप का होम पेज इस्तेमाल करता है: daily_brief (एक दिन: हर मुख्य मेट्रिक अपने मान और ऐप के अपने वाक्यांश के साथ, खाना और पानी आपके लक्ष्यों के मुकाबले, बीती रात की नींद, की गई ट्रेनिंग, ज़िक्र करने लायक झंडे), baselines (हर मेट्रिक का आपका अपना सामान्य स्तर, ताज़ा मान का z और 90 दिन का रुझान), what_changed (पिछला हफ़्ता उससे पहले के चार हफ़्तों के मुकाबले: क्या हिला, आपके लिए कितना खास है, नींद और सोने के समय के बदलाव, वे स्ट्रीम जो शुरू या बंद हुईं) और data_quality (क्या ताज़ा, पुराना या गायब है, ताकि एजेंट कभी खाली जगह को तथ्य न समझे)। हर रीड फ़ोन के कैलेंडर पर पिछले इतने दिन, या from और to लेता है। सर्वर चार प्रॉम्प्ट (how_am_i_doing, weekly_review, doctor_prep, log_from_text) और उन्हें दिखाने वाले क्लाइंट के लिए चार रिसोर्स भी सूचीबद्ध करता है। इसमें बारह राइट टूल भी हैं, जो आपके फ़ोन के अनुमति देने पर सूचीबद्ध होते हैं। Marrow 1.5 से, एक्सपोर्ट, आपके कनेक्शन में अपने सर्वर के लिए AI को लिखने की अनुमति दें चालू करें और AI उसके ज़रिए भोजन, पानी, वज़न, वर्कआउट, नींद, लक्षण, मूड और लक्ष्य लॉग कर सकता है, मुफ़्त। सर्वर हर प्रविष्टि कतार में रखता है और फ़ोन उसे Marrow के खुलने या जागने पर लागू करता है, और हर एक वापस ली जा सकती है। Claude Desktop, Cursor और बाकी का सेटअप MCP पेज पर है। सिर्फ़ URL बदलता है।

अपने LAN के बाहर से पहुँचना

सर्वर सादा HTTP बोलता है और उसका अपना कोई TLS नहीं है। उसका पोर्ट सीधे फ़ॉरवर्ड न करें। मशीन और फ़ोन पर Tailscale लगाएँ और tailscale serve इस्तेमाल करें, या उसके आगे Cloudflare Tunnel या कोई भी रिवर्स प्रॉक्सी लगाएँ जो HTTPS खत्म करे। पेयरिंग QR में वह पता होता है जो सर्वर बताता है: उसका अपना LAN पता, या वह जो आप उसे --url से दें। उसे उस पते के साथ शुरू करें जो आप असल में इस्तेमाल करेंगे, जैसे marrow-server --url https://pi.your-tailnet.ts.net, फिर पेयर करें।

डिस्क पर क्या आता है

इकाइयाँ: स्वास्थ्य मेट्रिक्स अपनी सहेजी हुई SI इकाइयों में लेबल के साथ आते हैं। स्ट्रेंथ सेट पाउंड में "unit": "lb" के साथ आते हैं, फ़ोन की डिस्प्ले सेटिंग चाहे जो हो, इसलिए मिरर कभी इकाइयाँ नहीं मिलाता। Grafana, DuckDB या किसी cron जॉब को सीधे डेटाबेस फ़ाइल की ओर लगाएँ।

समस्या निवारण

जिस कंप्यूटर पर आपका AI चलता है, उससे दो टेस्ट बताते हैं कि समस्या कहाँ है। पहला, क्या सर्वर चालू है? इसके लिए टोकन नहीं चाहिए:

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

यह {"server": "marrow", "ok": true} से जवाब देता है। फिर, क्या आपके एजेंट का टोकन चलता है?

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"}'
आपको क्या मिलता हैइसका मतलब क्या है
200 OK और टूल की सूचीसर्वर चलता है। अपने एजेंट के कॉन्फ़िग में पता, टोकन और सर्वर का प्रकार (HTTP) जाँचें, फिर एजेंट रीस्टार्ट करें।
bad bearer token के साथ 401गलत टोकन। एजेंट mcp टोकन इस्तेमाल करते हैं, वह नहीं जिससे फ़ोन पेयर होता है। नीचे देखें।
Connection refused या टाइमआउटसर्वर चल नहीं रहा, पोर्ट गलत है, या मशीन का कोई फ़ायरवॉल पोर्ट 8800 रोक रहा है। Docker के साथ 8800:8800 पोर्ट मैपिंग जाँचें।

दूसरों के मुकाबले इसे कब चुनें

मिरर तब चुनें जब आपके एजेंट को डेटा तब चाहिए जब आपका फ़ोन सोया हो या दूर हो, या जब आपको फ़ाइलों की जगह ऐसा डेटाबेस चाहिए जिससे सवाल पूछे जा सकें। फ़ोन पर चलने वाला MCP सर्वर तब चुनें जब आपका एजेंट फ़ोन के पास चलता हो और आप कुछ और सँभालना न चाहें। ऑटोमेशन तब चुनें जब आपके पास पहले से कोई जगह हो जहाँ डेटा पहुँचना चाहिए।