# Hubungkan Shager ke Claude Code: Satu Perintah, Lalu Siapkan Draf untuk 50 Akun dari Terminal

_2026-08-04 · Tambahkan server MCP remote Shager ke Claude Code dengan claude mcp add dan header bearer, pilih scope, verifikasi, lalu buat draf multi-akun pertama._

Untuk menghubungkan Shager ke Claude Code, jalankan `claude mcp add --transport http shager https://app.shager.ai/api/mcp --header "Authorization: Bearer shgr_live_..."`, lalu periksa `/mcp` di dalam sesi. Perintah itu mendaftarkan server MCP remote Shager lewat streamable HTTP, dan Claude Code langsung bisa menampilkan workspace, akun yang terhubung, dan postingan Anda. Begitu kunci API sudah di tangan, semuanya selesai dalam sekitar dua menit.

Panduan ini membahas cara mendapatkan kunci, memilih scope konfigurasi yang tepat, menjaga rahasia agar tidak masuk ke git, dan tugas nyata pertama yang layak dijalankan.

## Apa yang Anda perlukan sebelum mulai?

Hanya dua hal: Claude Code yang sudah terpasang, dan kunci API Shager yang diawali `shgr_live_`.

Ada dua cara mendapatkan kunci itu. Jika Anda sudah punya akun Shager, seseorang di tim Anda membuatnya di https://app.shager.ai/dashboard/agents dan memilih scope-nya (`read`, `write`, dan opsional `publish`). Jika belum punya akun, agen bisa mendaftarkan dirinya sendiri dengan satu panggilan HTTP dan langsung mendapat kunci sandbox. Alur itu dibahas di [pendaftaran mandiri agen dan proses klaim](/en/blog/agent-self-signup-and-claim), dan versi singkatnya ada di [/auth.md](/auth.md).

Satu catatan soal scope sebelum Anda menempelkan apa pun. Di minggu pertama, beri Claude Code `read` dan `write` saja. Dengan itu ia bisa membuat workspace, mengunggah media, dan menyusun draf, tetapi tidak bisa menjadwalkan atau memublikasikan apa pun. Tambahkan `publish` belakangan, setelah Anda percaya pada kualitas draf yang dihasilkannya.

## Bagaimana menambahkan server dengan claude mcp add?

