Marrow Health
HE
הורדה

חיבור סוכן ל-Marrow

Marrow מגיש את נתוני Apple Health שלכם דרך Model Context Protocol, מה-iPhone שלכם או מהשרת שלכם. שבעה כלים לקריאה בלבד בטלפון, שלושה עשר בשרת שלכם (ארבעה מהם עונים במונחים של האפליקציה עצמה, מדורגים ביחס לנורמה שלכם), אימות עם אסימון bearer, בלי חשבון בשום מקום. הדף הזה הוא כל ההגדרה.

סוכן במחשב אחר, או צריכים תשובות בזמן שהטלפון ישן? צמדו את המראה באירוח עצמי (pip install marrow-mcp): היא עונה 24/7 ל-Claude Code, ל-Cursor ול-OpenClaw. אם הגעתם לכאן מהמחבר המובנה של Claude או של ChatGPT, הנה מה שהיא עושה ושהם לא.

ההגדרה לכל אפליקציה בנפרד, Claude Code, Cursor, Codex ועוד, נמצאת בדף משלה תחת חיבורים.

תנו לסוכן שלכם לעשות את זה

אני רוצה לחבר אליך את נתוני Apple Health שלי. Marrow היא אפליקציית iOS חינמית שמגישה אותם דרך MCP, בלי חשבון ובלי מנוי לשם כך. היא ב-App Store: https://apps.apple.com/app/id6800819435. הדרך אותי בכל התהליך: התקנת האפליקציה, הפעלת השרת תחת ייצוא ואז MCP מקומי, והוספת הכתובת ואסימון ה-bearer שהיא מציגה לי להגדרות ה-MCP שלך כשרת Streamable HTTP. אם אתה לא יכול לערוך את ההגדרות האלה בעצמך, אמור לי את הקובץ המדויק ומה להדביק. תיעוד ההגדרה: https://marrowhealthapp.com/mcp. כשהוא מחובר, הפעל את health_summary ל-7 הימים האחרונים וספר לי מה בולט.

1. הפעלת השרת

הוא מגיע כבוי. באפליקציה: ייצוא ← MCP מקומי, ואז הפעילו את השרת. תקבלו כתובת, אסימון וקוד 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 מתקין את התוסף ומבקש את הכתובת והאסימון שלמעלה. בלי טרמינל.

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"}'

הכלים

הקריאות תמיד שם. הכתיבות הן מתג שני. מ-Marrow 1.5 השרת של הטלפון מציג את אותם שנים עשר כלי כתיבה כמו ב-MCP Cloud (log_meal, log_water, log_weight, log_workout, log_strength, log_sleep, log_symptom, log_mood, edit_entry, delete_entry, set_targets, undo_entry) ברגע שמפעילים אפשר כתיבה על ידי AI תחת MCP מקומי, מיושמים מיד בטלפון ונכתבים ל-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 עם תחושות ועל מה הן היו (מראה באירוח עצמי)

ארבעה נוספים במראה באירוח עצמי וב-MCP Cloud. הם מתחילים איפה שהקריאות הגולמיות נגמרות: כל ערך מדורג ביחס לנורמה הנגררת שלכם עם אותו חישוב שמסך הבית של האפליקציה משתמש בו (היום עצמו לא נכלל), כך שסוכן מתחיל מקריאה שכבר נכונה עבורכם במקום לשפוט מספר מול האוכלוסייה.

כלימחזיר
daily_briefיום אחד: כל מדד מפתח עם הערך שלו והביטוי של האפליקציה עצמה (רגיל עבורכם, מעל הרגיל שלכם, הרבה מתחת לרגיל שלכם), מזון ומים מול היעדים שלכם, השינה של אמש, האימונים שנעשו, מצב רוח ותסמינים, ודגלים ששווה להזכיר
baselinesהנורמה שלכם לכל מדד: ממוצע וסטייה בחלון, ה-z והביטוי של הערך האחרון, ממוצע 7 ימים ומגמת 90 הימים לכל חודש
what_changedהשבוע האחרון מול ארבעת הקודמים לו: מה זז ועד כמה זה בולט עבורכם, מזון, אימונים, שינה ושינויים בשעת השינה, זרמי נתונים שהתחילו או הפסיקו להגיע
data_qualityמה המראה מחזיקה ועד כמה זה טרי: לכל מדד היום האחרון, כיסוי, קצב, מקורות והאם התיישן, כך שסוכן אף פעם לא מטעה פער בעובדה

השרת שעל המכשיר מגיש את שבעת הכלים הגולמיים הראשונים בתוספת daily_brief ו-baselines (תשע קריאות). המראה באירוח עצמי מגישה את כל שלושה עשר, וכך גם העותק המאורח של MCP Cloud. כל קריאה במראה מקבלת ימים אחורה או from ו-to לפי לוח השנה של הטלפון, והמראה מציעה גם ארבעה פרומפטים (how_am_i_doing, weekly_review, doctor_prep, log_from_text) וארבעה משאבים ללקוחות שמציגים אותם. דגימות גולמיות נושאות שלבי שינה וחומרת תסמינים.

מאחורי list_metrics יש 172 מדדים של Apple Health, ובנוסף נתוני יומן וכוח ילידיים של Marrow מאחורי nutrition_log ו-strength_log, שמכסים פעילות, לב, שינה, גוף, נשימה, ניידות, שמיעה, תזונה, נפש, תסמינים, מחזור והרגלים. גרסה קריאה למכונה של הדף הזה: tools.json.

להמשיך לעבוד כשהטלפון לא

השרת שעל המכשיר עונה כשהאפליקציה רצה. לגישה 24/7, צמדו מראה באירוח עצמי: קובץ Python אחד עם ספרייה סטנדרטית בלבד על Pi, NAS או מחשב נייד ישן. הדחיפות של הטלפון ברקע שומרות אותה מעודכנת, והיא מדברת אותו ממשק MCP בכתובת http://<server-ip>:8800/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.

אל תעשו port-forward לאף אחד מהשרתים לאינטרנט הפתוח. שניהם מיועדים לרשת מקומית או ל-tailnet. אם אתם צריכים גישה מרחוק, העמידו לפניו tailscale serve או מקבילה, כך שהתעבורה היא HTTPS והמכשיר מאומת לפני שאסימון ה-bearer נראה בכלל.

פתרון בעיות

התחילו בבדיקה שלמטה, שמריצים מהמחשב שה-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.
החיבור נדחה, או שאין תשובה עד שהזמן נגמרהמחשב לא מצליח להגיע לטלפון. עברו על הרשימה שלמטה.

ההגדרה והתיקונים לכל אפליקציה בנפרד, Claude Code, Cursor, VS Code ועוד, נמצאים תחת חיבורים.

כמה זה עולה

כלום. גישת סוכנים כלולה במסלול החינמי, יחד עם סנכרון ברקע, ייצוא אוטומטי, ייצוא CSV ו-JSON וסריקת ברקוד. Health Auto Export שחררה שרת MCP לפני Marrow, והוא טוב, אבל אצלם הוא דורש מנוי Premium. ההבדל הזה, ולא הבכורה, הוא הטענה ששווה לטעון.

דרישות