# Shager'ı Claude Code'a bağlayın: Tek komutla terminalden 50 hesaba taslak gönderi

_2026-08-04 · Shager'ın uzak MCP sunucusunu claude mcp add ve bearer başlığıyla Claude Code'a ekleyin, doğru kapsamı seçin, doğrulayın ve çok hesaplı ilk taslağı hazırlayın._

Shager'ı Claude Code'a bağlamak için `claude mcp add --transport http shager https://app.shager.ai/api/mcp --header "Authorization: Bearer shgr_live_..."` komutunu çalıştırın, ardından bir oturumun içinde `/mcp` ile kontrol edin. Bu komut Shager'ın uzak MCP sunucusunu streamable HTTP üzerinden kaydeder ve Claude Code çalışma alanlarınızı, bağlı hesaplarınızı ve gönderilerinizi hemen listeleyebilir. Elinizde bir API anahtarı varsa tüm iş yaklaşık iki dakika sürer.

Bu rehberde anahtarı almayı, doğru yapılandırma kapsamını seçmeyi, gizli anahtarı git'in dışında tutmayı ve çalıştırmaya değer ilk gerçek görevi ele alıyoruz.

## Başlamadan önce neye ihtiyacınız var?

İki şeye: kurulu bir Claude Code'a ve `shgr_live_` ile başlayan bir Shager API anahtarına.

Anahtarı almanın iki yolu var. Zaten bir Shager hesabınız varsa, ekibinizden biri https://app.shager.ai/dashboard/agents adresinde bir anahtar oluşturur ve kapsamları seçer (`read`, `write` ve isteğe bağlı olarak `publish`). Henüz hesabınız yoksa ajan tek bir HTTP çağrısıyla kendini kaydedip bir test ortamı (sandbox) anahtarı alabilir. Bu akışı [ajanların kendi kendine kaydı ve sahiplenme](/en/blog/agent-self-signup-and-claim) yazısında anlattık; kısa versiyonu [/auth.md](/auth.md) adresinde.

Bir şey yapıştırmadan önce kapsamlar hakkında küçük bir not. İlk hafta Claude Code'a yalnızca `read` ve `write` verin. Böylece çalışma alanı oluşturabilir, medya yükleyebilir ve taslak hazırlayabilir ama hiçbir şeyi planlayamaz ya da yayınlayamaz. Ürettiği taslaklara güvenmeye başladığınızda `publish` kapsamını eklersiniz.

## Sunucuyu claude mcp add ile nasıl eklersiniz?

Claude Code'un [MCP dokümantasyonu](https://code.claude.com/docs/en/mcp), bearer token kullanan uzak bir HTTP sunucusu için tam biçimi gösterir: `--transport http`, bir ad, URL ve `--header`. Shager için şöyle görünür:

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

Dokümantasyonun belirttiği gibi `claude mcp add`, yapılandırmayı kimlik bilgisini doğrulamadan kaydeder. Anahtardaki bir yazım hatası bu aşamada hata vermez; istemci bağlanmaya çalıştığında ortaya çıkar.

### Hangi kapsamı kullanmalısınız?

Yapılandırmanın nerede saklanacağına `--scope` bayrağı karar verir. Aynı dokümantasyon sayfasına göre:

| Kapsam | Nerede saklanır | Ne zaman kullanılır |
|---|---|---|
| `local` (varsayılan) | Kullanıcı yapılandırmanızda, yalnızca bu proje için | Shager'ı tek bir depoda deniyorsanız |
| `project` | Depodaki `.mcp.json` dosyasında, ekiple paylaşılır | Tüm ekip içerik görevlerini bu depodan çalıştırıyorsa |
| `user` | Kullanıcı yapılandırmanızda, tüm projeler için | Claude Code'u nerede açarsanız açın Shager'ın hazır olmasını istiyorsanız |

Bir ajans için genellikle doğru tercih `user` olur. Dağıtım tek bir kod tabanına bağlı değildir.

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

