1 puan yazan GN⁺ 5 시간 전 | 2 yorum | WhatsApp'ta paylaş
  • 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

 
shakespeares 1 시간 전

Safari MCP demek... İnsana tuhaf bir nostalji yaşatıyor haha

 
GN⁺ 5 시간 전
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

    • Bunlarla Playwright MCP'yi Chrome/Firefox ayarlarıyla kullanmak arasında bir fark olup olmadığını merak ediyorum
    • Bazen de tam tersine, LLM'in tarayıcıyı kontrol etmesi yerine tarayıcıda elle yaptığım işlemlerin LLM tarafından görülmesini istiyorum
      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

    • Hyperia'yı geliştiriyorum; Electron tabanlı web panelini ajan tamamen kontrol edip epey radikal işler yapabiliyor: https://github.com/deepbluedynamics/hyperia
      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
    • “Safari'nin özel bilgilerine, örneğin otomatik doldurma ya da diğer tarayıcı etkinliklerine erişmez” ifadesine bakınca, ajanın etkileşimde bulunduğu instance'ta oturum açılmamış olduğu anlamına geliyor gibi okunuyor
    • “Benimle ajan arasındaki devir teslimin daha pürüzsüz olması” kısmı ürkütücü
      Çü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ı

    • Kalıcı bir tarayıcı oturumu gerekiyorsa spel(https://github.com/Blockether/spel) de var
      Bir daemon üzerinden Chromium, Firefox ve WebKit motorlarını destekliyor
    • Playwright uçtan uca test için harika ve Electron ile de iyi uyum sağlıyor
      Yine de ben Playwright MCP kullanıyorum
    • Bunların hepsi bana ağır geldi
      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?

    • Apple cihazı olmadan Safari'yi nasıl test edersin sorusu, PlayStation olmadan PlayStation oyununu nasıl test edersin sorusuna benziyor
      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
    • Chrome'un baskın olduğu durumda bile Edge vb. farklı tarayıcıları kaçırmak istemediğimiz için Chromium'u test ediyoruz
      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
    • Apple bu yeni aracı daha yeni yayımladığına göre, web geliştiricilerini umursuyor denebilir
    • Linux ya da OS X'te IE'yi test ettiğimiz yöntemle aynı
  • Son zamanlarda ajana Chrome'u çalıştırıp CDP ile doğrudan iletişim kurmasını söylüyorum; gayet iyi çalışıyor

    • O yöntemi de bir denemem gerekecek
      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
    • Evet. Bu yöntem MCP yoluna göre çok daha iyi çalışıyor ve daha hızlı
  • “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

    • 2 yıl önce bunun tam tersi saçmalık muamelesi görüyordu
      Artık AI kullanan insanların bunu saklamak zorunda olmaması güzel
    • Hangi kısmın tuhaf olduğunu anlamadım
      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