OpenAI Codex'te Shager: config.toml, bearer_token_env_var ve taslakları taslak olarak tutan bir araç listesi

Shager'ın uzak MCP sunucusunu config.toml veya codex mcp add ile Codex CLI'a ekleyin, anahtarı ortam değişkeninden okuyun, araçları sınırlayın, taslak açın.

Shager'ı OpenAI'ın Codex CLI aracına bağlamak için ~/.codex/config.toml dosyasına url = "https://app.shager.ai/api/mcp" ve bearer_token_env_var = "SHAGER_API_KEY" içeren bir [mcp_servers.shager] tablosu ekleyin, ardından shgr_live_ anahtarınızı bu değişkene dışa aktarın. Codex streamable HTTP'yi yerel olarak konuşur ve anahtarı bearer token olarak gönderir; ne bir köprüye ne de yerel bir sürece ihtiyaç vardır. Aynı işi codex mcp add shager --url ... --bearer-token-env-var SHAGER_API_KEY ile tek satırda da yapabilirsiniz.

Rehberin geri kalanı bunu sonradan pişman olmayacağınız şekilde yapmakla ilgili: anahtarı dosyanın dışında tutmak, Codex'in hangi Shager araçlarını çağırabileceğini sınırlamak ve bağlantının çalıştığını kanıtlayan bir ilk görev seçmek.

Codex uzak MCP sunucuları için neleri destekliyor?

OpenAI'ın Codex MCP dokümantasyonu, bir url ile yapılandırılan streamable HTTP sunucularını ve başlıklarla kimlik doğrulamanın üç yolunu anlatır. Yapılandırma referansı bunları şöyle tanımlar:

Anahtar Ne yapar
bearer_token_env_var Değeri bearer token olarak gönderilen ortam değişkeninin adı
http_headers Her isteğe eklenen sabit başlıklar
env_http_headers Değerleri ortam değişkenlerinden okunan başlıklar

Shager Authorization: Bearer shgr_live_... bekler ve bearer_token_env_var tam olarak bunu üretir. Kullanmanız gereken seçenek bu.

Codex config.toml: shager adlı bir MCP sunucusu, URL'si ve anahtarı tutan bir ortam değişkeni.
Anahtar dosyada değil, her zaman bir ortam değişkeninde kalır.

A seçeneği: config.toml dosyasını düzenleyin

~/.codex/config.toml dosyasını açın ve şunu ekleyin:

[mcp_servers.shager]
url = "https://app.shager.ai/api/mcp"
bearer_token_env_var = "SHAGER_API_KEY"

Ardından anahtarı TOML dosyasına değil, kabuk profilinize yazın:

export SHAGER_API_KEY="shgr_live_your_key_here"

Yapılandırmanın anahtarın kendisini değil, değişkenin adını tuttuğuna dikkat edin. Yani bu parçayı rahatça commit edebilir ya da paylaşabilirsiniz; her ekip arkadaşı kendi anahtarını sağlar. Kişi başına ayrı anahtar ileride kendini amorti eder, çünkü Shager'ın https://app.shager.ai/dashboard/agents adresindeki denetim kaydı her çağrıyı onu yapan anahtarla birlikte kaydeder.

B seçeneği: codex mcp add

Aynı tabloyu CLI sizin yerinize yazar. Codex'in codex mcp add kaynak kodu, streamable HTTP sunucuları için --url seçeneğini ve onu gerektiren bir --bearer-token-env-var bayrağını tanımlar (GitHub'da mcp_cmd.rs):

codex mcp add shager \
  --url https://app.shager.ai/api/mcp \
  --bearer-token-env-var SHAGER_API_KEY

Kurulu sürümünüz farklıysa esas alınacak kaynak codex mcp add --help çıktısıdır.

Sonucu kontrol edin:

codex mcp list

Codex TUI içinde /mcp, etkin sunucuları ve araçlarını gösterir.

Bunun yerine http_headers kullanmalı mısınız?

