# اربط Shager بـ Claude Code: أمر واحد، ثم جهّز منشورات لخمسين حسابًا من الطرفية

_2026-08-04 · أضف خادم 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 واحد ويحصل على مفتاح لبيئة اختبار. هذا المسار مشروح في [تسجيل الوكيل الذاتي وتولّي الملكية](/ar/blog/agent-self-signup-and-claim)، والنسخة المختصرة موجودة في [/auth.md](/auth.md).

كلمة عن النطاقات قبل أن تلصق أي شيء: في الأسبوع الأول، امنح Claude Code النطاقين `read` و`write` فقط. سيتمكن بذلك من إنشاء مساحات عمل ورفع الوسائط وبناء المسودات، لكنه لن يستطيع جدولة أي شيء أو نشره. أضف `publish` لاحقًا، حين تثق بالمسودات التي يُعدّها.

## كيف تضيف الخادم باستخدام claude mcp add؟

تعرض [وثائق MCP في Claude Code](https://code.claude.com/docs/en/mcp) الصيغة الدقيقة لخادم HTTP بعيد مع رمز bearer: الخيار `--transport http`، ثم اسم، ثم الرابط، ثم `--header`. مع Shager تبدو هكذا:

```bash
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` غالبًا الخيار الصحيح، لأن التوزيع لا يرتبط بقاعدة شيفرة واحدة.

```bash
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}`. ارفع هذا إلى المستودع:

```json
{
  "mcpServers": {
    "shager": {
      "type": "http",
      "url": "https://app.shager.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer ${SHAGER_API_KEY}"
      }
    }
  }
}
```

ثم يصدّر كل شخص مفتاحه في ملف تعريف الصدفة لديه:

```bash
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 مفيدًا فعلًا. كل استدعاء من وكيل يُسجَّل باسم المفتاح الذي نفّذه، فتعرف أي جلسة أنشأت أي مسودة.

## كيف تتأكد من أن الاتصال يعمل؟

من الصدفة:

```bash
claude mcp list
claude mcp get shager
```

وداخل الجلسة، اكتب `/mcp`. يظهر الخادم السليم بحالة متصل. وتذكر الوثائق أن الخادم ذا بيانات الاعتماد الخاطئة يظهر بحالة فشل، مع رمز حالة HTTP في التفاصيل. في Shager، يعني الرمز 401 أن الترويسة مفقودة أو مكتوبة بصيغة خاطئة. يتوقع الخادم بالضبط `Authorization: Bearer shgr_...`، مع كلمة Bearer ومسافة واحدة.

بعد ذلك اطلب من Claude شيئًا خفيفًا للقراءة فقط:

```text
Call whoami on shager, then list my workspaces with their channel counts.
```

تُرجع `whoami` اسم المؤسسة والنطاقات الممنوحة للمفتاح. إذا رأيت `read` و`write` دون `publish`، فالإعداد يعمل كما هو مقصود.

## ما أول مهمة حقيقية؟

لا تبدأ بعبارة «انشر شيئًا». ابدأ بمسودة تختبر أجزاء Shager المهمة حين تعمل على نطاق واسع. هذه تعليمات جيدة للبداية:

```text
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`. وثلاثة حقول في هذا الاستدعاء تحمل العبء الأكبر:

1. `per_channel` يمنح كل حساب نصه الخاص بدل خمسين منشورًا متطابقًا. الشبكات والجمهور معًا يلاحظون التكرار، ولهذا نوصي به في [تجنّب الحظر بسبب الرسائل المزعجة عند النشر على نطاق واسع](/ar/blog/avoid-spam-blocks-when-posting-at-scale).
2. `cta_url` يحصل على رابط قصير ووسم UTM منفصلين لكل حساب، مع `utm_content` لتمييز الحساب. وتعود النقرات مقسّمة حسب الحساب من خلال `get_analytics`.
3. تمرير العرض والارتفاع و`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](/ar/blog/build-a-claude-skill-for-shager) مسار المسودات أعلاه إلى أمر `/shager` يستطيع فريقك كله تشغيله، وتعرض [صفحة الوكلاء](/ar/agents) كل أداة ونقطة نهاية إن أردت الخريطة الكاملة أولًا.

---
Source: https://shager.ai/ar/blog/connect-shager-to-claude-code