## Anahtarı commit etmeden yapılandırmayı nasıl paylaşırsınız?

Ekip arkadaşlarınızın sunucuyu otomatik olarak alması için `project` kapsamını kullanmak istiyorsanız, anahtarı `.mcp.json` içine sabit olarak yazmayın. Claude Code, HTTP sunucularında `url` ve `headers` alanlarında `${VAR}` veya `${VAR:-default}` biçiminde ortam değişkeni açılımını destekler. Şunu commit edin:

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

Ardından herkes kendi anahtarını kabuk profilinde dışa aktarır:

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

Dokümantasyondaki iki ayrıntı burada önemli. Değişken tanımlı değilse Claude Code yapılandırmayı yine yükler ve `${SHAGER_API_KEY}` metnini olduğu gibi gönderir; `claude mcp list` çıktısında da bir uyarı görürsünüz. Ayrıca `ANTHROPIC_API_KEY` gibi bazı ayrılmış kimlik bilgisi adları, uzak sunucu başlıklarında bilerek boş değere açılır. Bu yüzden her zaman kendi değişken adınızı kullanın. `SHAGER_API_KEY` uygundur.

Kişi başına ayrı anahtar kullanmak, https://app.shager.ai/dashboard/agents adresindeki denetim kaydını da işe yarar hale getirir. Ajanın her çağrısı onu yapan anahtarla birlikte kaydedilir; böylece hangi taslağı kimin oturumunun oluşturduğunu görebilirsiniz.

## Çalıştığını nasıl doğrularsınız?

Kabuktan:

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

Oturumun içinde `/mcp` yazın. Sağlıklı bir sunucu bağlı olarak görünür. Dokümantasyona göre kimlik bilgileri hatalı olan bir sunucu başarısız olarak görünür ve ayrıntıda HTTP durum kodu yer alır. Shager için 401, başlığın eksik ya da hatalı biçimde olduğu anlamına gelir. Sunucu tam olarak `Authorization: Bearer shgr_...` bekler: Bearer kelimesi ve tek bir boşluk.

Sonra Claude'dan maliyetsiz ve yalnızca okuma yapan bir şey isteyin:

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

`whoami`, kuruluşu ve anahtarın kapsamlarını döndürür. `read` ve `write` görüyor ama `publish` görmüyorsanız kurulum tam olarak olması gerektiği gibi çalışıyor demektir.

## İlk gerçek görev ne olmalı?

"Bir şey yayınla" diyerek başlamayın. Shager'ın ölçekte önem taşıyan parçalarını çalıştıran bir taslakla başlayın. İyi bir ilk komut:

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

Arka planda Claude sırasıyla `list_channels`, `list_groups`, `upload_media_from_url` ve `create_post` araçlarını çağırır. Bu çağrıdaki üç alan işin asıl yükünü taşır.

1. `per_channel`, elli aynı gönderi yerine her hesaba kendi açıklamasını verir. Kopya içerikleri hem platformlar hem de kitleler fark eder; [ölçekli paylaşımda spam engellerinden kaçınma](/en/blog/avoid-spam-blocks-when-posting-at-scale) yazısında bunu bu yüzden öneriyoruz.
2. `cta_url`, her hesap için ayrı bir kısa link ve UTM etiketi alır; `utm_content` hesabı tanımlar. Tıklamalar `get_analytics` üzerinden hesap bazında geri gelir.
3. Yükleme sırasında genişlik, yükseklik ve `duration_ms` değerlerini vermek, Shager'ın Reels videosunu sıraya almadan önce her platformun kurallarına göre doğrulamasını sağlar.

`schedule_at` verilmediği için sonuç bir taslaktır. Taslağı Shager uygulamasında inceleyebilir ya da Claude'dan `get_post` çağırmasını isteyebilirsiniz.

## Claude Code'un neler yapabileceğini nasıl kontrol edersiniz?