[Dokumentasi MCP](https://code.claude.com/docs/en/mcp) Claude Code menunjukkan format persis untuk server HTTP remote dengan bearer token: `--transport http`, sebuah nama, URL, dan `--header`. Untuk Shager, bentuknya seperti ini:

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

Dokumentasinya mencatat bahwa `claude mcp add` menyimpan konfigurasi tanpa memvalidasi kredensial. Salah ketik pada kunci tidak akan gagal di tahap ini. Kegagalannya baru muncul nanti, saat klien mencoba terhubung.

### Scope mana yang sebaiknya dipakai?

Flag `--scope` menentukan di mana konfigurasi disimpan. Menurut halaman dokumentasi yang sama:

| Scope | Lokasi penyimpanan | Pakai ketika |
|---|---|---|
| `local` (default) | Konfigurasi pengguna Anda, khusus proyek ini | Anda sedang mencoba Shager di satu repo |
| `project` | `.mcp.json` di repo, dibagikan ke tim | Seluruh tim menjalankan tugas konten dari repo ini |
| `user` | Konfigurasi pengguna Anda, semua proyek | Anda ingin Shager tersedia di mana pun Anda membuka Claude Code |

Untuk agensi, `user` biasanya pilihan yang tepat. Distribusi konten tidak terikat pada satu codebase.

```bash
claude mcp add --transport http shager --scope user https://app.shager.ai/api/mcp \
  --header "Authorization: Bearer shgr_live_your_key_here"
```

## Bagaimana membagikan konfigurasi tanpa ikut meng-commit kunci?

Jika Anda ingin memakai scope `project` agar rekan tim otomatis mendapatkan servernya, jangan menulis kunci langsung di `.mcp.json`. Claude Code mendukung ekspansi environment variable di `url` dan `headers` untuk server HTTP, dengan `${VAR}` atau `${VAR:-default}`. Commit yang ini:

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

Lalu setiap orang mengekspor kuncinya sendiri di profil shell masing-masing:

```bash
export SHAGER_API_KEY="shgr_live_your_key_here"
```

Ada dua detail dari dokumentasi yang penting di sini. Jika variabelnya belum di-set, Claude Code tetap memuat konfigurasi dan mengirim teks `${SHAGER_API_KEY}` apa adanya, disertai peringatan di `claude mcp list`. Selain itu, beberapa nama kredensial yang dicadangkan seperti `ANTHROPIC_API_KEY` sengaja diekspansi menjadi kosong di header remote, jadi selalu gunakan nama variabel Anda sendiri. `SHAGER_API_KEY` aman dipakai.

Kunci terpisah untuk tiap orang juga membuat log audit di https://app.shager.ai/dashboard/agents benar-benar berguna. Setiap panggilan agen dicatat atas nama kunci yang melakukannya, sehingga Anda tahu sesi siapa yang membuat draf mana.

## Bagaimana memastikan semuanya berfungsi?

Dari shell:

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

Di dalam sesi, ketik `/mcp`. Server yang sehat akan tampil sebagai terhubung. Menurut dokumentasi, server dengan kredensial yang salah akan tampil gagal, dan detailnya menyertakan status HTTP. Untuk Shager, 401 berarti header tidak ada atau formatnya salah. Server mengharapkan persis `Authorization: Bearer shgr_...`, dengan kata Bearer dan satu spasi.

Kemudian minta Claude melakukan sesuatu yang ringan dan hanya membaca:

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

`whoami` mengembalikan organisasi dan scope yang dimiliki kunci. Jika yang muncul `read` dan `write` tanpa `publish`, berarti pengaturan berjalan persis seperti yang dimaksud.

## Apa tugas nyata pertama yang sebaiknya dijalankan?

Jangan mulai dengan "publikasikan sesuatu". Mulailah dengan draf yang menguji bagian-bagian Shager yang penting saat bekerja dalam skala besar. Contoh prompt pertama yang baik:

```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.
```

Di balik layar, Claude merangkai `list_channels`, `list_groups`, `upload_media_from_url`, dan `create_post`. Tiga field dalam panggilan itu melakukan pekerjaan paling berat.

1. `per_channel` membuat setiap akun mendapat caption sendiri, bukan lima puluh postingan yang identik. Platform maupun audiens sama-sama menyadari konten duplikat, itulah sebabnya kami merekomendasikannya di artikel [menghindari blokir spam saat posting dalam skala besar](/en/blog/avoid-spam-blocks-when-posting-at-scale).
2. `cta_url` mendapat tautan pendek dan tag UTM terpisah untuk setiap akun, dengan `utm_content` sebagai penanda akunnya. Data klik kembali per akun lewat `get_analytics`.
3. Mengirim width, height, dan `duration_ms` saat unggah memungkinkan Shager memvalidasi Reel terhadap aturan setiap platform sebelum ada yang masuk antrean.

Karena tidak ada `schedule_at` yang dikirim, hasilnya berupa draf. Anda bisa meninjaunya di aplikasi Shager atau meminta Claude menjalankan `get_post`.

## Bagaimana mengontrol apa yang boleh dilakukan Claude Code?

Claude Code meminta izin sebelum memanggil tool MCP, kecuali Anda sudah mengizinkannya. Tool MCP diberi nama `mcp__<server>__<tool>`, jadi untuk Shager Anda akan melihat `mcp__shager__create_post`, `mcp__shager__list_posts`, dan seterusnya. Allowlist awal yang masuk akal adalah menyetujui tool baca saja dan membiarkan semua yang menulis tetap meminta konfirmasi. Padukan dengan kunci tanpa `publish`, dan Anda punya dua rem yang saling independen: klien bertanya kepada Anda, dan server tetap menolak penjadwalan apa pun yang terjadi.

Saat Anda siap menjadwalkan, buat kunci baru dengan `publish`, ganti environment variable-nya, dan simpan kunci read/write yang lama untuk sesi eksplorasi. REST API dan server MCP Shager menerapkan scope yang sama, jadi aturannya berlaku jalur mana pun yang dipakai skrip.

## Daftar periksa pemecahan masalah

| Gejala | Kemungkinan penyebab | Solusi |
|---|---|---|
| `/mcp` menampilkan gagal, 401 | Header tidak memuat `Bearer ` atau kunci salah ketik | Tambahkan ulang server, atau pastikan env var sudah diekspor di shell yang menjalankan Claude |
| Tool muncul tetapi `create_post` dengan `schedule_at` mengembalikan 403 | Kunci tidak punya `publish`, atau sandbox belum diklaim | Memang begitu seharusnya. Buat draf saja, atau minta seseorang menambahkan scope-nya |
| 429 `rate_limited` | Lebih dari 120 request per menit pada satu kunci | Gabungkan pekerjaan; satu `create_post` sudah mencakup banyak akun |
| 422 `rejected` | Ada aturan platform yang dilanggar, misalnya Reel terlalu panjang | Baca pesannya; di sana tertulis akun dan aturan yang dimaksud |

## FAQ

### Apakah saya perlu memasang sesuatu selain Claude Code?

Tidak. Shager berjalan sebagai server MCP remote, jadi tidak ada proses lokal, container Docker, atau paket npm yang perlu dipasang. Claude Code berkomunikasi langsung dengan https://app.shager.ai/api/mcp lewat streamable HTTP.

### Bisakah Claude Code memublikasikan tanpa saya menyetujui setiap postingan?

Hanya jika kunci yang dipakainya punya scope `publish` dan akunnya sudah diklaim oleh manusia. Tanpa scope itu, panggilan untuk menjadwalkan dan memublikasikan akan mengembalikan 403, apa pun yang dicoba agen. Banyak tim juga mengaktifkan persetujuan klien per workspace, yang menambahkan langkah tinjauan manusia sebelum penjadwalan.

### Apakah Shager mendukung login OAuth untuk Claude Code?

Ya. Server MCP Shager mendukung login OAuth untuk klien MCP apa pun yang mendukungnya. Tambahkan server tanpa flag `--header`, jalankan `/mcp` dan pilih autentikasi, lalu masuk ke Shager dan setujui di browser. Header kunci API seperti di atas tetap berfungsi, dan lebih cocok untuk skrip serta mesin yang tidak bisa login.

## Langkah berikutnya

Setelah Claude Code bisa melihat workspace Anda, langkah wajar berikutnya adalah membuat rutinitas ini bisa diulang tanpa mengetik ulang prompt. Panduan [membangun Claude skill untuk Shager](/en/blog/build-a-claude-skill-for-shager) mengubah alur kerja draf di atas menjadi perintah `/shager` yang bisa dijalankan seluruh tim, dan [halaman agen](/en/agents) mencantumkan setiap tool dan endpoint jika Anda ingin melihat peta lengkapnya terlebih dulu.

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