Kullanabilirsiniz ama kullanmamalısınız. http_headers = { "Authorization" = "Bearer shgr_live_..." } çalışır; ancak geçerli bir kimlik bilgisini, genellikle dotfile depolarına kopyalanıp giden düz bir metin dosyasına koyar. Bearer token dışında bir başlığa ihtiyacınız varsa env_http_headers, bir başlık adını bir ortam değişkeni adına eşler:

[mcp_servers.shager]
url = "https://app.shager.ai/api/mcp"
env_http_headers = { "Authorization" = "SHAGER_AUTH_HEADER" }

Bu biçimde değişken, şema dahil tam değeri içermelidir: export SHAGER_AUTH_HEADER="Bearer shgr_live_...". Shager için bearer_token_env_var daha basittir ve aynı işi görür.

Diyagram: Bir yapay zekâ ajanı (Claude, Codex veya Cursor) MCP sunucusu ya da REST API üzerinden Shager'a bağlanır, Shager da Facebook, Instagram, YouTube, X, LinkedIn ve TikTok'a dağıtır.
Shager bağlantıları, kontrolleri, kademeli gönderimi ve tıklama ölçümünü üstlenir. Facebook ve Instagram, Meta'nın onayını bekliyor; o zamana kadar yalnızca test hesapları bağlanabilir. TikTok'ta, TikTok uygulamayı onaylayana kadar gönderiler gizli ("yalnızca ben") olarak yayınlanır.

Codex'in Shager'da neler yapabileceğini nasıl sınırlarsınız?

Kurulum rehberlerinin çoğunun atladığı kısım bu. Codex, bir sunucunun araçlarını enabled_tools (izin listesi) ve ondan sonra uygulanan disabled_tools (engel listesi) ile filtrelemenize olanak tanır; ikisi de yapılandırma referansında belgelenmiştir. Bunu Shager'ın anahtar kapsamlarıyla birleştirdiğinizde, şüphe durumunda kapalı kalan iki katman elde edersiniz.

Her şeyi okuyabilen ve taslak oluşturabilen, ancak planlama, iptal ya da bağlantı linki oluşturma yapamayan bir taslak profili:

[mcp_servers.shager]
url = "https://app.shager.ai/api/mcp"
bearer_token_env_var = "SHAGER_API_KEY"
enabled_tools = [
  "whoami",
  "list_workspaces",
  "list_channels",
  "list_groups",
  "upload_media_from_url",
  "create_post",
  "get_post",
  "list_posts",
  "get_analytics",
]
tool_timeout_sec = 120

create_post listede kalıyor, çünkü schedule_at olmadan yalnızca taslak kaydeder. Anahtarda publish kapsamı da yoksa Shager, schedule_at içeren her create_post çağrısını 403 ile reddeder; böylece en yaratıcı model bile araya planlanmış bir gönderi sokamaz.

tool_timeout_sec değerini artırmamızın nedeni, upload_media_from_url aracının dosyayı sunucu tarafında indirmesi; büyük bir dikey video, referansta belirtilen varsayılan 60 saniyeden uzun sürebilir.

Çalıştırmaya değer ilk görev

Birkaç aracı kullanan ve geride yalnızca bir taslak bırakan bir komutla başlayın:

Use the shager MCP server.
1. whoami, then list_workspaces.
2. In workspace "Lakeside Realty", list_channels and list_groups.
3. upload_media_from_url https://example.com/media/open-house.jpg
4. create_post as a draft to group "All agents" with a different caption per
   channel (per_channel), mentioning each agent's neighborhood from the channel
   name. cta_url https://lakesiderealty.example/open-house, campaign
   "open-house-oct", first_comment "Details and RSVP: " followed by the link.
5. get_post and print a table of channel, network, format and state.