Siz izin vermedikçe Claude Code, MCP araçlarını çağırmadan önce onay ister. MCP araçları `mcp__<server>__<tool>` biçiminde adlandırılır; Shager için `mcp__shager__create_post`, `mcp__shager__list_posts` gibi adlar görürsünüz. Mantıklı bir başlangıç izin listesi okuma araçlarını onaylar, yazma yapan her şeyi ise onaya bırakır. Bunu `publish` kapsamı olmayan bir anahtarla birleştirdiğinizde birbirinden bağımsız iki fren elde edersiniz: İstemci size sorar, sunucu da ne olursa olsun planlamayı reddeder.

Planlamaya hazır olduğunuzda `publish` kapsamlı yeni bir anahtar oluşturun, ortam değişkenini değiştirin ve eski okuma/yazma anahtarını keşif oturumları için saklayın. Shager'ın REST API'si ve MCP sunucusu aynı kapsamları uygular; yani bir betik hangi yolu kullanırsa kullansın kural geçerlidir.

## Sorun giderme kontrol listesi

| Belirti | Olası neden | Çözüm |
|---|---|---|
| `/mcp` başarısız gösteriyor, 401 | Başlıkta `Bearer ` eksik ya da anahtar yanlış yazılmış | Sunucuyu yeniden ekleyin ya da değişkenin Claude'u başlatan kabukta dışa aktarıldığını kontrol edin |
| Araçlar görünüyor ama `schedule_at` ile `create_post` 403 döndürüyor | Anahtarda `publish` yok ya da test ortamı sahiplenilmemiş | Beklenen davranış. Taslak oluşturun ya da kapsamı bir insana ekletin |
| 429 `rate_limited` | Tek bir anahtarla dakikada 120'den fazla istek | İşleri toplu yapın; tek bir `create_post` birçok hesabı kapsar |
| 422 `rejected` | Bir platform kuralı karşılanmadı, örneğin Reels videosu çok uzun | Mesajı okuyun; hesabı ve kuralı belirtir |

## SSS

### Claude Code dışında bir şey kurmam gerekiyor mu?

Hayır. Shager uzak bir MCP sunucusu olarak çalışır; kurmanız gereken yerel bir süreç, Docker konteyneri ya da npm paketi yoktur. Claude Code, streamable HTTP üzerinden doğrudan https://app.shager.ai/api/mcp ile konuşur.

### Claude Code her gönderiyi benim onaylamam olmadan yayınlayabilir mi?

Yalnızca kullandığı anahtarda `publish` kapsamı varsa ve hesap bir insan tarafından sahiplenilmişse. Bu kapsam yoksa ajan ne denerse denesin planlama ve yayınlama çağrıları 403 döndürür. Pek çok ekip ayrıca çalışma alanı bazında müşteri onayını açar; bu da planlamadan önce bir insan incelemesi adımı ekler.

### Shager, Claude Code için OAuth ile girişi destekliyor mu?

Evet. Shager'ın MCP sunucusu, OAuth'u destekleyen her MCP istemcisi için OAuth ile girişi destekler. Sunucuyu `--header` bayrağı olmadan ekleyin, `/mcp` komutunu çalıştırıp kimlik doğrulamayı seçin, ardından tarayıcıda Shager'a giriş yapıp onaylayın. Yukarıda gösterilen API anahtarı başlığı da çalışmaya devam ediyor; kimsenin giriş yapamayacağı betikler ve sunucular için daha uygun olan da o.

## Sonraki adım

Claude Code çalışma alanlarınızı görmeye başladığında, doğal bir sonraki adım komutları her seferinde yeniden yazmak yerine rutini tekrarlanabilir hale getirmektir. [Shager için bir Claude skill'i oluşturma](/en/blog/build-a-claude-skill-for-shager) rehberi, yukarıdaki taslak akışını tüm ekibinizin çalıştırabileceği bir `/shager` komutuna dönüştürür. Önce tam haritayı görmek isterseniz [ajanlar sayfası](/en/agents) her aracı ve uç noktayı listeler.

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