İçeriğe atla

Claude Code MCP Sunucuları: Kurulum ve Yapılandırma Rehberi

Claude Code, AI agent'ları ve Model Context Protocol sunucuları hakkında geliştiricileri temel kullanıcıdan güç kullanıcısına dönüştüren kapsamlı bir rehber

Ayhan Sipahi Ayhan Sipahi

Claude Code’un verimlilik tavanı, MCP (Model Context Protocol) sunucuları devreye girdiğinde belirgin biçimde yükselir. Onlar olmadan akış kopyala-yapıştır modunda kalır; doğru MCP sunucuları bağlandığında Claude Code altyapı, veritabanı ve servislerle doğrudan etkileşim kurabilir. Başlangıç için doğru kurulum küçüktür: filesystem sunucusu ve tek bir dokümantasyon sunucusu; geri kalanı göreve göre eklenir ve iş bitince kapatılır.

Claude Code Nedir#

Claude Code, çoğu geliştiricinin hiç keşfetmediği yeteneklere sahip bir geliştirme ortamıdır. Bunların üçü diğerlerinden daha çok işe yarar.

Üç Etkileşim Modu#

ModAmaçContextEn İyi Kullanım Alanı
SubagentsÖzelleştirilmiş görev delegasyonuİzole, odaklanmışKarmaşık çok adımlı operasyonlar
Auto-AcceptKolaylaştırılmış otomasyonAna oturum ile paylaşılanGüvenilir, tekrarlayan görevler
Interactiveİnsan kontrolünde işlemTam proje farkındalığıKritik değişiklikler, öğrenme aşaması

Çoğu geliştirici sonsuza kadar interactive modda kalıyor. Asıl güç, ne zaman subagent’lara delegasyon yapacağınızı ve ne zaman auto-accept modunu etkinleştireceğinizi bilmekten geliyor.

Ekosistem Köprüsü Olarak MCP Sunucuları#

MCP sunucuları Claude Code’u doğrudan okuyup üzerinde işlem yapabileceği ekosistemlere bağlar: altyapı, veritabanları ve servisler.

AWS Altyapı Sunucuları#

AWS’nin resmi MCP sunucuları GitHub’da @awslabs altında mevcut ve çoğu projenin günlük olarak dokunduğu AWS servislerini kapsıyor. Kesin kurulum komutları Claude Code kurulumunuza göre değişir, bu yüzden güncel sözdizimi için resmi dokümantasyona bakın:

# Resmi AWS MCP sunucuları @awslabs GitHub organizasyonunda
# Genel biçim: claude mcp add <ad> -- <başlatma komutu>

# Aurora DSQL MCP - doğrudan veritabanı operasyonları

# AWS PostgreSQL MCP - RDS entegrasyonu

# AWS MySQL MCP - MySQL veritabanı operasyonları

Context7 ile Context Yönetimi#

Büyük codebase’lerde Claude’un önceki oturum bağlamını yitirmesi yaygın bir sorun. Context7 MCP sunucusu, proje yapısını her oturumda yeniden açıklamak yerine codebase’in kalıcı bir anlayışını koruyarak bu soruna çözüm sağlar:

// Context7 MCP entegrasyon konsepti
// Bu üçüncü parti servis dinamik dokümantasyon yönetimi sağlıyor
const contextConfig = {
  provider: "context7",
  endpoint: "https://mcp.context7.com/mcp",
  features: [
    "Dinamik dokümantasyon alımı",
    "Proje-farkında context yönetimi",
    "Çapraz oturum hafızası"
  ]
};

Kurulum: Yaygın Hatalar#

En yaygın hata sudo npm install -g kullanmak. Sorunun kökeni şu:

NPM İzin Sorunu#

# BUNU YAPMAYIN - izin sorunlarına neden olur
sudo npm install -g @anthropic-ai/claude-code

# DAHA İYİ YAKLAŞIM - npx veya lokal kurulum kullanın
npx @anthropic-ai/claude-code  # Global kurulum olmadan çalıştır

# VEYA önce npm'i düzgün yapılandırın
npm config set prefix ~/.npm-global
export PATH=~/.npm-global/bin:$PATH
npm install -g @anthropic-ai/claude-code  # Artık sudo olmadan güvenli

npm ekosistemi sudo için tasarlanmamıştır; root sahipli dosyaların kullanıcı process’leriyle karışması, güvenlik ve bakım sorunlarını sonradan, yükseltme sırasında önünüze getirir.

Ölçeklenebilir Konfigürasyon#

Birden fazla projede ayakta kalan konfigürasyon şekli şu:

