Claude Code Hooks, MCP ve Skills: Aralarındaki Farklar ve Kullanım Örnekleri
Claude Code'un üç güçlü mekanizması Hooks, MCP ve Skills, geliştirici iş akışlarını farklı katmanlarda otomatikleştirir. Bu yazıda her birinin ne işe yaradığını, nasıl ayrıştığını ve gerçek projelerde nasıl bir arada kullanılabileceğini örneklerle ele alıyoruz.
Claude Code'da Üç Farklı Otomasyon Katmanı
Claude Code, terminal üzerinden çalışan bir yapay zekâ kodlama asistanı olarak son dönemde geliştiricilerin günlük iş akışına hızla girdi. Ancak onu sadece bir sohbet aracı gibi düşünmek eksik olur; çünkü Claude Code'un asıl gücü, dış dünyayla ve yerel geliştirme ortamıyla kurduğu entegrasyonlarda yatıyor. Bu entegrasyonların başında Hooks, MCP (Model Context Protocol) ve Skills geliyor. Bu üç kavram sık sık birbirine karıştırılsa da aslında farklı sorunlara çözüm üretirler ve doğru kurgulandıklarında birbirlerini tamamlarlar.
Hooks: Olay Tabanlı Otomasyon
Hooks, Claude Code'un yaşam döngüsündeki belirli olaylara (event) bağlanan komutlardır. Örneğin bir oturum başladığında, bir araç çağrılmadan önce veya bir dosya düzenlendikten sonra tetiklenebilirler. Amaç, tekrarlayan işleri otomatikleştirmek ve tutarlılığı garanti altına almaktır.
Nasıl çalışır?
Claude Code, hook tanımlarını bir yapılandırma dosyasında (örneğin proje kökündeki .claude/settings.json veya kullanıcı seviyesindeki ayar dosyası) okur. Her hook, bir olay adı ve çalıştırılacak kabuk komutundan oluşur. Örneğin, her dosya kaydından sonra otomatik olarak bir linter çalıştırmak isteyebilirsiniz:
{
"hooks": {
"afterFileEdit": [
{
"command": "npx eslint --fix $CLAUDE_FILE_PATH"
}
]
}
}
Burada $CLAUDE_FILE_PATH gibi ortam değişkenleri, Claude Code tarafından sağlanan bağlam bilgileridir. Hook'lar sayesinde Claude, kod yazdıktan sonra otomatik olarak testleri çalıştırabilir, commit mesajı formatını doğrulayabilir veya belirli dizinlere yazmayı engelleyebilir.
Ne zaman kullanılır?
Hooks, olay güdümlü işler için idealdir: dosya değişikliklerinde tetiklenen kontroller, oturum başında ortam hazırlığı, araç çağrılmadan önce yetkilendirme. Kısacası, Claude'un davranışını yerel geliştirme sürecinize göre şekillendirmek istediğinizde Hooks devreye girer.
MCP: Dış Dünyaya Açılan Kapı
Model Context Protocol (MCP), Anthropic tarafından geliştirilen açık bir protokoldür. Amacı, yapay zekâ modellerinin harici veri kaynaklarına ve araçlara standart bir arayüz üzerinden erişmesini sağlamaktır. Claude Code, MCP istemcisi olarak çalışır ve MCP sunucularına bağlanarak onların sunduğu kaynakları (resources) ve araçları (tools) kullanabilir.
MCP sunucusu nedir?
Bir MCP sunucusu, belirli bir yeteneği standart bir şemayla sunan hafif bir servistir. Örneğin bir veritabanı MCP sunucusu, Claude'a tablo şemalarını okuma ve sorgu çalıştırma yeteneği kazandırabilir. Benzer şekilde bir dosya sistemi MCP sunucusu, belirli dizinlerde arama yapma veya dosya içeriği okuma gibi işlevler sunar.
Nasıl yapılandırılır?
Claude Code'da MCP sunucuları genellikle claude mcp add komutuyla veya yapılandırma dosyası üzerinden eklenir. Örneğin, yerel bir SQLite MCP sunucusunu bağlamak için:
claude mcp add sqlite -- npx -y @modelcontextprotocol/server-sqlite ./veritabani.db
Bu komut, Claude Code'un oturumunda sqlite adında bir MCP sunucusu başlatır ve Claude'a bu veritabanı üzerinde sorgu yapma yeteneği tanır. MCP'nin en büyük avantajı, farklı araçları tek bir protokol altında birleştirmesidir; böylece Claude, hangi aracın nasıl çağrıldığını bilmek zorunda kalmaz.
Ne zaman kullanılır?
Claude'un proje dışındaki sistemlerle (veritabanları, API'ler, bulut servisleri, dokümantasyon sunucuları) etkileşime girmesi gerektiğinde MCP tercih edilir. Hooks yerel otomasyonu yönetirken, MCP dış entegrasyonu üstlenir.
Skills: Yeniden Kullanılabilir Yetenek Paketleri
Skills, Claude Code'a belirli bir görevi nasıl yapacağını öğreten, dosya tabanlı talimat setleridir. Bir skill, genellikle bir SKILL.md dosyası ve yardımcı betiklerden oluşur. Claude, bir görevle karşılaştığında ilgili skill'i otomatik olarak keşfeder ve içeriğindeki adımları takip eder.
Skill nasıl tanımlanır?
Örneğin, projenizde standart bir React bileşeni oluşturma sürecini otomatikleştirmek isteyebilirsiniz. Bunun için .claude/skills/react-component/SKILL.md dosyası oluşturup içine şu talimatları yazabilirsiniz:
---
name: react-component
description: Yeni bir React fonksiyonel bileşeni oluşturur.
---
1. Bileşen adını PascalCase formatına çevir.
2. `src/components/` altında yeni bir klasör oluştur.
3. `index.tsx` dosyasına fonksiyonel bileşen iskeletini yaz.
4. `index.test.tsx` dosyasına temel render testi ekle.
5. Bileşeni `src/components/index.ts` dosyasına export et.
Claude Code, kullanıcı "yeni bir buton bileşeni oluştur" dediğinde bu skill'i bulur ve adımları sırayla uygular. Skills, tekrarlayan ve standartlaştırılması gereken iş akışları için mükemmeldir.
Ne zaman kullanılır?
Skills, bilgi ve prosedür gerektiren görevler için idealdir: kod şablonları, proje kuralları, test yazma standartları, commit mesajı formatları. Hooks ve MCP'den farklı olarak Skills, Claude'un "nasıl yapacağını" bilmediği işleri öğretir.
Üçünü Bir Arada Kullanmak: Gerçekçi Bir Senaryo
Diyelim ki bir e-ticaret projesinde çalışıyorsunuz ve Claude Code'dan sipariş servisi için yeni bir endpoint yazmasını istiyorsunuz. İşte üç mekanizmanın birlikte nasıl çalışacağı:
- Skill devreye girer: Claude, "endpoint ekle" görevini gördüğünde projedeki
api-endpointskill'ini keşfeder. Bu skill, controller, servis ve test dosyalarının nasıl oluşturulacağını adım adım anlatır. - MCP devreye girer: Claude, veritabanı şemasını kontrol etmek için bağlı olan PostgreSQL MCP sunucusuna sorgu gönderir ve ilgili tabloları listeler.
- Hooks devreye girer: Claude dosyaları yazdıktan sonra
afterFileEdithook'u otomatik olarak çalışır ve TypeScript derleyicisini tetikler. Eğer hata varsa Claude'a geri bildirim gider.
Bu düzenekte her katman kendi işini yapar: Skill prosedürü tanımlar, MCP veriyi sağlar, Hooks ise kalite kontrolünü üstlenir.
Sık Karıştırılan Noktalar
En yaygın kafa karışıklığı, MCP ile Skills'in aynı şey olduğu sanılmasıdır. Oysa MCP bir protokoldür ve dış sistemlere bağlanır; Skills ise Claude'un içsel bilgi ve prosedürlerini tanımlayan dosya tabanlı talimatlardır. Benzer şekilde Hooks, Claude'un kendi eylemlerine tepki verir; MCP ise Claude'un dış dünyaya erişimini sağlar. Üçü birbirinin alternatifi değil, tamamlayıcısıdır.
Sonuç
Claude Code'u verimli kullanmanın anahtarı, Hooks, MCP ve Skills arasındaki farkı doğru anlamaktan geçiyor. Hooks ile yerel iş akışınızı otomatikleştirin, MCP ile dış sistemlere güvenli ve standart bir köprü kurun, Skills ile de tekrarlayan görevleri standartlaştırın. Bu üçlüyü projenizin ihtiyaçlarına göre katmanlandırdığınızda, Claude Code pasif bir asistan olmaktan çıkıp projenizin aktif bir parçası haline gelir.