اربط Shager بـ Claude Code: أمر واحد، ثم جهّز منشورات لخمسين حسابًا من الطرفية
أضف خادم MCP البعيد لـ Shager إلى Claude Code باستخدام claude mcp add وترويسة bearer، واختر النطاق المناسب، وتحقق من الاتصال، وجهّز أول منشور لحسابات متعددة.

لربط Shager بـ Claude Code، نفّذ الأمر claude mcp add --transport http shager https://app.shager.ai/api/mcp --header "Authorization: Bearer shgr_live_..." ثم تحقق من /mcp داخل الجلسة. بهذا يُسجَّل خادم MCP البعيد لـ Shager عبر streamable HTTP، ويصبح Claude Code قادرًا فورًا على عرض مساحات عملك وحساباتك المربوطة ومنشوراتك. العملية كلها تستغرق نحو دقيقتين بعد أن يصبح مفتاح API في يدك.
يشرح هذا الدليل كيف تحصل على المفتاح، وكيف تختار نطاق الإعداد المناسب، وكيف تُبقي السر خارج git، وما أول مهمة حقيقية تستحق التشغيل.
ماذا تحتاج قبل أن تبدأ؟
تحتاج إلى أمرين: Claude Code مثبتًا، ومفتاح API من Shager يبدأ بـ shgr_live_.
هناك طريقتان للحصول على المفتاح. إذا كان لديك حساب في Shager، فيُنشئ أحد أفراد فريقك المفتاح من https://app.shager.ai/dashboard/agents ويختار النطاقات (read وwrite، وpublish اختياريًا). وإذا لم يكن لديك حساب بعد، يستطيع الوكيل أن يسجّل نفسه بطلب HTTP واحد ويحصل على مفتاح لبيئة اختبار. هذا المسار مشروح في تسجيل الوكيل الذاتي وتولّي الملكية، والنسخة المختصرة موجودة في /auth.md.
كلمة عن النطاقات قبل أن تلصق أي شيء: في الأسبوع الأول، امنح Claude Code النطاقين read وwrite فقط. سيتمكن بذلك من إنشاء مساحات عمل ورفع الوسائط وبناء المسودات، لكنه لن يستطيع جدولة أي شيء أو نشره. أضف publish لاحقًا، حين تثق بالمسودات التي يُعدّها.