// Konsept konfigürasyon yapısı
// Gerçek config formatı değişir - resmi dokümanları kontrol edin
{
  "model": "claude-sonnet-4-20250514",  // Model ID'leri sık değişir - güncel uygunluğu kontrol edin
  "contextWindow": {
    "maxTokens": 200000,
    "strategy": "sliding",
    "preservePriority": ["tests", "core", "recent"]
  },
  "mcpServers": {
    // Sunucu konfigürasyonları buraya gelir
    // Format MCP implementasyonuna bağlı
  },
  "security": {
    "scanOnGenerate": true,
    "requireReview": ["auth", "payment", "user-data"]
  }
}

Context Yönetimi#

Context yönetimi prompt mühendisliğinden daha önemlidir. Mükemmel prompt’larla bile Claude’un doğru context’i yoksa token ve zaman boşa gider.

Stratejik Temizleme Deseni#

# Slash komutları Claude Code oturumu içinde çalışır

# Planlı temizlik: ana context değişimlerinde
/clear  # Sadece ana context'ler arasında geçiş yaparken

# Odaklanmış çalışma için belirli dizinler ekleyin
/add-dir ./src/components
# Component'ler üzerinde çalış
/clear
/add-dir ./tests
# Testler üzerinde çalış

Token Takibi#

Claude Code’un yerleşik token raporlaması sınırlı; görev bazında sayı istediğinizde kaba bir harici sayaç hâlâ işe yarar:

// Manuel token takip yaklaşımı
class TokenTakipci {
  constructor() {
    this.oturumlar = [];
    this.mevcutOturum = null;
  }

  oturumBaslat(gorevAdi) {
    this.mevcutOturum = {
      gorev: gorevAdi,
      baslangicZamani: Date.now(),
      tahminiTokenler: 0,
      etkilesimler: []
    };
  }

  etkilesimKaydet(prompt, yanit) {
    // Kaba tahmin: 1 token ≈ 4 karakter
    const tokenler = (prompt.length + yanit.length) / 4;
    this.mevcutOturum.tahminiTokenler += tokenler;
    this.mevcutOturum.etkilesimler.push({
      zamanDamgasi: Date.now(),
      tokenler
    });
  }

  oturumBitir() {
    this.oturumlar.push({
      ...this.mevcutOturum,
      sure: Date.now() - this.mevcutOturum.baslangicZamani
    });
    return this.mevcutOturum.tahminiTokenler;
  }
}

Güvenlik#

Kod incelemelerinde sık karşılaşılan bir durum: AI tarafından üretilen kimlik doğrulama kodu mutlu senaryoyu mükemmel ele alır ama şifre karşılaştırmasında timing attack güvenlik açığı barındırır.

Güvenlik Entegrasyon Framework’ü#

# Güvenlik tarama entegrasyonu (harici araçlar kullanın)
# Claude Code'un yerleşik güvenlik taraması yok

# Pre-commit hook yaklaşımı
git add .
eslint --ext .js,.ts src/  # Statik analiz
semgrep --config=auto src/  # Güvenlik desenleri
npm audit  # Bağımlılık güvenlik açıkları

# Ancak o zaman Claude Code'un commit'lerle devam etmesine izin verin

Kod İnceleme Kuralları#

AI tarafından üretilen kod için inceleme kontrol listesi:

interface GuvenlikIncelemeKontrolListesi {
  kimlikDogrulama: {
    gerekli: true,
    kontroller: [
      "Timing attack direnci",
      "Rate limiting implementasyonu",
      "Güvenli token üretimi",
      "Oturum yönetimi"
    ]
  };
  veriIsleme: {
    gerekli: true,
    kontroller: [
      "Girdi doğrulama",
      "SQL injection önleme",
      "XSS koruması",
      "Veri şifreleme (rest halinde)"
    ]
  };
  apiGuvenligi: {
    gerekli: true,
    kontroller: [
      "Yetkilendirme kontrolleri",
      "CORS konfigürasyonu",
      "API rate limiting",
      "İstek doğrulama"
    ]
  };
}

Performans Optimizasyonu#

Performansı iyileştiren şeyler (özel kullanım durumunuza göre sonuçlarınız değişebilir):

Düşünme Seviyeleri ve Sunucu Gecikmesi#

Evet

Hayır

Karmaşıklık > 7

Hayır

Evet

Hayır

Kullanım için

Kullanım için

Kullanım için

Görev Analizi

Güvenlik/Auth/Ödeme?

ultrathink - KRITIK

Yüksek Karmaşıklık?

think hard - KARMASIK

Mimari/Tasarım?

think - BASIT

Temel refactoring, basit bug'lar

Mimari kararlar, algoritmalar

Güvenlik, veri modelleri, API'ler

Tüm MCP sunucuları aynı performans özelliklerine sahip değildir:

