# Agen Anda menulis, Shager meluncurkan. Kendali tetap di tangan Anda.

Hubungkan Claude, ChatGPT, Cursor, atau klien MCP apa pun lewat login OAuth, bot lewat kode perangkat, dan lainnya lewat kunci API atau REST API. Agen Anda mengunggah video atau gambar, menyiapkan satu postingan untuk semua akun (Reel, Short, Story, video TikTok, atau postingan), lalu memeriksanya sesuai aturan tiap platform. Publikasi tetap nonaktif sampai seseorang mengaktifkannya.

Server MCP, REST API, dan dokumentasi OpenAPI di setiap paket, gratis selama masa peluncuran.

## Satu video. Delapan akun.

Agen mengunggah video dengan upload_media_from_url, lalu mengirim satu postingan ke satu grup akun. Shager mengembalikan satu versi per akun, dalam format yang didukung platformnya: Reel, Short, video TikTok, video LinkedIn. Masing-masing punya waktu kirimnya sendiri.

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` mengembalikan semua masalah di semua akun sekaligus, sebelum apa pun disimpan.
- `calendar_notes` menandai hari libur pada tanggal yang dipilih, agar agen bisa mempertimbangkan ulang waktunya.
- `idempotency_key` membuat percobaan ulang aman: permintaan yang sama tidak pernah membuat postingan kedua.

## Agen yang bekerja. Manusia yang memutuskan.

- **Harus diklaim oleh manusia.** Agen yang mendaftar sendiri mendapat sandbox: draf, media, dan klien, tanpa penjadwalan dan tanpa publikasi. Seseorang membuka tautan klaim, masuk, dan baru setelah itu organisasi menjadi miliknya.
- **Publikasi nonaktif secara default.** Setiap kunci punya izin baca, tulis, dan publikasi. Izin publikasi diberikan terpisah, hanya oleh manusia, dan kunci bisa dicabut kapan saja.
- **Pengiriman besar atau mendadak menunggu persetujuan.** Pengiriman ke lebih dari 10 akun atau dalam 60 menit tidak langsung keluar. Agen menerima rencana pengiriman untuk ditunjukkan kepada Anda, dan hanya mengirim ulang dengan token konfirmasi.
- **Batas per kunci dan log setiap tindakan.** Hingga 50 akun per postingan dan 20 postingan terjadwal dalam 24 jam. Setiap tindakan agen dicatat: apa, kapan, dan dengan kunci mana.

## Tiga cara terhubung. Untuk agen apa pun.

### 1. Klien MCP apa pun yang mendukung OAuth

Tambahkan alamat server di klien (di Claude dan ChatGPT, sebagai konektor kustom). Klien akan membawa Anda ke Shager: masuk, pilih organisasi, lalu setujui. Tidak ada kunci untuk disalin, dan publikasi tetap nonaktif kecuali Anda mencentangnya.

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

### 2. Bot tanpa browser: kode perangkat

Bot atau agen tanpa browser mendaftar sekali (RFC 7591), meminta kode, lalu menampilkannya kepada Anda. Anda menyetujuinya dari ponsel di app.shager.ai/device, dengan layar dan izin yang sama.

```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. Lainnya: kunci API

Buat kunci di halaman Agen dan kirimkan sebagai header Bearer, lewat MCP atau REST API. Belum punya akun? Agen mendaftar sendiri ke sandbox dan Anda mengklaimnya nanti (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_…" }
    }
  }
}
```

## Semua yang bisa dilakukan agen.

- `whoami`: Siapa saya: organisasi, izin kunci, batas, dan status sandbox
- `get_structure`: Seluruh akun sekilas: klien, akun milik tiap klien, dan grupnya
- `get_claim_link`: Tautan klaim organisasi
- `list_workspaces`: Daftar klien (workspace)
- `create_workspace`: Buat klien baru
- `list_channels`: Akun terhubung dan aturan tiap platform
- `create_connect_link`: Tautan bagi klien untuk menghubungkan akun mereka sendiri
- `list_groups`: Grup akun
- `create_group`: Buat grup (cabang, merek, kampanye)
- `upload_media_from_url`: Unggah gambar atau video dari URL
- `validate_post`: Periksa konten final dan kesiapan penjadwalan
- `create_post`: Satu postingan untuk banyak akun, disesuaikan per platform
- `update_post`: Edit draf
- `schedule_post`: Jadwalkan dengan pengiriman bertahap antar-akun
- `request_approval`: Tautan persetujuan untuk klien
- `get_approval`: Status persetujuan postingan
- `get_post`: Status publikasi di setiap akun, termasuk error
- `list_posts`: Kalender konten
- `cancel_post`: Batalkan jadwal
- `delete_post`: Hapus draf
- `list_comments`: Komentar pada postingan di YouTube atau Instagram
- `reply_to_comment`: Balas komentar sebagai akun
- `hide_comment`: Sembunyikan atau tampilkan komentar
- `delete_comment`: Hapus komentar
- `get_analytics`: Klik per akun dan per postingan
- `create_webhook`: 
- `list_webhooks`: 
- `delete_webhook`: 
- `send_test_webhook`: 
- `get_holidays`: Hari libur dan peringatan menurut tradisi, untuk memilih waktu posting

## File yang bisa dibaca mesin

- `/llms.txt`: Peta situs untuk agen: apa itu Shager dan di mana setiap halaman.
- `/llms-full.txt`: Semua konten publik dalam satu file Markdown.
- `/md/…`: Versi Markdown dari setiap halaman. Contoh: /md/id/pricing
- `https://app.shager.ai/api/v1/openapi.json`: Spesifikasi OpenAPI lengkap untuk REST API.
- `https://app.shager.ai/.well-known/oauth-authorization-server`: Metadata server OAuth: pendaftaran klien dinamis, PKCE, kode perangkat.

## Yang sering ditanyakan sebelum menghubungkan agen.

### Agen apa saja yang sudah bisa dipakai dengan Shager?

Klien MCP apa pun yang mendukung login OAuth (seperti konektor kustom di Claude atau ChatGPT) atau header kunci API (seperti Claude Code, Cursor, atau Codex), bot dan agen tanpa browser lewat kode perangkat, serta kode apa pun yang memanggil REST API.

### Bisakah agen memublikasikan tanpa sepengetahuan saya?

Secara default, tidak. Publikasi memerlukan izin publikasi terpisah yang diberikan oleh manusia, dan izin itu nonaktif saat Anda membuat kunci, mengklaim sandbox, atau menyetujui koneksi; pengiriman ke lebih dari 10 akun atau dalam 60 menit juga memerlukan konfirmasi kedua. Anda juga bisa mewajibkan persetujuan klien untuk setiap postingan, per klien.

### Apakah agen dikenai biaya tambahan?

Tidak. API dan server MCP tersedia di setiap paket, dan postingan yang dibuat agen Anda dihitung seperti postingan lainnya.

### Bagaimana jika agen keliru?

Postingan terjadwal bisa dibatalkan sampai terbit, dan draf bisa dihapus. Setiap tindakan tercatat di log, dan kunci bisa dicabut dengan satu klik.

### Bisakah agen memposting ke akun orang lain?

Hanya ke akun yang terhubung ke organisasi Anda, melalui layar izin resmi tiap platform. Agen tidak pernah melihat kata sandi.

Tautan terlacak menampilkan klik per akun dan per postingan. Atribusi prospek dan penjualan memerlukan alat analitik atau CRM Anda.

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