← Tüm yazılar
Ecosystem

Resmî Marketplace’i Kurmadan Önce Claude Code Eklentilerini Denetlemek

A developer workbench scene showing a Claude Code plugin marketplace card passing through a security scanner, with small

Anthropic’in resmî Claude Code eklenti marketplace’i artık config klasörlerinin içinde gömülü kalmış bir söylenti değil. Herkese açık GitHub reposu anthropics/claude-plugins-official, 17 Haziran 2026 itibarıyla 30.000’den fazla yıldız almış durumda ve README’si, Anthropic’in kendi eklentileriyle birlikte üçüncü taraf girişleri de içeren seçilmiş bir dizinden söz ediyor. Aynı README’de duruşunuzu belirlemesi gereken şu cümle de var: “Bir eklentiyi kurmadan, güncellemeden veya kullanmadan önce ona güvendiğinizden emin olun” çünkü Anthropic bu eklentilerdeki her MCP server, dosya veya paketlenmiş başka bağımlılık üzerinde kontrol sahibi değil (GitHub).

Bu uyarı hukuki bir kalıp metin değil. Bir Claude Code eklentisi slash komutları, beceriler, ajanlar, hook’lar, MCP servers, LSP servers, yürütülebilir dosyalar ve ayarlar paketleyebilir. Düz geliştirici diliyle: prompt bağlamı ekleyebilir, yerel süreçler başlatabilir, uzak servislere çağrı yapabilir, yaşam döngüsü olaylarında shell hook’ları çalıştırabilir ve modele yeni araçlar açabilir.

Doğru zihinsel model “bir editör teması kuruyorum” değil. “Kaynak ağacımın yakınında kod çalıştırabilecek bir bağımlılık ekliyorum.”

Marketplace kataloğundan yerel önbelleğe ve etkin bileşenlere uzanan Claude Code eklenti kurulum yolunun akış taslağı, fou ile

Marketplace Gerçek, Ama “Resmî” Demek “Körü Körüne Güvenli” Demek Değil

Anthropic, Claude Code eklentilerini 9 Ekim 2025’te duyurdu; bunları /plugin ile kurulabilen slash komutları, ajanlar, MCP servers ve hook koleksiyonları olarak tanımladı (Claude blog). Güncel Claude Code dokümanları, resmî Anthropic marketplace’i claude-plugins-officialın Claude Code başlatıldığında otomatik olarak kullanılabilir olduğunu ve bir eklentiyi şu komutla kurabileceğinizi söylüyor:

/plugin install github@claude-plugins-official

Eklenti görünmüyorsa dokümanlar marketplace’i şu komutla yenilemenizi söylüyor:

/plugin marketplace update claude-plugins-official

veya şu komutla eklemenizi:

/plugin marketplace add anthropics/claude-plugins-official

Resmî mutlu yol bu (Claude Code docs). Faydalı. Ama operasyonel politika olarak eksik.

Resmî repo’nun marketplace dosyası, yerel eklenti dizinleriyle commit SHA’ya sabitlenmiş dış kaynakların bir karışımına işaret ediyor. Örneğin girişler, GitHub depolarına, alt dizinlere, ref’lere ve .claude-plugin/marketplace.json içindeki SHA’lara referans verebilir (raw marketplace file). Sabitleme yardımcı olur, ama sabitlenen kodun ne yaptığını inceleme gereğini ortadan kaldırmaz. Bir eklenti hâlâ sunucu başlatabilir, kimlik bilgisi isteyebilir, hook çalıştırabilir veya marketplace manifest’inin dışında davranışı değişen bir binary’ye bağlı olabilir.

Topluluk da aynı şeyi fark etmiş durumda. Önemli Claude Code eklentilerinin sorulduğu yakın tarihli bir r/ClaudeAI başlığında, bir yanıt önce CLAUDE.md ve hook’ları, sonra yalnızca projeye özel MCP servers’ı önerdi. Bir başkası Claude Code’a “rastgele connector’lar fırlatmamayı” söyledi; çünkü bunlar token harcar ve bağlam kirliliğine yol açabilir (Reddit). Bugünkü pratik tartışma bu: eklentiler güçlü, ama her ek kabiliyetin bir maliyet yüzeyi var.

Manifest’le Başlayın, Sonra Repo’yu Okuyun

İlk denetim hedefiniz eklenti kaynağıdır. Kaynağı bir repo’ya ve manifest’e kadar izleyemeden arama sonuçlarından, bloglardaki kopyala-yapıştır komutlardan veya rastgele marketplace toplayıcılarından kurulum yapmayın.