// MCP sunucu tipine göre performans özellikleri
const mcpPerformans = {
  lokal: {
    gecikme: "Tek haneli ila birkaç on ms",
    guvenilirlik: "Lokal process ile sınırlı",
    darboğaz: "Lokal CPU/Bellek",
    enIyisi: ["Dosya operasyonları", "Git komutları", "Lokal veritabanları"]
  },
  uzak: {
    gecikme: "Onlarca ila yüzlerce ms",
    guvenilirlik: "Ağ yolu ile sınırlı",
    darboğaz: "Ağ gecikmesi",
    enIyisi: ["Cloud servisleri", "Harici API'ler", "Paylaşılan kaynaklar"]
  },
  hibrit: {
    gecikme: "Değişken",
    guvenilirlik: "Yedeklemeye bağlı",
    darboğaz: "Senkronizasyon",
    enIyisi: ["Önbelleğe alınmış operasyonlar", "Esnek iş akışları"]
  }
};

Uygulama Zorluklarından Öğrenilenler#

”Daha Fazla MCP Sunucusu = Daha İyi” Yanlış Anlayışı#

Aynı anda çok fazla MCP sunucusu çalıştırmak performansı önemli ölçüde etkiler. Gözlenen örüntü:

// Optimal MCP sunucu konfigürasyonu
const optimalKurulum = {
  temel: [
    "filesystem",  // Her zaman gerekli
    "context/docs"  // Bir dokümantasyon sunucusu seçin
  ],
  projeOzel: [
    "veritabanı",  // Sadece aktif kullanıyorsanız
    "cloud",  // Sadece cloud projeleri için
    "monitoring"  // Sadece debug sırasında
  ],
  maxEszamanli: 5,  // Pratik bir tavan: yenisini eklemeden önce budayın
  degistirmeStratejisi: "Mevcut göreve göre etkinleştir/devre dışı bırak"
};

Context Penceresi Taşması#

Strateji olmadan context’e dosya eklemek onu seyreltir. Şu sıralama daha iyi çalışıyor:

class ContextStratejisi {
  private maxTokenler = 150000;  // Tampon bırak
  private mevcutTokenler = 0;

  contextEkle(dosya: Dosya): boolean {
    const tahminiTokenler = dosya.icerik.length / 4;

    if (this.mevcutTokenler + tahminiTokenler > this.maxTokenler) {
      this.eskiContextTemizle();
    }

    this.contextOnceliklendir(dosya);
    return true;
  }

  private contextOnceliklendir(dosya: Dosya) {
    // Son > Core > Bağımlılıklar > Dokümantasyon
    const oncelik = this.oncelikHesapla(dosya);
    this.contextler.sort((a, b) => b.oncelik - a.oncelik);
  }
}

Önerilen Yaklaşım#

Az ile Başla, Kademeli Genişle#

Kademeli bir yaklaşım şu sırayı izler:

  1. Sadece Claude Code + filesystem MCP ile başla
  2. Sadece bu araçlarla context yönetiminde ustalaş
  3. Haftada bir yeni MCP sunucusu ekle
  4. Daha fazla eklemeden önce etkiyi ölç

İzlemeyi Erken Kurun#

İzlemeyi geç kurmak maliyetlidir. İlk günden takip edilmesi gereken metrikler:

// İlk günden itibaren izlenecek metrikler
const metrikler = {
  tokenler: {
    gunluk: 0,
    gorevBazinda: {},
    verimlilik: "tamamlanan özellik başına token"
  },
  performans: {
    yanitSuresi: [],
    contextDegisimleri: 0,
    mcpSunucuGecikmesi: {}
  },
  kalite: {
    incelemeBulguları: [],
    guvenlikSorunlari: [],
    uretilenTestler: 0
  }
};

Bu Kurulum Ne Zaman Yeterli#

Bu varsayılan günlük işin çoğunu karşılar; yaklaşık beş eşzamanlı sunucudan sonra araç seçimindeki gürültü, kazanılan erişimden daha pahalıya gelir. İki durum bu varsayılanı geçersiz kılar. Paylaşımlı makinelerde npm prefix’i de kimlik bilgileri de sizin değiştirebileceğiniz şeyler değildir; global kurulum yanlış başlangıç noktasıdır. Salt-okunur modu bulunmayan sistemlerde ise MCP sunucusu, modele daraltamayacağınız bir yazma yetkisi verir. İkisinde de Claude Code’u filesystem sunucusunda bırakın, riskli sistemi hâlihazırda güvendiğiniz CLI üzerinden sürün.

Bu ekosistemde komut sözdizimi ve sunucu adları hızla değişiyor; resmi Claude Code ve MCP dokümantasyonunu doğruluk kaynağı, yukarıdaki konfigürasyonu ise hedeflenecek şekil olarak alın.

Kaynaklar#

İlgili yazılar