# وكيلك يكتب. Shager ينشر. والقرار يبقى لك.

اربط Claude أو ChatGPT أو Cursor أو أي عميل MCP بتسجيل الدخول عبر OAuth، والبوتات برمز جهاز، وأي شيء آخر بمفتاح API أو REST API. يرفع وكيلك فيديو أو صورًا، ويُعدّ منشورًا واحدًا لكل الحسابات (ريل أو Short أو قصة أو فيديو TikTok أو منشور)، ويتحقق منه وفق قواعد كل شبكة. يبقى النشر متوقفًا حتى يفعّله شخص.

خادم MCP وREST API وتوثيق OpenAPI في كل باقة، مجانًا خلال فترة الإطلاق.

## فيديو واحد إلى ثمانية حسابات.

يرفع الوكيل الفيديو عبر upload_media_from_url ويرسل منشورًا واحدًا مع مجموعة حسابات. يعيد Shager نسخة لكل حساب بصيغة تدعمها شبكته: ريل، أو Short، أو فيديو TikTok، أو فيديو LinkedIn. ولكل نسخة وقت إرسال خاص بها.

MCP: `https://app.shager.ai/api/mcp`

```json
// 1 · upload the video once
{
  "name": "upload_media_from_url",
  "arguments": {
    "workspace_id": "cm2studionoa",
    "url": "https://studio-noa.co.il/media/workshop.mp4"
  }
}
// → { "id": "cm2wheelvideo", "kind": "VIDEO",
//     "width": 1080, "height": 1920, "duration_ms": 24000 }  (measured by Shager)

// 2 · one post to every account
{
  "name": "create_post",
  "arguments": {
    "workspace_id": "cm2studionoa",
    "group_ids": ["cm2allaccounts"],
    "caption": "A new evening workshop…",
    "media_ids": ["cm2wheelvideo"],
    "cta_url": "https://studio-noa.co.il/workshop",
    "youtube_made_for_kids": false,
    "per_channel": [{
      "channel_id": "cm2tiktok",
      "tiktok_privacy": "SELF_ONLY"
    }],
    "schedule_at": "2026-10-20T09:00:00+03:00",
    "idempotency_key": "workshop-oct-20"
  }
}
```

```json
{
  "status": "SCHEDULED",
  "scheduled_at": "2026-10-20T06:00:00.000Z",
  "stagger_seconds": { "min": 30, "max": 90 },
  "issues": [],
  "destinations": [
    { "network": "INSTAGRAM", "format": "REEL",  "state": "PENDING" },
    { "network": "FACEBOOK",  "format": "REEL",  "state": "PENDING" },
    { "network": "YOUTUBE",   "format": "SHORT", "state": "PENDING" },
    { "network": "TIKTOK",    "format": "VIDEO", "state": "PENDING" },
    { "network": "LINKEDIN",  "format": "VIDEO", "state": "PENDING" },
    { "network": "X",         "format": "FEED",  "state": "PENDING" }
    // … 2 more, each with its own dispatch_at
  ],
  "calendar_notes": []
}
```

- `validate_post` يعيد كل المشكلات في كل الحسابات دفعة واحدة، قبل حفظ أي شيء.
- `calendar_notes` تشير إلى العطل في اليوم المختار، كي يعيد الوكيل النظر في التوقيت.
- `idempotency_key` يجعل إعادة المحاولة آمنة: الطلب نفسه لا ينشئ منشورًا ثانيًا أبدًا.

## الوكيل ينفّذ. والإنسان يقرّر.

- **شخص يتسلّم الملكية.** الوكيل الذي يسجّل بنفسه يحصل على بيئة تجريبية معزولة: مسودات ووسائط وعملاء، بلا جدولة ولا نشر. يفتح شخص رابط تسلّم الملكية ويسجّل الدخول، وعندها فقط تصبح المؤسسة ملكه.
- **النشر متوقف افتراضيًا.** لكل مفتاح صلاحيات قراءة وكتابة ونشر. صلاحية النشر تُمنح بشكل منفصل ومن شخص فقط، ويمكن إلغاء المفتاح في أي وقت.
- **الإرسال الكبير أو المفاجئ ينتظر موافقتك.** الإرسال إلى أكثر من 10 حسابات أو خلال 60 دقيقة لا يخرج فورًا. يحصل الوكيل على خطة إرسال ليعرضها عليك، ولا يعيد الإرسال إلا برمز تأكيد.
- **حدود لكل مفتاح، وسجل لكل إجراء.** حتى 50 حسابًا في المنشور الواحد و20 منشورًا مجدولًا خلال 24 ساعة. كل إجراء يقوم به وكيل يُسجَّل: ماذا، ومتى، وبأي مفتاح.

## ثلاث طرق للربط، تناسب أي وكيل.

### 1. أي عميل MCP يدعم OAuth

أضف عنوان الخادم في العميل (في Claude وChatGPT كموصل مخصص). يوجّهك العميل إلى Shager: سجّل الدخول، واختر المؤسسة، ووافق. لا مفتاح لنسخه، ويبقى النشر متوقفًا ما لم تفعّله.

```sh
# MCP server URL (sign in with OAuth)
https://app.shager.ai/api/mcp
```

### 2. بوتات بلا متصفح: رمز جهاز