كيف تضيف الخادم باستخدام claude mcp add؟
تعرض وثائق MCP في Claude Code الصيغة الدقيقة لخادم HTTP بعيد مع رمز bearer: الخيار --transport http، ثم اسم، ثم الرابط، ثم --header. مع Shager تبدو هكذا:
claude mcp add --transport http shager https://app.shager.ai/api/mcp \
--header "Authorization: Bearer shgr_live_your_key_here"
تنبّه الوثائق إلى أن claude mcp add يحفظ الإعداد دون التحقق من صحة بيانات الاعتماد. أي خطأ مطبعي في المفتاح لن يظهر هنا، بل لاحقًا حين يحاول Claude Code الاتصال بالخادم.
أي نطاق تختار؟
يحدد الخيار --scope مكان حفظ الإعداد. بحسب صفحة الوثائق نفسها:
| النطاق | أين يُحفظ | متى تستخدمه |
|---|---|---|
local (الافتراضي) |
إعدادات المستخدم لديك، لهذا المشروع فقط | تجرّب Shager في مستودع واحد |
project |
الملف .mcp.json في المستودع، مشتركًا مع الفريق |
الفريق كله يشغّل مهام المحتوى من هذا المستودع |
user |
إعدادات المستخدم لديك، لكل المشاريع | تريد Shager متاحًا أينما فتحت Claude Code |
بالنسبة إلى الوكالات، يكون user غالبًا الخيار الصحيح، لأن التوزيع لا يرتبط بقاعدة شيفرة واحدة.
claude mcp add --transport http shager --scope user https://app.shager.ai/api/mcp \
--header "Authorization: Bearer shgr_live_your_key_here"
كيف تشارك الإعداد دون أن ترفع المفتاح إلى المستودع؟
إذا أردت النطاق project ليحصل زملاؤك على الخادم تلقائيًا، فلا تكتب المفتاح مباشرة في .mcp.json. يدعم Claude Code توسيع متغيرات البيئة في url وheaders لخوادم HTTP، بالصيغة ${VAR} أو ${VAR:-default}. ارفع هذا إلى المستودع:
{
"mcpServers": {
"shager": {
"type": "http",
"url": "https://app.shager.ai/api/mcp",
"headers": {
"Authorization": "Bearer ${SHAGER_API_KEY}"
}
}
}
}
ثم يصدّر كل شخص مفتاحه في ملف تعريف الصدفة لديه:
export SHAGER_API_KEY="shgr_live_your_key_here"
تفصيلتان من الوثائق مهمتان هنا. إذا لم يكن المتغير معرّفًا، فسيحمّل Claude Code الإعداد مع ذلك ويرسل النص الحرفي ${SHAGER_API_KEY}، مع تحذير في claude mcp list. كما أن بعض أسماء بيانات الاعتماد المحجوزة مثل ANTHROPIC_API_KEY تتوسع عمدًا إلى قيمة فارغة في ترويسات الخوادم البعيدة، فاستخدم دائمًا اسم متغير خاصًا بك. الاسم SHAGER_API_KEY مناسب.
ثم إن تخصيص مفتاح لكل شخص يجعل سجل التدقيق في https://app.shager.ai/dashboard/agents مفيدًا فعلًا. كل استدعاء من وكيل يُسجَّل باسم المفتاح الذي نفّذه، فتعرف أي جلسة أنشأت أي مسودة.
كيف تتأكد من أن الاتصال يعمل؟
من الصدفة:
claude mcp list
claude mcp get shager
وداخل الجلسة، اكتب /mcp. يظهر الخادم السليم بحالة متصل. وتذكر الوثائق أن الخادم ذا بيانات الاعتماد الخاطئة يظهر بحالة فشل، مع رمز حالة HTTP في التفاصيل. في Shager، يعني الرمز 401 أن الترويسة مفقودة أو مكتوبة بصيغة خاطئة. يتوقع الخادم بالضبط Authorization: Bearer shgr_...، مع كلمة Bearer ومسافة واحدة.
بعد ذلك اطلب من Claude شيئًا خفيفًا للقراءة فقط:
Call whoami on shager, then list my workspaces with their channel counts.
تُرجع whoami اسم المؤسسة والنطاقات الممنوحة للمفتاح. إذا رأيت read وwrite دون publish، فالإعداد يعمل كما هو مقصود.

