النسخة المطابقة المستضافة ذاتيًا
خادم صغير على جهاز تملكه يحتفظ بنسخة حية كاملة من بيانات 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 في أي متصفح على شبكتك.
أقرن الهاتف
- افتح رابط الاقتران على أي شاشة قريبة منك.
- في Marrow: تصدير، MCP خادم، الاقتران بخادم، وامسح الرمز.
- تم. يبدأ الهاتف بالدفع، وتعرض صفحة الخادم وقت آخر دفعة وعدد السجلات المنتظرة.
ينشئ الاقتران رمزين في مجلد بيانات الخادم: واحد يستخدمه الهاتف للدفع، وواحد تستخدمه الوكلاء للقراءة. احذف ملف رمز لتدويره.
وجّه وكيلًا إليه
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، ثم اقرن.
ما يُحفظ على القرص
- قاعدة بيانات SQLite فيها كل سلسلة يومية وعينة وإدخال يوميات وجولة قوة، تُبقيها دفعات الهاتف محدّثة.
- كل دفعة خام تُحفظ مرحليًا بصيغة JSONL بجانبها، فيمكن إعادة بناء قاعدة البيانات إن أفسدتها يومًا.
- خصّص من 50 إلى 150 ميغابايت في السنة لسجل كامل الدقة.
الوحدات: تصل المقاييس الصحية بوحداتها 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. |
- أي رمز. يطبع الخادم رمز الوكلاء عند بدء تشغيله، في السطر الذي يبدأ بـ
agents:. وهو أيضًا في الملف.mcp-tokenفي مجلد البيانات (./dataما لم تمرر--data، و/dataفي Docker). ويستخدم الهاتف رمزًا مختلفًا، من.app-token. ولتغيير رمز الوكلاء، احذف.mcp-tokenوأعد تشغيل الخادم وحدّث كل وكيل. - تقول صفحة الاقتران إن الرمز خاطئ أو ناقص. افتح رابط الاقتران تمامًا كما طبعه الخادم، مع الجزء
?token=. - تعرض صفحة الاقتران نصًا بدلًا من رمز QR. يحتاج رمز QR إلى الحزمة الاختيارية
segno:pip install "marrow-mcp[qr]". أو في Marrow اختر الإدخال يدوياً بدلاً من ذلك واكتبurlوtokenمن ذلك النص. - فشل الاقتران على الهاتف. لم يستطع الهاتف الوصول إلى العنوان في رمز QR. تحت Docker لا يرى الخادم إلا عنوان الحاوية نفسها، فأعطه عنوانك: أضف
--url http://<your-computer-ip>:8800إلى أمره. وخارج شبكة Wi-Fi المنزلية، استخدم عنوان HTTPS منtailscale serveأو نفقًا. - إذن الشبكة المحلية. للوصول إلى خادم على شبكة منزلك، يحتاج Marrow إلى إذن الشبكة المحلية. يسأل iOS في أول مرة تقرن فيها. وإذا قلت لا، فشغّل Marrow في الإعدادات، الخصوصية والأمان، الشبكة المحلية، ثم اقرن مجددًا والتطبيق مفتوح.
- رمز QR هذا ليس رمز اقتران لـ Marrow. قرأت الكاميرا رمزًا آخر. امسح الرمز الموجود في صفحة الاقتران على الخادم.
- بيانات قديمة، أو «لا يستقبل البيانات» في Marrow. لا يستطيع الهاتف الدفع إلى الخادم. تعرض صفحة MCP خادم في Marrow آخر دفعة وعدد السجلات المنتظرة. تأكد أن الخادم يعمل، ثم افتح Marrow لإرسال ما ينتظر. وتعمل الدفعات في الخلفية عندما يسمح iOS.
- يحتاج هذا الخادم إلى تحديث قبل أن يستطيع التسجيل. حدّثه بـ
pip install -U marrow-mcpوأعد تشغيله. ومع Docker، شغّلgit pullوdocker compose up -d --buildفي النسخة المستنسخة. - إدخالات الذكاء الاصطناعي لا تظهر. شغّل السماح للذكاء الاصطناعي بالكتابة للخادم في تصدير، «اتصالاتك». تظهر أدوات الكتابة على الخادم بعد ذلك فقط. ينتظر كل إدخال على الخادم ويصل عند فتح Marrow أو استيقاظه في المرة التالية.
- لا يمكن تشغيل الاتصال. تحتفظ الخطة المجانية باتصال واحد قيد التشغيل في كل مرة، وMarrow Pro حتى 10: الذكاء الاصطناعي والخوادم والتحكمات التلقائية معًا.
متى تختار هذا على غيره
اختر النسخة المطابقة عندما يحتاج وكيلك إلى البيانات والهاتف نائم أو بعيد، أو عندما تريد قاعدة بيانات قابلة للاستعلام بدلًا من ملفات. واختر خادم MCP على الهاتف عندما يعمل وكيلك قرب الهاتف ولا تريد صيانة أي شيء آخر. واختر التحكم التلقائي عندما يكون لديك بالفعل مكان يجب أن تصل إليه البيانات.