يسجّل البوت أو الوكيل الذي لا متصفح له مرة واحدة (RFC 7591)، ثم يطلب رمزًا ويعرضه عليك. توافق من هاتفك على app.shager.ai/device، بالشاشة نفسها والصلاحيات نفسها.

```sh
curl -X POST https://app.shager.ai/api/oauth/device_authorization \
  -d client_id=shgr_client_… \
  -d resource=https://app.shager.ai/api/mcp
# → user_code "BCDF-GHJK", verification_uri
#   https://app.shager.ai/device · then poll /api/oauth/token
```

### 3. كل ما عدا ذلك: مفتاح API

أنشئ مفتاحًا في صفحة الوكلاء وأرسله في ترويسة Bearer، عبر MCP أو REST API. ليس لديك حساب بعد؟ يسجّل الوكيل بنفسه في بيئة تجريبية وتتسلّم أنت ملكيتها لاحقًا (auth.md).

```sh
claude mcp add --transport http shager \
  https://app.shager.ai/api/mcp \
  --header "Authorization: Bearer shgr_live_…"
```

MCP config (Cursor and other clients):

```json
{
  "mcpServers": {
    "shager": {
      "url": "https://app.shager.ai/api/mcp",
      "headers": { "Authorization": "Bearer shgr_live_…" }
    }
  }
}
```

## كل ما يستطيع الوكيل فعله.

- `whoami`: من أنا: المؤسسة، وصلاحيات المفتاح، والحدود، وحالة البيئة التجريبية
- `get_structure`: الحساب كله في نظرة واحدة: العملاء، وحسابات كل عميل، ومجموعاته
- `get_claim_link`: رابط تسلّم ملكية المؤسسة
- `list_workspaces`: قائمة العملاء (مساحات العمل)
- `create_workspace`: إنشاء عميل جديد
- `list_channels`: الحسابات المرتبطة وقواعد كل شبكة
- `create_connect_link`: رابط يربط العميل من خلاله حساباته
- `list_groups`: مجموعات الحسابات
- `create_group`: إنشاء مجموعة (فروع، علامات تجارية، حملة)
- `upload_media_from_url`: رفع صورة أو فيديو من رابط
- `validate_post`: التحقق من المحتوى النهائي ومن جاهزيته للجدولة
- `create_post`: منشور واحد لعدة حسابات، مُكيَّف لكل شبكة
- `update_post`: تعديل مسودة
- `schedule_post`: جدولة مع توزيع الإرسال على الحسابات
- `request_approval`: رابط موافقة للعميل
- `get_approval`: حالة الموافقة على المنشور
- `get_post`: حالة النشر في كل حساب، بما فيها الأخطاء
- `list_posts`: تقويم المحتوى
- `cancel_post`: إلغاء الجدولة
- `delete_post`: حذف مسودة
- `list_comments`: التعليقات على منشور نُشر على YouTube أو Instagram
- `reply_to_comment`: الرد على تعليق باسم الحساب
- `hide_comment`: إخفاء تعليق أو إظهاره
- `delete_comment`: حذف تعليق
- `get_analytics`: النقرات لكل حساب ولكل منشور
- `create_webhook`: 
- `list_webhooks`: 
- `delete_webhook`: 
- `send_test_webhook`: 
- `get_holidays`: العطل والمناسبات حسب التقليد، لاختيار وقت النشر

## ملفات قابلة للقراءة الآلية

- `/llms.txt`: خريطة الموقع للوكلاء: ما هو Shager وأين توجد كل صفحة.
- `/llms-full.txt`: كل المحتوى العام في ملف Markdown واحد.
- `/md/…`: نسخة Markdown من كل صفحة. مثال: /md/ar/pricing
- `https://app.shager.ai/api/v1/openapi.json`: مواصفة OpenAPI الكاملة لـ REST API.
- `https://app.shager.ai/.well-known/oauth-authorization-server`: بيانات خادم OAuth: تسجيل العملاء الديناميكي، وPKCE، ورمز الجهاز.

## أسئلة شائعة قبل ربط وكيل.

### أي الوكلاء يعملون مع Shager اليوم؟

أي عميل MCP يدعم تسجيل الدخول عبر OAuth (مثل موصل مخصص في Claude أو ChatGPT) أو ترويسة بمفتاح API (مثل Claude Code أو Cursor أو Codex)، والبوتات والوكلاء بلا متصفح عبر رمز جهاز، وأي كود يستدعي REST API.

### هل يستطيع الوكيل النشر دون علمي؟

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

### هل يكلّف الوكيل مبلغًا إضافيًا؟

لا. واجهة API وخادم MCP متاحان في كل باقة، والمنشور الذي ينشئه وكيلك يُحتسب مثل أي منشور آخر.

### ماذا لو أخطأ الوكيل؟

يمكن إلغاء المنشور المجدول حتى لحظة خروجه، ويمكن حذف المسودة. كل إجراء يُسجَّل، ويمكن إلغاء المفتاح بنقرة واحدة.

### هل يستطيع الوكيل النشر في حسابات أشخاص آخرين؟

فقط في الحسابات المرتبطة بمؤسستك، عبر شاشة الأذونات الرسمية لكل شبكة. الوكيل لا يرى كلمات المرور أبدًا.

تعرض الروابط المُتتبَّعة النقرات حسب الحساب والمنشور. أما نسبة العملاء المحتملين والمبيعات فتتطلب أداة التحليلات أو نظام CRM الخاص بك.

---
Source: https://shager.ai/ar/agents
