- Safari MCP sunucusu, kodlama ajanlarını gerçek bir Safari penceresine bağlayarak web geliştirme ve hata ayıklama sırasında tarayıcıda görünen durumu doğrudan kontrol etmelerini sağlar
- Ajan; DOM, ağ istekleri, ekran görüntüleri ve konsol çıktılarına erişerek yalnızca koddan anlaşılması zor olan render sonuçlarını ve kullanıcı deneyimini kontrol edebilir
- Safari uyumluluğu, performans, erişilebilirlik, form ve ödeme akışı durumlarının doğrulanması gibi tarayıcıya özgü farkların önemli olduğu işlerde, tekrarlanan pencere geçişlerini ve prompt ile açıklama yükünü azaltır
- Sekme kontrolü, URL’ye gitme, JavaScript çalıştırma, ağ isteği inceleme, sayfa içeriği çıkarma, DOM etkileşimi, ekran görüntüsü, viewport ve medya emülasyonu araçları sağlar
- Sunucu yalnızca yerel makinede çalışır ve kendi başına ağ çağrısı yapmaz; ancak yakalanan sayfa verileri kullanıcının çalıştırdığı ajana doğrudan aktarıldığı için güvenilir ajanların kullanılması gerekir
Safari MCP sunucusunun rolü
- Safari Technology Preview 247’ye Safari MCP sunucusu eklendi
- Web geliştiricileri için bir Model Context Protocol sunucusudur ve ajanları Safari tarayıcı penceresine bağlar
- Kodun tarayıcıda gerçekte nasıl render edildiğini ajanın kontrol edebilmesini sağlayarak kod analizi ile tarayıcı durumunu kontrol etme arasındaki boşluğu azaltır
- MCP uyumlu istemciler Safari MCP sunucusuna bağlanabilir
- Bağlanan ajan, kullanıcının tarayıcıda gördüğü durumu daha yakından yeniden üretebilir
- DOM erişimi
- Ağ isteklerine erişim
- Ekran görüntülerine erişim
- Konsol çıktılarına erişim
Hata ayıklama tekrarlarını nasıl azaltır
- Tipik web hata ayıklama süreci; tarayıcıda sorunu görme, konsol ve stiller sekmesini kontrol etme, ardından tekrar koda dönüp düzeltme şeklinde tekrar eder
- Ajan kullansanız bile ekran görüntüsü alıp sorunu anlattıktan sonra düzeltme yetersiz kalırsa tarayıcı, prompt ve ajan arasında tekrar gidip gelmeniz gerekir
- Safari MCP sunucusu, ajanın tarayıcı durumunu doğrudan kontrol etmesini sağlayarak pencere geçişlerini ve ayrıntılı prompt yazma yükünü azaltır
- Kullanıcı durumu kusursuz bir prompt ile açıklamasa bile ajan, Safari’de kontrol edilebilen bilgilere dayanarak sonraki işe devam edebilir
Başlıca kullanım senaryoları
-
Safari’de web geliştirme
- Ajan yalnızca kodu değil, Safari’deki gerçek render sonucunu da kontrol edebilir
-
Safari uyumluluğunu iyileştirme
- Yalnızca tek bir tarayıcıda test yapmak, diğer tarayıcılardaki olası hataları kaçırmaya neden olabilir
- Ajan siteyi Safari’de açıp computed style, layout ve beklenen davranışla farkları kontrol edebilir
-
Performans analizi
- Sayfada JavaScript değerlendirerek navigation timing, resource load time gibi performans metriklerini ortaya çıkarabilir
- Siteyi yavaşlatan bölümleri bulduğunuzda düzeltilecek hedefi daraltmak kolaylaşır
-
Erişilebilirlik kontrolü
- Eksik label, uygunsuz ARIA öznitelikleri, düşük contrast gibi yaygın erişilebilirlik sorunlarını kontrol edebilir
-
Kullanıcı durumunu doğrulama
- Form durumunu kontrol etme, selector ile öğe sorgulama, belirli etkileşimleri doğrulama, ödeme akışındaki çeşitli durumların gösterimini denetleme gibi işlemleri yapabilir
Sağlanan araçlar
browser_console_messages: Geçerli sekmenin veya belirtilen sekmenin tamponlanmış konsol günlüklerini döndürür
browser_dialogs: Tarayıcı dialog listesini sorgular ve yanıtları işler
- accept, dismiss ve JavaScript prompt metin girişini destekler
create_tab, close_tab, switch_tab, list_tabs: Tarayıcı sekmesi oluşturma, kapatma, değiştirme ve listeleme işlemlerini yapar
navigate_to_url: URL’ye gider ve yüklenen sayfa içeriğini döndürür
page_info: Geçerli sayfanın URL’sini, title’ını ve loading state’ini kontrol eder
evaluate_javascript: Sayfa içinde JavaScript kodu çalıştırır ve sonucu döndürür
list_network_requests: Geçerli sekmenin ağ isteklerinin özetini sorgular
- URL, method, status ve timing dahil
get_network_request: Tek bir ağ isteğinin ayrıntılarını sorgular
- headers, body ve timing dahil
get_page_content: Sayfanın metin içeriğini markdown, HTML, JSON gibi çeşitli biçimlerde çıkarır
page_interactions: click, type, scroll, hover, keyPress gibi DOM etkileşimlerini sırayla gerçekleştirir
screenshot: Geçerli sayfayı PNG ekran görüntüsü olarak yakalar
set_emulated_media: Responsive design testi için print gibi CSS media type’larını emüle eder
set_viewport_size: Tarayıcı viewport boyutunu CSS pixel birimiyle ayarlar
wait_for_navigation: Geçerli sayfanın yüklenmesinin tamamlanmasını bekler ve nihai URL ile title’ı döndürür
Başlama yöntemi
- Önce Safari Technology Preview kurulmalıdır
- Kurulumdan sonra Safari ayarlarında şu seçenekler açılmalıdır
- Safari Settings > Advanced > Show features for web developers
- Safari Settings > Developer > Enable remote automation and external agents
- Claude kullanıyorsanız terminalde şu komutu kullanabilirsiniz
claude mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp
- Codex kullanıyorsanız şu komutu kullanabilirsiniz
codex mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp
- Diğer ajanlar
mcp.json veya config.json içine şu ayarı koyabilir
"safari-mcp-stp": {
"command": "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver",
"args": ["--mcp"]
}
- Yukarıdaki örnekte sunucu adı
safari-mcp-stp olarak belirlenmiştir, ancak safari gibi istediğiniz bir adı kullanabilirsiniz
Prompt ve ajan davranışı
- Kurulumdan sonra aşağıdaki gibi basit prompt’larla başlayabilirsiniz
Find bugs on my site in Safari
How accessible is my site in Safari?
See how my website performs in Safari
- Her ajanın çalışma biçimi biraz farklıdır, ancak Safari MCP sunucusunu açıkça kullanmasını söylemeseniz bile kendisi kullanabilir
- Örnek akışta kullanıcı Safari’deki flight page hatasını sorduğunda ajan iki hata bulur ve Safari kullanıcıları için sorun yaratabilecek öğeleri ayrıca kontrol eder
- İlk istekle bile Safari MCP sunucusunun yardımıyla sonraki kontroller ve sorun tespiti sürdürülebilir
Yerel çalıştırma ve veri işleme
- Safari MCP sunucusu tamamen yerel makinede çalışır
- Kendi başına ağ çağrısı yapmaz
- Safari’nin kişisel bilgilerine erişmez
- AutoFill
- Diğer tarayıcı etkinlikleri
- Sayfa içeriği, ekran görüntüleri ve konsol günlükleri yakalandığında bu veriler Apple’a değil, doğrudan kullanıcının çalıştırdığı ajana aktarılır
- Sonrasındaki veri işleme biçimi kullanılan ajana ve modele göre değişir
- Tarayıcı erişim izni verilen diğer ajanlarda olduğu gibi yalnızca güvendiğiniz ajanları kullanmalısınız
WebKit’in beklediği kullanım
- Web geliştirmede yapay zeka kullanılan ve kullanılmayan yöntemlerin ikisi de vardır
- Yapay zeka geliştirme akışının bir parçasıysa Safari MCP sunucusu üretkenliği artırmaya yardımcı olabilir
- Amaç, ajanın Safari tarayıcısındaki ekranı ve davranışı anlamasına yardımcı olarak Safari testlerini ve hata ayıklamayı kolaylaştırmaktır
- Bir sorun varsa WebKit bug report üzerinden issue gönderebilirsiniz
2 yorum
Safari MCP demek... İnsana tuhaf bir nostalji yaşatıyor haha
Hacker News görüşleri
Kasım 2025'ten beri Chrome'un resmi MCP DevTools sunucusunu kullanıyorum
https://github.com/ChromeDevTools/chrome-devtools-mcp
Ondan önce Chrome web driver kullanıyordum, ama MCP daha hızlıydı ve daha fazla özelliğe sahipti
Firefox'ta da çalışıp çalışmadığını kontrol etmek için LLM'den sayfayı Firefox'un resmi MCP'siyle test etmesini istedim
https://github.com/mozilla/firefox-devtools-mcp
Şimdi uyumluluk testlerine Safari'yi de ekleyeceğim
Bu kullanım amacını karşılamak için MCP'yi yaptım
Federico Viticci, MacStories'te, Mastodon'da ve Connected podcast'inin son bölümünde bunun ne anlama geldiğini biraz daha ayrıntılı ele aldı; sıradan kullanıcılar için de daha erişilebilir
Orijinal metindeki bağlantılara da mutlaka bakmak iyi olur
https://www.macstories.net/linked/safaris-new-mcp-server-is-...
https://mastodon.macstories.net/@viticci/116847167023618099
https://relay.fm/connected/610
Yalnızca test için değil, günlük işler için de özellikle heyecan duyuyorum
Ajan, oturum açmış olduğum tarayıcıda benim yerime tarayıcı otomasyonunu doğal şekilde yürütebilirse, benimle ajan arasındaki devir teslim çok daha pürüzsüz hissedilecek gibi
Bunun bir nedeni de Chrome çok pil tükettiği için ana tarayıcı olarak Safari kullanıyor olmam
Bir ajan konteyner orkestratörü de kullanıyorum; konteynerin portlarını açığa çıkaran bir MCP aracı var, böylece işin sonucunu web panelinde gösterebiliyor: https://github.com/DeepBlueDynamics/nemesis8
Bugün n8'e Safari MCP bağlantısını eklemeyi planlıyorum; daha fazla özellik içeren yeni sürüm de bu gece çıkacak
Çünkü tarayıcının diğer ucundaki hizmet açısından kimin ne yaptığını bilmenin bir yolu yok
Ajanı nasıl sınırlandırdığınızı, benim yaptıklarım ile ajanın yaptıklarını nasıl takip ettiğinizi bilmiyorum
Bir şeyi mi kaçırıyorum, yoksa çağın gerisinde mi kaldım merak ediyorum
Kişisel olarak Playwright-CLI'yi öneririm: https://github.com/microsoft/playwright-cli
Denediğim MCP sunucularından çok daha hızlı çalıştı
Bir daemon üzerinden Chromium, Firefox ve WebKit motorlarını destekliyor
Yine de ben Playwright MCP kullanıyorum
Tam tarayıcı, debug protokolü, her okumada DOM dökümü işin içine giriyor; MCP mi CLI mı olduğundan çok altında ne olduğu daha önemli
Bu yüzden sistem webview'ını doğrudan çalıştıran ve DOM yerine durum token'ları ile deltalar döndüren küçük bir Rust binary yaptım
HN ana sayfasını yüklemek bile ajan için yalnızca yaklaşık 50 token'a mal oluyor
Hem MCP'yi hem CLI'yi destekliyor, dolayısıyla ajan tercih ettiği tarafı seçebilir
https://github.com/frane/vibesurfer
Apple'ın sağladığı safaridriver birkaç yıldır vardı
WebDriver W3C kullanıyor ve Safari instance'larıyla etkileşim kurmak için kullanılabiliyor
Apple'ın web geliştiricilerini gerçekten umursayıp umursamadığını bilmiyorum
Apple cihazın yoksa Safari'de nasıl test edeceksin?
Apple'ın içinde yalnızca Safari olan asgari bir sanal makine yapması bu kadar mı zor?
Donanım olmadan donanım firmware'ini nasıl test edersin; emülatör ya da simülatör yokken gerekli donanım olmadan bir programı nasıl çalıştırırsın meselesiyle aynı
Yalnızca belirli bir donanımda çalışıyorsa ve sanallaştırma ya da emülasyon yoksa, o donanımın dışında test edemezsin; bu da bilişimin ilk günlerinden beri onlarca yıldır böyle
Apple'ın kararları çoğu zaman zor-kolay meselesinden çok stratejiyle belirleniyor ve onların duvarlarla çevrili bir bahçe inşa ettiği oldukça açık
Hoşuna gitmiyorsa, geri kalan herkes gibi orada oynamazsın olur biter
Benzer şekilde, mükemmel olmasa da WebKit'i test edebilirsin; istersen Linux ya da Windows'ta da mümkün:
https://orionbrowser.com/platforms/linux
Apple'ın Safari sanal makinesi işine gireceğini sanmıyorum ama macOS sanal makinesi gerekiyorsa bulut hizmet sağlayıcılarına bakabilirsin: https://aws.amazon.com/ec2/instance-types/mac/
Birçok yerde yazılım testi orkestrasyonu önceden bağlanmış durumda
Son zamanlarda ajana Chrome'u çalıştırıp CDP ile doğrudan iletişim kurmasını söylüyorum; gayet iyi çalışıyor
Playwright ile kıyaslayınca nasıl olduğunu merak ediyorum
Web geliştirme açısından bakınca, birden fazla tarayıcıda kullanılabilmesi Playwright'ın avantajı gibi görünüyor
Tarayıcıya özel araçlar daha hızlıysa ya da token açısından daha verimliyse, görev otomasyonu ve Claws için o taraf daha iyi bir seçenek olabilir
“Web oluşturmanın AI kullansanız da kullanmasanız da birçok yolu var. AI iş akışınızın bir parçasıysa, bu aracın üretkenliğinizi artırmaya yardımcı olacağını düşünüyoruz. Değilse, bu da sorun değil.”
2026'da böyle bir şey söylemek tuhaf
Çünkü kodu doğrudan kendin yazıp her şeyi bir ajana devretmezsen bazı insanlar tarafından acemi muamelesi gördüğün bir dönemdeyiz
Artık AI kullanan insanların bunu saklamak zorunda olmaması güzel
Fanatik AI karşıtı kesimi yatıştırmak için böyle bir sorumluluk reddi cümlesi koymak zorunda kalmaları mı tuhaf?
Bu açıkça AI destekli geliştirme için bir araç; “AI kullanmayanlara da geçmiş olsun” gibi bir cümle eklemek zorunda kalmaları asıl çok tuhaf
Ama muhtemelen senin düşündüğün yönden farklı bir tuhaflık
Tarayıcı otomasyonu için MCP'nin ilginç olmasının nedeni, Safari'nin WebKit motorunun çoğu AI ajanının kolayca başa çıkamadığı taraf olması
Playwright ve Puppeteer Chromium merkezli olduğu için, Safari için bir MCP sunucusu ajan iş akışlarındaki çapraz tarayıcı testlerinde gerçek bir boşluğu doldurabilir