Görmeniz gereken: DRAFT durumunda, her hesap için bir hedef içeren ve her hedefin formatı o platforma göre belirlenmiş bir gönderi. Shager'da her hesap, cta_url için kendi kısa linkini ve UTM etiketlerini alır; utm_content hesabın adını taşır. Hesap bazında ilişkilendirmeyi daha sonra mümkün kılan da budur. Ayrıntılar hesap bazında potansiyel müşteri ilişkilendirmesi yazısında.

Codex bunu klavyenin başında bir insan olmadan çalıştırabilir mi?

Codex'in betikler ve CI için etkileşimsiz bir codex exec modu var. Arayüzsüz bir çalıştırmada MCP araç onaylarının nasıl davrandığı sürümden sürüme değişti; bu yüzden bir zamanlayıcıya bağlamadan önce kurulu sürümünüzde deneme çalıştırması yapın. Her hafta gözetimsiz çalışması gereken bir iş için pek çok ekip sohbet katmanını atlayıp Shager'ın REST API'sini kısa bir betikten çağırır; böylece takılıp kalınacak bir onay istemi olmaz. Hangisini seçerseniz seçin, işe kendi anahtarını verin, araç izin listesini dar tutun ve o anahtarın publish taşıyıp taşımayacağına bilinçli olarak karar verin. Bu tercihler etrafında kurulmuş bir rutini haftalık dağıtım rutini yazısında bulabilirsiniz.

Sorun giderme

Ne görüyorsunuz Neden Çözüm
401 unauthorized Değişken, Codex'i başlatan kabukta dışa aktarılmamış Aynı terminalde echo $SHAGER_API_KEY çalıştırın, sonra Codex'i yeniden başlatın
Araçlar /mcp içinde görünmüyor Ad enabled_tools içinde değil ya da disabled_tools içinde Yazımı /en/agents sayfasındaki araç listesiyle karşılaştırın
403 sandbox_unclaimed Anahtar ajanın kendi kendine kaydından geldi ve henüz bir insan sahiplenmedi claim_url adresini bir insana gönderin
Planlamada 403 forbidden Anahtarda publish yok Taslak anahtarı için beklenen davranış
429 rate_limited Anahtar başına dakikada 120'den fazla istek Hesap başına bir çağrı yerine grupları ve tek bir create_post kullanın

SSS

Codex'in Shager ile konuşması için OAuth gerekir mi?

Hayır. Codex ortam değişkeninden gelen bearer token'ları destekler ve Shager API anahtarını bu şekilde kabul eder. Shager'ın MCP sunucusu OAuth ile girişi de destekliyor, Codex de OAuth sunucularını destekliyor; yani anahtar yönetmek istemiyorsanız giriş yapmak da bir seçenek.

Codex IDE eklentisinde Shager kurulumu farklı mı?

OpenAI'ın MCP dokümantasyonuna göre ChatGPT masaüstü uygulaması, Codex CLI ve IDE eklentisi bu yapılandırmayı paylaşır; yani aynı ~/.codex/config.toml tablosu hepsine hizmet eder. Ortam değişkeninin düzenleyici sürecine görünür olduğundan emin olun; macOS'ta bu, düzenleyiciyi bir terminalden başlatmak anlamına gelebilir.

Codex'i MCP yerine REST API'ye yönlendirebilir miyim?

Evet, sohbet etmek yerine kod yazıyorsanız. OpenAPI belgesi, MCP araçlarıyla aynı işlemleri aynı kapsamlar ve sınırlarla tanımlar.

Sonraki adım

Codex bağlandıktan sonra, bir şeyi otomatikleştirmeden önce işlemlerin kendisine alışın. REST API hızlı başlangıç rehberi, çalışma alanından takip linkli gönderiye kadar tüm sırayı curl ve Python ile adım adım gösterir; bu da Codex MCP araçlarını çağırırken ne yaptığını okumanıza yardımcı olur.

Kendi hesaplarınızda deneyin.

Lansman döneminde ücretsiz, kart gerekmez. Bağlayın, bir kez yazın; Shager yayınlasın ve ölçsün.