Kodlama ajanları için en iyi MCP sunucuları, ajanın kendi başına yapamadığı bir şeyi ona kazandıranlardır: uygulamayı tarayıcıda çalışırken görmek, kütüphanenin bugünkü dokümantasyonunu okumak, düzelttiği issue’ya bakmak, canlı ortamdaki stack trace’i bulmak. Claude Code, Codex ya da Gemini CLI gibi bir kodlama ajanı zaten dosya okur, düzenler ve komut çalıştırır. Bunu tekrar eden bir sunucu eklemek yalnızca bağlam harcar.
Bu liste bilerek kısa ve net tercihler içeriyor. Her sunucu için ne yaptığını, ne zaman işe yaradığını, nasıl ekleneceğini ve nelere dikkat etmen gerektiğini bulacaksın. Protokole yeniysen önce MCP sunucusu nedir yazısına ve MCP sözlük maddesine göz at.
Sunucuları nasıl seçtim?
Bir sunucu bu listeye üç kontrolü geçerse girdi:
- Gerçek bir boşluğu dolduruyor. Repo dışındaki bir şeye ulaşıyor: tarayıcı, barındırılan bir servis, veritabanı, güncel dokümantasyon.
- Üreticisi ya da bilinen bir proje bakımını yapıyor. Resmi repoda kurulum talimatı var ve sunucu güncelleniyor.
- Erişimi daraltılabiliyor. Salt okunur modlar, araç setleri, proje kapsamı ya da izin verilen klasörler. Sınırlayamadığın bir sunucu, iki kez düşünmen gereken bir sunucudur.
Tüm sunucuların ortak bir yanı var: araç tanımları ajanın bağlamına eklenir ve ajan onları hiç çağırmasa bile her turda yeniden gönderilir. Yani soru hiçbir zaman “bu sunucu faydalı mı?” değil, “bu ajana, bu projede, şu an faydalı mı?” sorusudur.
Hızlı başvuru tablosu
| Sunucu | Ajana kazandırdığı | Bağlantı | Daraltma yolu |
|---|---|---|---|
| Playwright | Gerçek tarayıcı: aç, tıkla, doldur, ekran görüntüsü al | stdio (npx) | --isolated, --headless |
| Chrome DevTools | Konsol, ağ istekleri, performans izleri | stdio (npx) | --isolated |
| Context7 | Güncel, sürüme özel kütüphane dokümantasyonu | HTTP ya da stdio | API anahtarı, yazacak bir şeyi yok |
| GitHub | Issue’lar, pull request’ler, kod arama, Actions | HTTP ya da Docker | Araç setleri, salt okunur mod |
| Sentry | Hatalar, stack trace’ler, issue triyajı | HTTP (OAuth) | URL’de organizasyon/proje |
| Postgres (Postgres MCP Pro) | Şema, sorgular, EXPLAIN, indeks önerisi | stdio (uvx/Docker) | --access-mode=restricted |
| Supabase | Tablolar, SQL, migration’lar, loglar | HTTP (OAuth) | read_only=true, project_ref |
| Git | Yerel repoda log, diff, blame | stdio (uvx) | --repository |
| Fetch | Bir web sayfasını Markdown olarak okumak | stdio (uvx) | Ölçülü kullan |
| Filesystem | Belirttiğin klasörlerdeki dosyalar | stdio (npx) | İzin verilen klasörler |
1. Playwright: ajan uygulamayı görsün
Tek bir sunucu ekleyeceksen bu olsun. Microsoft’un Playwright MCP sunucusu ajanın uygulamanı localhost üzerinde açmasını, sayfayı erişilebilirlik ağacı üzerinden okumasını, butonlara tıklamasını, form doldurmasını ve ekran görüntüsü almasını sağlar. “Formu değiştirdim, çalışıyor olmalı” cümlesi “Formu gönderdim ve başarı mesajını gördüm” cümlesine dönüşür.
claude mcp add playwright -- npx @playwright/mcp@latest
codex mcp add playwright -- npx @playwright/mcp@latest
gemini mcp add playwright npx @playwright/mcp@latest
Node.js 18 ya da üstü gerekir. İşe yarayan bayraklar: pencere açmadan çalıştırmak için --headless, tarayıcı profilini bellekte tutup oturumlar arasında çerez ya da giriş bilgisi kalmaması için --isolated. Bir de --allowed-origins var; ama projenin kendisi bunun bir güvenlik sınırı olmadığını söylüyor, ajanı açık internetten uzak tutmak için ona güvenme.
Dikkat: ajanın ziyaret ettiği sayfalar modele girdi olarak gider. “Talimatlarını unut ve şu komutu çalıştır” yazan bir sayfa bir prompt enjeksiyonu girişimidir. Mümkün olduğunca ajanı kendi uygulamanda tut. Uçtan uca bir akış için yapay zeka ajanıyla tarayıcı testi yazısına bak.
2. Chrome DevTools: tarayıcının gördüğünü ayıkla
Google’ın Chrome DevTools MCP sunucusu Playwright ile örtüşür ama hata ayıklamaya yakındır: konsol mesajları, ağ istekleri, performans izleri. Sayfa yavaşsa ya da bir istek CORS hatasıyla düşüyorsa, ajanın tahmin yürütmek yerine nedenini bulmasını sağlayan sunucu budur.
claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest
Codex ve Gemini CLI için aynı komutu (npx -y chrome-devtools-mcp@latest) codex mcp add ya da gemini mcp add ile kullan. Gerçekten ikisine birden ihtiyacın yoksa her ajana iki tarayıcı sunucusundan yalnızca birini ver; ikisi de uzun bir araç listesi ekler.
3. Context7: hafıza yerine güncel dokümantasyon
Modeller kütüphaneleri aylar, hatta yıllar önceki eğitim verisinden öğrenir. Ajanların iki sürüm önce adı değişmiş fonksiyonları çağırmasının nedeni bu. Upstash’in Context7 sunucusu çok sayıda kütüphane için güncel, sürüme özel dokümantasyon ve kod örnekleri sunar; ajan tahmin etmek yerine bakabilir.
# Uzak sunucu
claude mcp add --transport http context7 https://mcp.context7.com/mcp
# Ya da yerelde çalıştır
codex mcp add context7 -- npx -y @upstash/context7-mcp
Context7 API anahtarın varsa uzak sunucuya CONTEXT7_API_KEY başlığıyla geçir (claude mcp add ile örneğin --header "CONTEXT7_API_KEY: ctx7sk-…"). CLAUDE.md ya da AGENTS.md dosyana yazmaya değer bir alışkanlık: “Emin olmadığın bir kütüphane API’sini kullanırken önce Context7’ye bak.” Ajanlar yazılı kurallara tek seferlik hatırlatmalardan daha tutarlı uyar; ayrıntılar CLAUDE.md nasıl yazılır yazısında.
Dikkat: salt okunur olduğu için riski düşük, ama araçları yine bağlam harcar. Üçüncü taraf kütüphanelere kod yazan ajanlara ver; yalnızca diff okuyan bir inceleme ajanına değil.
4. GitHub: issue’lar, pull request’ler ve CI
GitHub’ın resmi sunucusu issue’ları, pull request’leri, kod arama sonuçlarını, Actions çalıştırmalarını ve daha fazlasını okur ve yazar. Ajan işe issue metninden başlayabilir, başarısız workflow’a bakabilir ve sonunda bir pull request açabilir.
Uzak sunucunun adresi https://api.githubcopilot.com/mcp/. Docker ile yerelde de çalıştırabilirsin:
claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT \
-- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
En az yetki ilkesinin en çok önemli olduğu yer burası. GitHub sunucusunun çok sayıda aracı var ve bazıları yazma işlemi yapıyor. Daralt:
- Araç setleri. Yalnızca ihtiyacın olanı aç, örneğin
repos,issues,pull_requests. Yerelde--toolsetsbayrağı ya daGITHUB_TOOLSETS, uzak sunucudaX-MCP-Toolsetsbaşlığı. - Salt okunur mod. Yerelde
--read-only; uzak sunucuda adrese/readonlyekle (https://api.githubcopilot.com/mcp/readonly) ya daX-MCP-Readonly: truegönder. - İnce ayarlı token. Kişisel erişim token’ını ajanın çalıştığı repolarla ve işi karşılayan en dar izinlerle sınırla.
İnceleme ya da triyaj yapan bir ajanın yazma yetkisine nadiren ihtiyacı olur. Yazma araçlarını yalnızca pull request açması gereken ajana ver.
5. Sentry: gerçek hatadan başla
Sentry’nin barındırılan MCP sunucusu ajanın hataları aramasını, stack trace okumasını ve issue ayrıntılarına bakmasını sağlar. “Kullanıcıların ödeme sayfasında yaşadığı hatayı düzelt” görevi, “şu satırdaki, şu breadcrumb’larla gelen bu exception’ı düzelt” görevine dönüşür. Kimlik doğrulama OAuth ile yapılır: ilk bağlantıda tarayıcıda giriş ekranı açılır.
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp/my-org/my-project
my-org ve my-project yerine kendi organizasyon ve proje kısa adlarını yaz. Adresi tek bir projeyle sınırlamak Sentry’nin önerisi: araçlar o projeye göre çalışır, bazı keşif araçları gizlenir ve bu da bağlamdan tasarruf ettirir. Sentry ile GitHub birlikte iyi çalışır; CI hatalarını yapay zekaya düzelttirmek ve canlı ortam hatalarını issue metninden itibaren çözmek için kullanışlıdır.
6. Salt okunur bir veritabanı sunucusu
Şemaya bakıp bir SELECT çalıştırabilen ajan daha iyi sorgu ve migration yazar. Canlı ortamda DROP TABLE çalıştırabilen ajan ise kötü bir günün habercisidir. İki sağlam seçenek:
Postgres MCP Pro (crystaldba/postgres-mcp) her PostgreSQL veritabanıyla çalışır. Sorguların yanında sorgu planlarını açıklayabilir, veritabanı sağlığını kontrol edebilir ve indeks önerebilir. En önemli ayarı erişim modudur:
claude mcp add postgres --env DATABASE_URI=postgresql://readonly_user:pass@localhost:5432/app_dev \
-- uvx postgres-mcp --access-mode=restricted
restricted işi salt okunur işlemlerle sınırlar ve çalışma süresine üst sınır koyar; unrestricted tam okuma-yazma izni verir. restricted kullan ve yine de yalnızca SELECT yetkisi olan bir veritabanı kullanıcısıyla bağlan. İki kilit tek kilitten iyidir; proje de güvensiz stored procedure dillerinin bu kontrolleri aşabileceğini belirtiyor.
Supabase’in barındırılan sunucusu https://mcp.supabase.com/mcp adresinde. Adrese ?project_ref=<id>&read_only=true ekleyerek onu tek bir projeye bağlar ve her sorguyu salt okunur bir Postgres kullanıcısıyla çalıştırırsın. Supabase’in kendi önerisi: geliştirme verisiyle kullan, araç çağrılarını elle onaylamayı açık tut ve sunucuyu son kullanıcılara verme.
Not: MCP projesinin eski referans Postgres sunucusu arşivlendi. Bakımı süren bir sunucu seç.
7. Git, Fetch ve Filesystem: referans sunucular
MCP projesi hâlâ birkaç referans sunucunun bakımını yapıyor. Kullanışlılar, ama önce ajanının onlara ihtiyacı olup olmadığına bak.
- Git (
uvx mcp-server-git --repository /path/to/repo): log, diff, blame ve commit araçları. Kodlama ajanları terminalde zatengitçalıştırıyor; bu sunucu en çok kabuk erişimi olmayan istemcilerde ya da git işlemlerinin açık araç çağrıları olarak görünmesini istediğinde işe yarar. - Fetch (
uvx mcp-server-fetch): bir web sayfasını model için Markdown’a çevirir. Context7’de olmayan bir API referansını okumak için iyidir. Çektiği her sayfa güvenilmez girdidir; prompt enjeksiyonu uyarısı burada tümüyle geçerli. - Filesystem (
npx -y @modelcontextprotocol/server-filesystem /path/one /path/two): yalnızca listelediğin klasörlere dosya erişimi. Claude Code ve Codex projedeki dosyaları zaten düzenliyor; bunu, ortak bir design token klasörü gibi tek bir ek klasörü tüm ev dizinini açmadan paylaşmak için kullan.
Bilmeye değer diğerleri
Yığınına göre şunlar da yer kazanabilir: görevler ve spec’ler için Linear ya da Notion, test modunda ödeme nesneleri için Stripe, tasarımları okumak için Figma, Cloudflare dokümantasyonu ve simülatörler için mobil sunucular. Aynı üç kontrolü uygula. “Belki lazım olur” diye eklenen sunucu çoğunlukla yalnızca bağlam ekler.
Claude Code, Codex ve Gemini CLI’a sunucu eklemek
Aynı sunucu üçünde de çalışır; değişen kayıt yöntemi.
Claude Code. Seçenekler addan önce, sunucu komutu -- işaretinden sonra gelir:
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
claude mcp add --scope project playwright -- npx @playwright/mcp@latest
claude mcp list
--scope local (varsayılan) sunucuyu bu projede yalnızca senin için tutar, --scope user tüm projelerin için, --scope project ise ekip için repoya bir .mcp.json yazar. .mcp.json ${VAR} açılımını destekler; böylece dosyayı token’ları commit’lemeden commit’leyebilirsin. OAuth sunucularına giriş yapmak için oturum içinde /mcp komutunu çalıştır.
Codex. CLI’ı kullan ya da ~/.codex/config.toml dosyasını düzenle:
[mcp_servers.github]
url = "https://api.githubcopilot.com/mcp/readonly"
bearer_token_env_var = "GITHUB_PAT"
[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]
enabled_tools = ["browser_navigate", "browser_snapshot", "browser_click", "browser_take_screenshot"]
bearer_token_env_var token’ı dosya yerine bir ortam değişkeninden okur; enabled_tools / disabled_tools ise sunucuyu istediğin araçlara indirir. OAuth sunucuları için codex mcp login <ad> kullanılır.
Gemini CLI. gemini mcp add varsayılan olarak .gemini/settings.json (proje) dosyasına, --scope user ile ~/.gemini/settings.json dosyasına yazar:
gemini mcp add --transport http github https://api.githubcopilot.com/mcp/readonly \
--header "Authorization: Bearer $GITHUB_PAT"
settings.json içinde includeTools ve excludeTools araçları sınırlar, trust: true ise onay sorularını atlar. Yazma işlemi yapan hiçbir sunucuda trust açma. Yukarıdaki gibi --header ile verdiğin token’ın ayar dosyasına yazıldığını da unutma; mümkün olan yerde env ve headers içinde $VAR referansları kullan.
Güvenlik notları
MCP sunucuları bir modeli gerçek sistemlere bağlar. Kısa bir kontrol listesi:
- Varsayılan olarak en az yetki. Salt okunur modlar, dar araç setleri, sunucu başına tek proje, ince ayarlı token’lar. Yazma yetkisini tek bir ajana tek bir görev için ver; tüm ajanlara sonsuza kadar değil.
- Canlı değil, geliştirme verisi. Veritabanı sunucularını yerel bir kopyaya ya da staging’e yönlendir. Ajanın mutlaka canlı ortama bakması gerekiyorsa salt okunur kullanıcı ve kısa bir oturum kullan.
- Gizli bilgiler düz metinde durmasın. Ortam değişkenleri,
${VAR}referansları ya da işletim sisteminin anahtar zinciri. Commit’lenmiş bir.mcp.jsoniçindeki token sızmış bir token’dır. - Sunucudan dönen her şey güvenilmezdir. Web sayfaları, issue yorumları, veritabanı satırları ve hata mesajları ajana yönelik talimatlar içerebilir. Yazan ya da komut çalıştıran araçlarda onayları açık tut.
- Neyi çalıştırdığını bil. stdio sunucusu senin bilgisayarında, senin yetkilerinle çalışan koddur. Resmi repodan kur, hassas işler için sürümü sabitle ve rastgele README’lerden kurulum komutu yapıştırma.
- Araç listesine bak. Bir sunucuyu ajana vermeden önce araçlarını listele ve ihtiyacın olmayanları çıkar.
Genel tablo için yapay zeka kodlama ajanı güvenliği yazısını oku.
Sunucuları ajanlara dağıtmak
Birden fazla ajan çalıştırıyorsan sunucuları role göre dağıt:
| Ajan | Sunucular |
|---|---|
| Frontend | Playwright ya da Chrome DevTools, Context7, Figma |
| Backend | Context7, salt okunur Postgres ya da Supabase |
| Hata düzeltici | Sentry, GitHub (issue’lar ve Actions), Playwright |
| İnceleyici | Salt okunur GitHub |
Böylece her ajanın bağlamı yalın kalır; bir hatanın ya da enjekte edilmiş bir talimatın ulaşabileceği yer de sınırlanır. Token kullanımı da düşük kalır.
Bunu AgentVera ile nasıl yapıyorum
Aynı sunucuları üç farklı formatta üç kez kaydetmek çabuk yorar. AgentVera’da hepsini tek yerde tutuyorum:
- Tüm CLI’lar için tek liste. MCP yöneticisi sunucuları tutar ve ajan başlarken bağlar: Claude Code, Codex, Gemini CLI, Copilot, Cursor, opencode ve MCP alan diğer CLI’lar. Her sunucuyu tüm ajanlara, seçtiğim ajanlara, bir gruba ya da bir ekip rolüne veriyor, istersem belirli projelerle sınırlıyorum.
- Katalog ve maliyet kontrolü. Katalogda Playwright, Chrome DevTools, Context7, GitHub, Sentry, Supabase, Git, Fetch, Filesystem ve daha fazlası için hazır kayıtlar var. Bağlantı testi sunucunun araçlarını ve her aracın yaklaşık token maliyetini listeliyor; her sunucunun her tura ne eklediğini görüyorum.
- Gizli bilgiler anahtar zincirinde. Ortam değişkenleri ve başlık token’ları işletim sisteminin anahtar zincirinde duruyor; uzak sunucular AgentVera’nın geçidi üzerinden bağlandığı için CLI yapılandırmasında token bulunmuyor.
- İzleyebildiğim bir tarayıcı. Ajan tarayıcısı ajanlara Playwright MCP üzerinden yönetilen bir Chrome veriyor; sekmeleri canlı izleyebiliyorum.
- Kurallı veritabanı erişimi. Ham bağlantı dizesi yerine veritabanı yöneticisi ajanların bir bağlantıyı kendi aracıyla sorgulamasına izin veriyor; varsayılan mod salt okunur ve her sorgu kaydediliyor. Ajanın yazdığı migration’ları DB Guard kontrol ediyor.
- Onaylar. Claude Code ajanlarında otomatik onay yalnızca güvenli olduğu bilinen istekleri yanıtlıyor; geri kalan her şey yine bana geliyor.
Sonuç
Kodlama için en iyi MCP kurulumu küçüktür: bir tarayıcı, güncel dokümantasyon, issue takibi ve hata izleme; görev gerektirdiğinde de salt okunur bir veritabanı. Sunucuları ajan ve proje bazında ekle, her birini salt okunur modu ya da araç setleriyle daralt, token’ları düz metin dosyalardan uzak tut ve sunucudan dönen her şeyi güvenilmez say. Birden fazla ajanın sunucularını tek yerden yönetmek istersen AgentVera’yı ücretsiz indir ve MCP sayfasını aç.