Resmî marketplace repo’sunda şunları kontrol edin:

  1. .claude-plugin/marketplace.json içindeki marketplace girdisi
  2. source tipi, URL, path, ref ve SHA
  3. Varsa eklentinin .claude-plugin/plugin.json dosyası
  4. Tüm .mcp.json, .lsp.json, hooks/hooks.json, commands/, skills/, agents/, bin/ ve script’ler

Anthropic’in eklenti referansı temel bileşen yollarını listeliyor. Hook’lar hooks/hooks.json içinde yaşar, MCP servers .mcp.json içinde olabilir, yürütülebilir dosyalar bin/ içinde olabilir ve eklenti manifest’leri özel bileşen konumlarına işaret edebilir (Claude Code plugin reference). Yani “plugin.json’u kontrol ettim” yeterli değil. Bir eklenti varsayılan keşif yollarına güvenebilir.

Hızlı bir manuel inceleme şöyle görünür:

git clone https://github.com/OWNER/PLUGIN-REPO /tmp/plugin-audit
cd /tmp/plugin-audit

find . -maxdepth 3 \( \
  -name plugin.json -o \
  -name hooks.json -o \
  -name .mcp.json -o \
  -name .lsp.json -o \
  -path "*/bin/*" -o \
  -path "*/scripts/*" \
\) -print

rg -n "curl|wget|bash|sh -c|chmod|open |xdg-open|osascript|token|api_key|secret|eval|exec|spawn|subprocess"

Bu rg komutu kaba, ama burada kaba olmak iyi. Kurulum anı sürprizlerini, shell çalıştırmayı, tarayıcı açmayı, uzak indirmeleri, kimlik bilgisi işlemeyi ve repo’nuzu ya da home dizininizi değiştiren script’leri arıyorsunuz.

Benim kuralım: Bir eklentinin temel işini yapmak için shell script’e ihtiyacı varsa, kurmadan önce o script’teki her komutu anlamak isterim. Çalışma zamanında başka bir artifact indiriyorsa, o runtime artifact’ini eklentinin bir parçası sayarım.

MCP Servers En Pahalı “Kolaylık”

MCP, eklenti kolaylığının gizli maliyete dönüşebildiği yer. Anthropic’in MCP dokümanları, eklenti tarafından tanımlanan MCP servers’ın eklenti etkinleştirildiğinde otomatik başladığını ve eklenti MCP araçlarının elle yapılandırılmış MCP araçlarıyla birlikte göründüğünü söylüyor (Claude Code MCP docs). Dokümanlar ayrıca eklenti MCP servers’ın elle yapılandırılmış server’larla aynı ortam değişkenlerini kullandığını söylüyor; shell’iniz cloud token’ları, veritabanı URL’leri veya dahili servis kimlik bilgileri export ediyorsa bu önemli.

Topluluk şikâyeti net: MCP araç şemaları, aracı çağırmadan önce bile bağlamı yiyebilir. Bir r/ClaudeCode token-overhead başlığında kullanıcılar, daha düşük token tüketiminin muhtemel nedeni olarak devre dışı eklentileri ve ağır MCP servers’ın yokluğunu gösterdi; bir yorumcu MCP araç şemalarını “devasa bir gizli maliyet” diye adlandırdı (Reddit). Başka bir başlıkta bir yorumcu, bağlı MCP servers’ın araç şemalarını bağlama kaydettiğini iddia etti ve server’ları oturum bazında budamayı önerdi (Reddit).

Kendi kurulumunuzda yeniden üretmediğiniz sürece Reddit’teki kesin token tahminlerini anekdot sayın. Ama temel yön hâlâ doğru: çok sayıda ayrıntılı aracı olan sürekli açık bir server bedava değildir.

Connector tarzı bir eklenti kurmadan önce bu karar tablosunu kullanın:

İhtiyaçDaha güvenli varsayılanMCP’yi şu durumda kullan
GitHub işlemleri çalıştırmakBash üzerinden gh CLIClaude issue’ları, PR’ları ve metadata’yı etkileşimli gezmek zorundaysa
Veritabanı sorgulamakSalt okunur CLI veya yerel scriptClaude kapsamlı kimlik bilgileriyle yapılandırılmış tool call’lara ihtiyaç duyuyorsa
Cloud kaynaklarını incelemekAçık komutlarla vendor CLIMCP server dar izinlere ve net audit log’larına sahipse
Doküman getirmekStatik dokümanlar, repo dosyaları veya web linkleriKaynaklar büyük, dinamik ve sık referans ediliyorsa
Politika uygulamakPreToolUse hookKararın Claude tarafından görülebilir bağlama veya araç metadata’sına ihtiyacı varsa