ما أول مهمة حقيقية؟
لا تبدأ بعبارة «انشر شيئًا». ابدأ بمسودة تختبر أجزاء Shager المهمة حين تعمل على نطاق واسع. هذه تعليمات جيدة للبداية:
In the workspace "Northside Dental", list the channels and the account groups.
Upload this video as media: https://example.com/clips/whitening-30s.mp4
(width 1080, height 1920, duration_ms 30000).
Then create a DRAFT post (no schedule_at) to the group "All locations" as a REEL,
with a caption per channel that mentions the city in that account's name,
first_comment "Book a slot: " plus the cta_url,
cta_url https://northsidedental.example/book, campaign "whitening-oct".
Show me the per-channel captions before you call create_post.
في الخلفية، يستدعي Claude بالتتابع list_channels وlist_groups وupload_media_from_url وcreate_post. وثلاثة حقول في هذا الاستدعاء تحمل العبء الأكبر:
per_channelيمنح كل حساب نصه الخاص بدل خمسين منشورًا متطابقًا. الشبكات والجمهور معًا يلاحظون التكرار، ولهذا نوصي به في تجنّب الحظر بسبب الرسائل المزعجة عند النشر على نطاق واسع.cta_urlيحصل على رابط قصير ووسم UTM منفصلين لكل حساب، معutm_contentلتمييز الحساب. وتعود النقرات مقسّمة حسب الحساب من خلالget_analytics.- تمرير العرض والارتفاع و
duration_msعند الرفع يتيح لـ Shager التحقق من الريل وفق قواعد كل شبكة قبل وضع أي شيء في قائمة الانتظار.
وبما أنه لم يُمرَّر schedule_at، فالنتيجة مسودة. تراجعها في تطبيق Shager أو تطلب من Claude تنفيذ get_post.
كيف تتحكم في ما يُسمح لـ Claude Code بفعله؟
يطلب Claude Code الإذن قبل استدعاء أدوات MCP ما لم تسمح بها مسبقًا. تُسمّى أدوات MCP بالصيغة mcp__<server>__<tool>، فستجد مع Shager أسماء مثل mcp__shager__create_post وmcp__shager__list_posts وغيرها. قائمة سماح معقولة للبداية توافق على أدوات القراءة وتترك كل ما يكتب خاضعًا لطلب الإذن. اجمع ذلك مع مفتاح بلا publish، فتحصل على مكبحين مستقلين: Claude Code يسألك أولًا، والخادم يرفض الجدولة في كل الأحوال.
حين تصبح مستعدًا للجدولة، أنشئ مفتاحًا جديدًا يتضمن publish، واستبدل به قيمة متغير البيئة، واحتفظ بالمفتاح القديم ذي صلاحيات القراءة والكتابة للجلسات الاستكشافية. يفرض REST API وخادم MCP في Shager النطاقات نفسها، فتبقى القاعدة سارية أيًا كان المسار الذي يسلكه السكربت.
قائمة استكشاف الأخطاء
| العَرَض | السبب المرجّح | الحل |
|---|---|---|
/mcp يُظهر فشلًا مع 401 |
الترويسة تنقصها Bearer أو المفتاح مكتوب خطأ |
أعد إضافة الخادم، أو تأكد من تصدير متغير البيئة في الصدفة التي شغّلت Claude |
الأدوات تظهر لكن create_post مع schedule_at يُرجع 403 |
المفتاح بلا publish، أو لم يتولَّ أحد ملكية بيئة الاختبار |
سلوك متوقع. جهّز مسودة بدلًا من ذلك، أو اطلب من شخص إضافة النطاق |
429 rate_limited |
أكثر من 120 طلبًا في الدقيقة على مفتاح واحد | اجمع العمل في دفعات؛ استدعاء create_post واحد يغطي حسابات كثيرة |
422 rejected |
فشلت قاعدة من قواعد الشبكة، كأن يكون الريل أطول من المسموح | اقرأ الرسالة؛ فهي تسمّي الحساب والقاعدة |
الأسئلة الشائعة
هل أحتاج إلى تثبيت أي شيء غير Claude Code؟
لا. يعمل Shager كخادم MCP بعيد، فلا توجد عملية محلية ولا حاوية Docker ولا حزمة npm لتثبيتها. يتصل Claude Code مباشرة بـ https://app.shager.ai/api/mcp عبر streamable HTTP.
هل يستطيع Claude Code النشر دون أن أوافق على كل منشور؟
فقط إذا كان المفتاح الذي يستخدمه يتضمن النطاق publish، وكان إنسان قد تولى ملكية الحساب. من دون هذا النطاق، تُرجع استدعاءات الجدولة والنشر 403 مهما حاول الوكيل. كما تفعّل فرق كثيرة موافقة العميل لكل مساحة عمل، فتضيف خطوة مراجعة بشرية قبل الجدولة.
هل يدعم Shager تسجيل الدخول عبر OAuth في Claude Code؟
نعم. يدعم خادم MCP في Shager تسجيل الدخول عبر OAuth لأي عميل MCP يدعمه. أضف الخادم دون الخيار --header، ثم شغّل /mcp واختر المصادقة، وسجّل الدخول إلى Shager ووافق في المتصفح. وتظل ترويسة مفتاح API الموضحة أعلاه تعمل، وهي الأنسب للسكربتات والأجهزة التي لا يستطيع أحد تسجيل الدخول عليها.
الخطوة التالية
بعد أن يرى Claude Code مساحات عملك، فالخطوة الطبيعية التالية هي تحويل الروتين إلى شيء قابل للتكرار بدل إعادة كتابة التعليمات كل مرة. يحوّل دليل بناء مهارة Claude لـ Shager مسار المسودات أعلاه إلى أمر /shager يستطيع فريقك كله تشغيله، وتعرض صفحة الوكلاء كل أداة ونقطة نهاية إن أردت الخريطة الكاملة أولًا.


