Marrow से एजेंट कनेक्ट करें
Marrow आपका Apple Health डेटा Model Context Protocol पर परोसता है, आपके अपने iPhone या आपके अपने सर्वर से। फ़ोन पर नौ रीड टूल, आपके अपने सर्वर पर तेरह (उनमें से चार ऐप की अपनी भाषा में जवाब देते हैं, आपके अपने सामान्य स्तर के हिसाब से आँककर), एक स्विच के पीछे बारह राइट टूल, बेयरर-टोकन ऑथ, कहीं कोई खाता नहीं। यह पेज पूरा सेटअप है।
एजेंट किसी दूसरी मशीन पर है, या फ़ोन के सोते हुए भी जवाब चाहिए? सेल्फ़-होस्टेड मिरर पेयर करें (pip install marrow-mcp): यह Claude Code, Cursor और OpenClaw के लिए 24/7 जवाब देता है। अगर आप बिल्ट-इन Claude या ChatGPT कनेक्टर से यहाँ आए हैं, तो यह वह करता है जो वे नहीं करते.
एक-एक ऐप का सेटअप, Claude Code, Cursor, Codex और बहुत कुछ, कनेक्शन के नीचे अपने अलग पेज पर है.
मुझे अपना Apple Health डेटा आपसे जोड़ना है। Marrow एक मुफ़्त iOS ऐप है जो इसे MCP पर परोसता है, इसके लिए न खाता चाहिए न सब्सक्रिप्शन। यह App Store पर है: https://apps.apple.com/app/id6800819435. पूरी प्रक्रिया में मेरा मार्गदर्शन करें: ऐप इंस्टॉल करना, एक्सपोर्ट फिर लोकल MCP में सर्वर चालू करना, और जो URL और बेयरर टोकन वह मुझे दिखाए उसे अपने MCP कॉन्फ़िग में Streamable HTTP सर्वर के रूप में जोड़ना। अगर आप वह कॉन्फ़िग खुद नहीं बदल सकते, तो मुझे सटीक फ़ाइल बताएँ और यह भी कि क्या पेस्ट करना है। सेटअप दस्तावेज़: https://marrowhealthapp.com/mcp. जुड़ जाने पर, पिछले 7 दिन के लिए health_summary को कॉल करें और बताएँ कि क्या अलग दिखता है।
1. सर्वर चालू करें
यह बंद आता है। ऐप में: एक्सपोर्ट → लोकल MCP, फिर सर्वर चालू करें। आपको एक URL, एक टोकन और एक QR कोड मिलता है। सर्वर सिर्फ़ आपके लोकल नेटवर्क से बँधता है, और ऐप ठीक वह पता दिखाता है जिस पर वह सुन रहा है।
2. अपने क्लाइंट को उस पर लगाएँ
<phone-ip> और <token> की जगह वह रखें जो ऐप आपको दिखाता है।
Claude Code
claude mcp add --transport http marrow \ http://<phone-ip>:21212/mcp \ --header "Authorization: Bearer <token>"
Claude Desktop, एक क्लिक में
अपने कंप्यूटर पर marrow.mcpb डाउनलोड करें और उस पर डबल-क्लिक करें। Claude Desktop एक्सटेंशन इंस्टॉल करता है और ऊपर वाला URL और टोकन माँगता है। टर्मिनल की ज़रूरत नहीं।
Claude Desktop (मैन्युअल), Cursor, या mcp.json इस्तेमाल करने वाला कोई भी क्लाइंट
{
"mcpServers": {
"marrow": {
"type": "http",
"url": "http://<phone-ip>:21212/mcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}
हाथ से जाँचें
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"}'
टूल
रीड हमेशा रहते हैं। राइट दूसरा स्विच हैं। जब आप लोकल MCP के तहत AI को लिखने की अनुमति दें चालू करते हैं, तो फ़ोन का सर्वर वही बारह राइट टूल सूचीबद्ध करता है जो Cloud MCP करता है (log_meal, log_water, log_weight, log_workout, log_strength, log_sleep, log_symptom, log_mood, edit_entry, delete_entry, set_targets, undo_entry), जो फ़ोन पर तुरंत लागू होते हैं और Apple Health में लिखे जाते हैं, और हर एक वापस लिया जा सकता है। बंद होने पर सर्वर सिर्फ़ पढ़ने वाला रहता है।
| टूल | क्या लौटाता है |
|---|---|
health_summary | गतिविधि, हृदय, नींद और पोषण के हाल के दिन |
list_metrics | ट्रैक किया जाने वाला हर मेट्रिक, इकाइयों और कवरेज के साथ |
metric_daily | किसी भी मेट्रिक के दैनिक मान, 400 दिन तक |
metric_samples | टाइमस्टैम्प और स्रोत डिवाइस के साथ रॉ रिकॉर्ड |
workouts | हर स्रोत के वर्कआउट। फ़ोन पर Marrow के स्ट्रेंथ सेशन भी, सेट-दर-सेट |
nutrition_log | पूरे पोषक तत्वों के ब्योरे के साथ फ़ूड डायरी |
strength_log | हर लिफ़्टिंग सेट अपने सेट प्रकार के साथ, हर एक्सरसाइज़ का अनुमानित 1RM, हर मांसपेशी समूह का वॉल्यूम। वार्म-अप कभी वॉल्यूम या रिकॉर्ड में नहीं गिने जाते |
sleep_log | जागने के दिन के हिसाब से एक रात: सोने का समय, जागने का समय, सोए घंटे, हर चरण के मिनट (सेल्फ़-होस्टेड मिरर) |
symptoms_and_mood | गंभीरता के साथ लक्षण, और भावों व वे किस बारे में थे के साथ State of Mind प्रविष्टियाँ (सेल्फ़-होस्टेड मिरर) |
सेल्फ़-होस्टेड मिरर और Cloud MCP पर चार और। ये वहाँ से शुरू होते हैं जहाँ रॉ रीड रुकते हैं: हर मान को आपके अपने पिछले सामान्य स्तर के मुकाबले आँका जाता है, उसी गणित से जो ऐप का होम पेज इस्तेमाल करता है (उस दिन को छोड़कर), इसलिए एजेंट ऐसे रीड से शुरू करता है जो पहले से आपके लिए सही है, किसी संख्या को आबादी के हिसाब से परखने की जगह।
| टूल | क्या लौटाता है |
|---|---|
daily_brief | एक दिन: हर मुख्य मेट्रिक अपने मान और ऐप के अपने वाक्यांश के साथ (आपके लिए सामान्य, आपके सामान्य से ऊपर, आपके सामान्य से काफ़ी नीचे), खाना और पानी आपके लक्ष्यों के मुकाबले, बीती रात की नींद, की गई ट्रेनिंग, मूड और लक्षण, और ज़िक्र करने लायक झंडे |
baselines | हर मेट्रिक का आपका अपना सामान्य स्तर: दायरे पर औसत और फैलाव, ताज़ा मान का z और वाक्यांश, 7 दिन का औसत और हर महीने 90 दिन का रुझान |
what_changed | पिछला हफ़्ता उससे पहले के चार हफ़्तों के मुकाबले: क्या हिला और आपके लिए कितना खास है, खाना, ट्रेनिंग, नींद और सोने के समय के बदलाव, वे स्ट्रीम जो आना शुरू हुईं या बंद हुईं |
data_quality | मिरर में क्या है और वह कितना ताज़ा है: हर मेट्रिक का ताज़ा दिन, कवरेज, अंतराल, स्रोत और क्या वह पुराना पड़ गया है, ताकि एजेंट कभी खाली जगह को तथ्य न समझे |
ऑन-डिवाइस सर्वर पहले सात रॉ टूल के साथ daily_brief और baselines परोसता है (नौ रीड)। सेल्फ़-होस्टेड मिरर तेरहों परोसता है, और होस्टेड Cloud MCP कॉपी भी। मिरर पर हर रीड फ़ोन के कैलेंडर पर पिछले इतने दिन, या from और to लेता है, और मिरर उन क्लाइंट को चार प्रॉम्प्ट (how_am_i_doing, weekly_review, doctor_prep, log_from_text) और चार रिसोर्स भी देता है जो उन्हें दिखाते हैं। रॉ सैम्पल में नींद के चरण और लक्षणों की गंभीरता होती है।
list_metrics के पीछे Apple Health के 172 मेट्रिक्स हैं, और nutrition_log और strength_log के पीछे Marrow का अपना डायरी और स्ट्रेंथ डेटा, जो गतिविधि, हृदय, नींद, शरीर, श्वसन, गतिशीलता, सुनने, पोषण, मन, लक्षण, साइकिल और आदतों को कवर करता है। इस पेज का मशीन-पठनीय रूप: tools.json.
फ़ोन के न होने पर भी इसे चालू रखना
ऑन-डिवाइस सर्वर तब जवाब देता है जब ऐप चल रहा हो। 24/7 एक्सेस के लिए सेल्फ़-होस्टेड मिरर पेयर करें: Pi, NAS या पुराने लैपटॉप पर एक Python stdlib फ़ाइल। फ़ोन के बैकग्राउंड पुश उसे ताज़ा रखते हैं, और वह http://<server-ip>:8800/mcp पर अपने टोकन के साथ वही MCP सतह बोलता है। फ़ोन के टूल ऐप की मेट्रिक कुंजियाँ इस्तेमाल करते हैं (active_energy, heart_rate_variability)। सर्वर वे और Apple के छोटे नाम (active_energy_burned) दोनों स्वीकार करता है, इसलिए एजेंट बिना दोबारा सीखे उनके बीच आ-जा सकता है। यह ओपन सोर्स है और इंस्टॉल किया जा सकता है:
pip install marrow-mcp marrow-server
सोर्स: github.com/MarrowHealth/marrow-mcp। आधिकारिक MCP रजिस्ट्री में tech.skeletonarmy/marrow के नाम से सूचीबद्ध.
किसी भी सर्वर का पोर्ट खुले इंटरनेट पर फ़ॉरवर्ड न करें। दोनों LAN या टेलनेट के लिए बने हैं। रिमोट एक्सेस चाहिए तो उसके आगे tailscale serve या उसके जैसा कुछ लगाएँ, ताकि ट्रांसपोर्ट HTTPS हो और बेयरर टोकन दिखने से पहले ही डिवाइस प्रमाणित हो चुका हो।
समस्या निवारण
नीचे दिए टेस्ट से शुरू करें, जिस कंप्यूटर पर आपका AI चलता है उससे चलाकर। यह बताता है कि समस्या किस तरफ़ है। Marrow में कनेक्शन के पेज का पता और टोकन इस्तेमाल करें, फ़ोन पर Marrow खुला रखकर।
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"}'
| आपको क्या मिलता है | इसका मतलब क्या है |
|---|---|
HTTP/1.1 200 OK और टूल की सूची | फ़ोन ठीक है। समस्या आपके ऐप की सेटिंग में है: पता, टोकन, या HTTP (Streamable HTTP) के अलावा कोई सर्वर प्रकार। कॉन्फ़िग ठीक करें और ऐप रीस्टार्ट करें। |
401 Unauthorized | टोकन गलत है, या Marrow में यह कनेक्शन बंद है। आपके कनेक्शन में हर कनेक्शन का अपना टोकन होता है, और एक को बंद करने से वह ऐप बाहर हो जाता है जबकि बाकी चलते रहते हैं। उसे चालू करें, या उसका टोकन फिर कॉपी करें। |
404 Not Found के साथ use POST /mcp | पाथ गलत है। पता /mcp पर खत्म होता है. |
| Connection refused, या टाइमआउट होने तक कोई जवाब नहीं | कंप्यूटर फ़ोन तक नहीं पहुँच सकता। नीचे की सूची से गुज़रें। |
- Marrow खुला होना चाहिए। फ़ोन का सर्वर तभी जवाब देता है जब Marrow सामने खुला हो। ऐप बदलने या फ़ोन लॉक करने पर iOS जल्द ही उसे रोक देता है। Marrow फिर खोलें, वह फिर जवाब देने लगता है। फ़ोन के सोते हुए जवाब के लिए सर्वर MCP या Cloud MCP इस्तेमाल करें.
- वही Wi-Fi या टेलनेट। कंप्यूटर और फ़ोन एक Wi-Fi नेटवर्क या एक टेलनेट पर होने चाहिए। लोकल MCP मोबाइल डेटा पर कभी जवाब नहीं देता। अगर Marrow कोई नेटवर्क पता नहीं मिला कहे, तो Wi-Fi या टेलनेट से जुड़ें। गेस्ट और होटल का Wi-Fi अक्सर डिवाइसों को एक-दूसरे तक पहुँचने नहीं देता।
- टेलनेट पता या Wi-Fi पता। Marrow फ़ोन के पतों में से एक दिखाता है, आमतौर पर उसका Wi-Fi वाला। जो कंप्यूटर फ़ोन तक Tailscale से पहुँचता है, उसे इसकी जगह फ़ोन का टेलनेट पता चाहिए। Tailscale ऐप उसे दिखाता है (वह
100.से शुरू होता है)। उसे अपने कॉन्फ़िग में Wi-Fi पते की जगह रखें और वही पोर्ट और टोकन रखें। - पता बदल गया। राउटर कुछ समय बाद फ़ोन को नया Wi-Fi पता दे सकता है। Marrow का पता अपने कॉन्फ़िग के पते से मिलाएँ। राउटर पर आरक्षित पता उसे स्थिर रखता है।
- Local Network एक्सेस वजह नहीं है। iOS इसे तब पूछता है जब Marrow आपके नेटवर्क के किसी डिवाइस तक पहुँचता है, जैसे पेयर किया हुआ सर्वर। फ़ोन के सर्वर के किसी कंप्यूटर को जवाब देने के लिए किसी अनुमति की ज़रूरत नहीं, इसलिए उस स्विच को चालू या बंद करने से लोकल MCP पर कोई फ़र्क नहीं पड़ता।
- कंप्यूटर पर VPN। आपके टेलनेट के अलावा कोई VPN लोकल ट्रैफ़िक को आपके Wi-Fi से दूर भेज सकता है। उसे रोकें और टेस्ट फिर आज़माएँ।
- आपके ऐप के लॉग में 405। फ़ोन सिर्फ़ POST का जवाब देता है और कोई स्ट्रीम खुली नहीं रखता, इसलिए GET पर
405मिलता है। Streamable HTTP बोलने वाले ऐप POST से आगे बढ़ते हैं, इसलिए यह अकेली लाइन समस्या नहीं है। - आपका ऐप सिर्फ़ कमांड लेता है (stdio)। फ़ोन के पते को mcp-remote ब्रिज से चलाएँ। कंप्यूटर के अपने न होने वाले सादे http पते के लिए इसे
--allow-httpचाहिए:npx -y mcp-remote http://<phone-ip>:21212/mcp --allow-http --header "Authorization: Bearer <token>"। Windows पर Cursor, Codex या Claude Desktop की कॉन्फ़िग फ़ाइल में, args के अंदर के स्पेस बिगड़ सकते हैं। हेडर कोAuthorization:${AUTH_HEADER}लिखें और सर्वर के env मेंAUTH_HEADERकोBearer <token>पर सेट करें। - यह पढ़ता है पर लॉग नहीं कर सकता। लोकल MCP के तहत AI को लिखने की अनुमति दें चालू करें। प्रविष्टियाँ फ़ोन पर तुरंत लागू होती हैं और हर एक को वापस लिया जा सकता है।
- कनेक्शन चालू नहीं होता। मुफ़्त प्लान में एक समय में 1 कनेक्शन चालू रह सकता है, Marrow Pro में 10 तक: AI, सर्वर और ऑटोमेशन मिलाकर। पहले आपके कनेक्शन में एक को बंद करें।
एक-एक ऐप का सेटअप और हल, Claude Code, Cursor, VS Code और बहुत कुछ, कनेक्शन के नीचे हैं.
इसकी कीमत क्या है
कुछ नहीं। एजेंट एक्सेस मुफ़्त टियर में है, बैकग्राउंड सिंक, ऑटोमैटिक एक्सपोर्ट, CSV और JSON एक्सपोर्ट और बारकोड स्कैनिंग के साथ। Health Auto Export ने Marrow से पहले MCP सर्वर जारी किया, और वह अच्छा है, पर उनका Premium सब्सक्रिप्शन माँगता है। यही फ़र्क, पहले होना नहीं, कहने लायक दावा है।
ज़रूरतें
- iOS 17 या उसके बाद का वर्शन, और Apple Health। Android या वेब वर्शन नहीं है।
- Marrow App Store पर है, मुफ़्त: apps.apple.com/app/id6800819435.
- Marrow का कोई खाता नहीं होता, इसलिए यूज़र के अपने डिवाइस के बिना बुलाने के लिए कोई होस्टेड API नहीं है।