Bir CLI aracı çoğu zaman daha güvenlidir; çünkü yalnızca gerektiğinde çağrılır ve yalnızca o tur için çıktı üretir. MCP, kapsamlı OAuth, tipli araçlar ve audit log’ları verdiğinde daha güvenli olabilir. Hata, refleks olarak MCP kurmaktır.

Dört satırda CLI araçları ile MCP servers’ı karşılaştıran kompakt grafik: bağlam maliyeti, izin yüzeyi, kurulum

Hook’lar Kendi Güvenlik İncelemesini Hak Ediyor

Hook’lar, eklentileri sihirli hissettiren özellik. Aynı zamanda en sert denetlediğim özellik.

Claude Code hook’ları SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact ve SessionEnd gibi olaylarda çalışabilir. Eklenti referansı hook türlerinin command hooks, HTTP hooks, MCP tool hooks, prompt hooks ve agent hooks içerdiğini söylüyor (Claude Code plugin reference). Hook rehberi, bir PreToolUse hook’unun 2 koduyla çıkarak bir eylemi engelleyebileceğini; UserPromptSubmit, UserPromptExpansion ve SessionStart stdout çıktısının ise Claude’un bağlamına eklenebileceğini açıklıyor (Claude Code hooks guide).

Bu çok fazla güç demek.

İyi bir hook tehlikeli davranışı engeller veya kompakt, deterministik bağlam ekler. Kötü bir hook her prompt’u pahalı bir RAG pipeline’ına çevirir, prompt metnini bir HTTP endpoint’ine sızdırır veya ortamınızı sessizce değiştirir.

Hook’ları dört soruyla denetleyin:

  1. Hangi olay onu tetikliyor?
  2. Hangi matcher onu sınırlıyor?
  3. Hangi veriyi alıyor?
  4. stdout, stderr, disk, ağ veya bağlama ne yazıyor?

Topluluk burada faydalı bir şekilde bölünmüş durumda. Bir r/ClaudeCode hook başlığında bazı geliştiriciler hook’ları kural uygulamanın, kötü git eylemlerini engellemenin veya Claude’a memory yazmasını hatırlatmanın tek güvenilir yolu olarak anlatıyor. Diğerleri UserPromptSubmit üzerinde ayrıntılı memory ve RAG akışları kuruyor (Reddit). İkisi de geçerli olabilir. Fark bütçe ve etki alanı.

Takım kurulumlarında, context-injection hook’larından önce policy hook’larına izin verirdim. rm -rf kalıplarını engelleyen bir PreToolUse hook’unu anlamak kolaydır. Her tur memory getirip enjekte eden bir UserPromptSubmit hook’u ise ölçüm, sınır ve net sahiplik ister.

Dar Kurun, Ölçün, Sonra Yaygınlaştırın

Claude Code user, project, local ve managed eklenti scope’larını destekler. Dokümanlar user scope’u projeler arasında kişisel, project scope’u .claude/settings.json üzerinden paylaşılan, local scope’u ise projeye özel ama paylaşılmayan olarak tanımlar (Claude Code docs).

Bu scope’ları rollout mekanizması olarak kullanın:

  1. Önce locally kurun.
  2. Gerçek bir görev çalıştırın.
  3. /plugin ayrıntılarını ve /mcp’yi kontrol edin.
  4. Öncesinde ve sonrasında /context ve /usage kullanın.
  5. Kirasını ödemeyen her şeyi devre dışı bırakın.
  6. Project scope’a yalnızca incelemeden sonra yükseltin.

Dokümanlar artık eklenti ayrıntıları panelinin Claude Code v2.1.143 ve sonrasında context cost tahminlerini, v2.1.144 ve sonrasında son güncelleme tarihlerini, v2.1.145 ve sonrasında da “Will install” envanterini gösterebildiğini söylüyor (Claude Code docs). Kur’a basmadan önce bu envanteri kullanın. Bir eklenti formatter olduğunu iddia ediyor ama MCP server, hook ve arka plan izleyicisi kuruyorsa durun ve inceleyin.

