Marrow Health
AR
تنزيل

النسخة المطابقة المستضافة ذاتيًا

خادم صغير على جهاز تملكه يحتفظ بنسخة حية كاملة من بيانات Marrow ويجيب الوكلاء والهاتف نائم، أو في جيب، أو في الجانب الآخر من العالم.

إعداد كل تطبيق على حدة في صفحته الخاصة تحت الاتصالات.

كل أدلة Marrow: MCP · النسخة المطابقة المستضافة ذاتيًا · التحكم التلقائي · الملفات · الدعم

ما هي

خادم صغير مفتوح المصدر تشغّله على جهاز تملكه: Raspberry Pi أو NAS أو حاسوب محمول قديم أو VPS بـ $5. يقترن به هاتفك مرة واحدة بمسح رمز QR، ثم يدفع كل تغيير في الخلفية، والتطبيق مغلق. يحتفظ الخادم بنسخة SQLite كاملة من بيانات Marrow ويقدّم ثلاث عشرة أداة MCP للقراءة: السبع الخاصة بالهاتف، وsleep_log وsymptoms_and_mood، وأربع تجيب بمصطلحات التطبيق نفسه (daily_brief وbaselines وwhat_changed وdata_quality)، فيستطيع وكيل أن يسأل «كيف نمت هذا الأسبوع» عند الثالثة فجرًا وهاتفك في الدرج. برخصة 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

عند أول تشغيل يطبع رابط اقتران ويعرض رمز QR في أي متصفح على شبكتك.

أقرن الهاتف

  1. افتح رابط الاقتران على أي شاشة قريبة منك.
  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، شغّل السماح للذكاء الاصطناعي بالكتابة لخادمك في تصدير، اتصالاتك ويستطيع الذكاء الاصطناعي تسجيل الوجبات والماء والوزن والتمارين والنوم والأعراض والمزاج والأهداف عبره، مجانًا. يضع الخادم كل إدخال في قائمة انتظار ويطبّقه الهاتف عندما يُفتح Marrow أو يستيقظ، ويمكن التراجع عن كل واحد. وإعداد Claude Desktop وCursor وغيرهما في صفحة MCP. العنوان وحده يتغير.

الوصول إليه من خارج شبكتك المحلية

يتحدث الخادم HTTP العادي وليس لديه TLS خاص به. لا تفتح له منفذًا خامًا على الراوتر. ثبّت Tailscale على الجهاز وعلى الهاتف واستخدم tailscale serve، أو ضع أمامه Cloudflare Tunnel أو أي وكيل عكسي ينهي HTTPS. يحمل رمز QR للاقتران العنوان الذي يعلنه الخادم: عنوانه الخاص على الشبكة المحلية، أو الذي تعطيه إياه بـ --url. شغّله بالعنوان الذي ستستخدمه فعلًا، مثل marrow-server --url https://pi.your-tailnet.ts.net، ثم اقرن.

ما يُحفظ على القرص

الوحدات: تصل المقاييس الصحية بوحداتها SI المخزّنة مع وسوم. وتصل جولات القوة بالأرطال مع "unit": "lb" مهما كان إعداد العرض في الهاتف، فلا تخلط النسخة المطابقة الوحدات أبدًا. وجّه Grafana أو DuckDB أو مهمة cron مباشرةً إلى ملف قاعدة البيانات.

استكشاف الأخطاء وإصلاحها

اختباران من الحاسوب الذي يعمل عليه ذكاؤك الاصطناعي يخبرانك أين المشكلة. أولًا، هل الخادم شغّال؟ هذا لا يحتاج إلى رمز:

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) في إعدادات وكيلك، ثم أعد تشغيل الوكيل.
401 مع bad bearer tokenرمز خاطئ. تستخدم الوكلاء رمز mcp، وليس الرمز الذي يقترن به الهاتف. انظر أدناه.
رفض الاتصال أو انتهاء المهلةالخادم لا يعمل، أو المنفذ خاطئ، أو جدار حماية على الجهاز يحجب المنفذ 8800. ومع Docker، تحقق من ربط المنفذ 8800:8800.

متى تختار هذا على غيره

اختر النسخة المطابقة عندما يحتاج وكيلك إلى البيانات والهاتف نائم أو بعيد، أو عندما تريد قاعدة بيانات قابلة للاستعلام بدلًا من ملفات. واختر خادم MCP على الهاتف عندما يعمل وكيلك قرب الهاتف ولا تريد صيانة أي شيء آخر. واختر التحكم التلقائي عندما يكون لديك بالفعل مكان يجب أن تصل إليه البيانات.