Otomatik güncellemelere de dikkat edin. Anthropic, resmî marketplace’lerde auto-update’in varsayılan olarak etkin olduğunu; üçüncü taraf ve local marketplace’lerde ise varsayılan olarak devre dışı olduğunu söylüyor. Dokümanlar ayrıca güncelleme davranışını kontrol etmek için DISABLE_AUTOUPDATER ve FORCE_AUTOUPDATE_PLUGINS değişkenlerini anlatıyor (Claude Code docs). Auto-update güvenlik düzeltmeleri için kullanışlıdır, ama runtime tedarik zincirinizi değiştirir. Regülasyona tabi ekipler için, her laptop’ın bağımsızca farklılaşmasına izin vermek yerine marketplace sürümlerini incelenmiş dahili bir marketplace’te sabitleyin.

Kurulu eklenti envanterinin çok sayıda MCP servers ve hook’tan daha aza indiğini gösteren önce-sonra denetim panosu maketi

Kurmadan Önce Kullandığım Kontrol Listesi

Claude Code kullanan bir ekipteki herhangi bir geliştiriciye vereceğim kısa sürüm bu.

Kaynak:

  • Marketplace anthropics/claude-plugins-official, dahili bir repo veya üçüncü taraf bir repo mu?
  • Eklenti kaynağı bir SHA’ya sabitlenmiş mi?
  • Homepage kaynak sahibiyle eşleşiyor mu?
  • Repo’da yakın tarihli beklenmedik değişiklikler, üretilmiş blob’lar veya kurulum script’leri var mı?

Bileşenler:

  • MCP servers ekliyor mu?
  • Hook ekliyor mu?
  • bin/ içinde yürütülebilir dosya ekliyor mu?
  • Araç çağırabilen ajanlar ekliyor mu?
  • Yerel binary gerektiren LSP servers ekliyor mu?

İzinler:

  • Hangi kimlik bilgilerini istiyor?
  • Hassas değerler plugin userConfig üzerinden sensitive fields olarak saklanıyor mu?
  • MCP server salt okunur erişim mi, yazma erişimi mi alıyor?
  • Bir hook HTTP üzerinden eve telefon ediyor mu?
  • Herhangi bir script geniş kapsamlı ortam değişkenlerini miras alıyor mu?

Maliyet:

  • /plugin context cost olarak ne bildiriyor?
  • Etkinleştirdikten sonra /context içinde ne değişiyor?
  • Eklenti her oturumda değer katıyor mu, yoksa yalnızca nadir iş akışlarında mı?
  • Bir CLI komutu aynı sonucu daha az kalıcı bağlamla üretebilir mi?

Operasyon:

  • /plugin disable name@marketplace ile temizce devre dışı bırakabiliyor musunuz?
  • Temizce kaldırabiliyor musunuz?
  • Geride config, kimlik bilgisi, daemon, cache veya tarayıcı auth bırakıyor mu?
  • Güncellemelerin sahibi kim?
  • Eklenti kaynağı kaybolursa ne bozulur?

Keskin cevap şu: istediğinizden daha az eklenti kurun. Tek bir iş akışı ekleyen küçük, sıkıcı eklentileri tercih edin. Tek seferlik operasyonlar için CLI’ları tercih edin. MCP’yi server kapsamlı, denetlenmiş ve gerçekten etkileşimli olduğunda kullanın. Hook’ları korkuluk için kullanın; modelin hatırlamasını dilediğiniz her tercihi boşalttığınız bir çöp kutusu olarak değil.

Eklentiler, Claude Code’un iş akışları için paket formatına dönüşüyor. Bu iyi. Ekiplerin kabile tipi prompt bilgisinden ziyade tekrarlanabilir kurulumlar paylaşabileceği anlamına geliyor. Ama paket formatı bağımlılık incelemesini, izin incelemesini ve maliyet incelemesini hak edecek kadar güçlü. Bir aracı okumadan repo’nuza curl | bash ile sokmayacaksanız, sırf dost canlısı bir marketplace UI içinde göründüğü için eklenti sürümünü de kurmayın.

Sessiz dipnot: Claude Fable 5’i kendiniz denemek isterseniz, liste fiyatının yaklaşık %30 altında fiyatlanan drop-in endpoint olarak OneHop üzerinde Claude Fable 5 üzerinden kullanabilirsiniz. Yeni hesaplar 10$ ücretsiz başlayabilir, kart gerekmez.

Daha fazla okuma: Claude Fable 5 ile başlangıç.