WebMCP, bir web sitesinin yapabildiği işleri (ürün aramak, sipariş sorgulamak, form göndermek) tarayıcıdaki yapay zeka ajanlarına adı, açıklaması ve girdi şeması belli JavaScript araçları olarak sunan bir web API önerisidir. Ajan butonları ve ekran görüntülerini tahmin ederek gezinmek yerine, sitenin kendi tanımladığı aracı doğrudan çağırır.
Önerinin en çok tartışılan iddiası hız. Bağımsız bir karşılaştırmada aynı model, aynı görevi WebMCP ile ekranı tıklayarak yaptığından beş kata kadar daha kısa sürede bitirdi (webmcp.com benchmark). Chris Coyier bu yüzden konuyu “ajan dönemi için web performansı” diye özetliyor (Master.dev). Aşağıda WebMCP’nin ne olduğunu, bugün hangi tarayıcıda çalıştığını ve bir siteye adım adım nasıl eklendiğini bulacaksınız.
WebMCP nedir ve neden “ajanlar için web performansı” deniyor?
Bugün bir AI ajanı sizin adınıza bir siteyi kullanırken çoğunlukla insan gibi davranıyor: sayfanın ekran görüntüsünü alıyor ya da DOM’u okuyor, hangi butona basacağını tahmin ediyor, tıklıyor, sonucu bekliyor. Her adım zaman ve token harcıyor. WebMCP bu tahmin katmanını kaldırıyor: site “stok_sorgula diye bir aracım var, şu parametreyi alır” diyor, ajan da onu çağırıyor.
Shopify’da bu standart üzerinde çalışan Yoav Weiss, WebMCP’yi tam olarak bu yüzden bir performans meselesi olarak görüyor: ajan siteyi her seferinde baştan çözmeye çalışmadığı için etkileşim “daha hızlı, daha iyi ve daha ucuz” oluyor (Yoav Weiss). nekuda’nın 8 site ve 49 görevle yürüttüğü karşılaştırmanın 18 Eylül 2026 tarihli v1.2 sürümünden, aynı modelin iki farklı arayüzle görev başına medyan süresi:
Maliyet farkı daha da büyük. Aynı tabloda Claude Opus 5’in görev başına medyan maliyeti ekranı tıklayarak 0,1389 dolar, WebMCP ile 0,0140 dolar; benchmark sayfası WebMCP’nin diğer yöntemlerin medyanına göre görev başına 3 ila 47 kat daha ucuz olduğunu söylüyor. Shopify’ın kendi ödeme (checkout) denemesinde WebMCP 2,7 kat daha hızlı ve yüzde 58 daha ucuz çıktı; 60 denemenin 60’ı başarılı oldu, tarayıcı otomasyonunda bu sayı 56’da kaldı (Yoav Weiss’in aktarımı).
Bir uyarı: Benchmark, WebMCP’yi destekleyen bir şirketin (nekuda) sitesinde yayımlanıyor ve sayfanın yapısal verisinde test sitelerinin “kendi sunucularında barındırılan açık kaynak uygulamalar” olduğu yazıyor. Rakamları yön gösterici okuyun, sizin sitenizin sonucu değil.
Bir AI ajanı bir siteyle hangi yollarla konuşur?
Weiss ajan-site etkileşimini üç modele ayırıyor. WebMCP yalnızca üçüncüsünü, yani kullanıcının sitede ajanla birlikte gezindiği durumu hedefliyor. Weiss’e göre bu model önemli, çünkü kullanıcının her an kontrolü geri alabildiği tek yol bu (Yoav Weiss).
WebMCP’de iki API var: bildirimsel ve buyurgan
Taslak spesifikasyon, sayfaya document.modelContext adında bir nesne ekliyor; araçlar bunun üzerinden kaydediliyor (WebMCP taslağı). Chrome bunu iki biçimde sunuyor: mevcut HTML formlarına birkaç öznitelik ekleyerek (bildirimsel, declarative) ya da JavaScript’le (buyurgan, imperative).
| Bildirimsel (HTML formu) | Buyurgan (JavaScript) | |
|---|---|---|
| Nasıl tanımlanır | <form> etiketine toolname ve tooldescription | document.modelContext.registerTool({...}) |
| Ne için uygun | Tek adımlık işler: arama, sorgu, iletişim formu | Çok adımlı işler, ajana veri döndürmek, sayfa durumunu değiştirmek |
| Kod gereği | Yok, yalnızca HTML öznitelikleri | JSON Schema ve execute fonksiyonu |
| ChatGPT masaüstü desteği | Yok | Var (yalnızca üst düzey sayfa) |
Weiss, bildirimsel API’nin tek seferlik işler için yeterli olduğunu ama ajana bağlam döndüren ya da birkaç adım süren işlerde buyurgan araçların şart olduğunu savunuyor (Yoav Weiss).
WebMCP siteye nasıl eklenir? (adım adım)
Aşağıdaki adımlar Chrome’un resmi dokümanlarına (Chrome for Developers) ve taslak spesifikasyona dayanıyor. Kod örnekleri bu yazı için hazırlandı, öznitelik ve metot adları kaynaklarla birebir aynı.
1. Chrome’da test bayrağını açın
Adres çubuğuna chrome://flags/#enable-webmcp-testing yazın, bayrağı Enabled yapın ve Chrome’u yeniden başlatın. Bu yalnızca sizin tarayıcınızda çalışır; ziyaretçileriniz için 5. adımdaki origin trial gerekir.
2. Kodsuz başlangıç: bir formu araca çevirin
Mevcut bir forma iki öznitelik eklemek yeterli. toolparamdescription alanın ne beklediğini anlatır; verilmezse tarayıcı alanın <label> metnini, o da yoksa aria-description değerini kullanır. toolname ya da tooldescription silinirse araç kaydı da kalkar (Declarative API).
<form action="/siparis" toolname="siparis_sorgula"
tooldescription="Sipariş numarasıyla kargo durumunu gösterir">
<label for="no">Sipariş numarası</label>
<input id="no" name="siparis_no" required
toolparamdescription="8 haneli sipariş numarası">
<button>Sorgula</button>
</form>
Forma toolautosubmit eklerseniz ajan aracı çağırdığında form kendiliğinden gönderilir. Eklemezseniz ajan formu doldurur, gönderme kararı kullanıcıda kalır; para veya kişisel veri içeren formlarda ikincisi daha güvenli.
3. JavaScript ile araç kaydedin
Buyurgan API’de her aracın zorunlu üç alanı var: name, description ve execute. Girdiler inputSchema içinde JSON Schema ile tanımlanır (WebMCP taslağı). Tarayıcı desteğini kontrol etmeden kayıt yapmayın:
if ('modelContext' in document) {
await document.modelContext.registerTool({
name: 'stok_sorgula',
description: 'Ürün koduna göre stok adedini döndürür',
inputSchema: {
type: 'object',
properties: {
kod: { type: 'string', description: 'Ürün kodu, ör. TS-104' }
},
required: ['kod']
},
annotations: { readOnlyHint: true },
execute: async ({ kod }) => {
const yanit = await fetch(`/api/stok/${encodeURIComponent(kod)}`);
return await yanit.text();
}
});
}
Aracı sonradan kaldırmak için ayrı bir metot yok: registerTool‘a ikinci parametre olarak { signal: controller.signal } verip controller.abort() çağırıyorsunuz.
Eski blog yazılarında navigator.modelContext geçiyorsa dikkat: güncel taslakta nesne document.modelContext üzerinde. Cloudflare da 28 Eylül 2026’da test ortamında eski navigator.modelContextTesting arayüzünü kaldırdığını duyurdu (Cloudflare changelog).
4. Riskli işleri işaretleyin
Satın alma, silme, rezervasyon gibi geri alınamayan işlerde annotations içine consequentialHint: true ekleyin. Chrome’un uçuş rezervasyonu örneği tam olarak bunu yapıyor (Imperative API). Bu ipuçlarının ne işe yaradığı güvenlik bölümünde.
5. DevTools’ta test edin, sonra origin trial’a kaydolun
DevTools’u açın, Application sekmesinde kenar çubuğundan WebMCP‘yi seçin. Available Tools listesi ajanın gördüğü araçları ad ve açıklamasıyla gösterir. Bir araca tıklayıp parametre girerek Run tool ile ajan olmadan çalıştırabilirsiniz; Invoked tools günlüğü her çağrının girdisini, çıktısını ve hatasını tutar (DevTools: WebMCP).


Ziyaretçilerinizin Chrome’unda da çalışması için origin trial’a kaydolup aldığınız token’ı sayfaya eklemeniz gerekiyor. Chrome Status’a göre deneme Chrome 149’da başladı ve Chrome 156’ya kadar sürüyor (Chrome Status).
Kod yazmadan: Cloudflare’deki anahtar
Siteniz Cloudflare arkasındaysa tek bir anahtarla WebMCP köprüsü ekleyebilirsiniz. Cloudflare 6 Ağustos 2026’da duyurduğu geliştirici önizlemesinde her HTML yanıtına /.webmcp/bridge.js adlı küçük bir betik ekliyor. Betik, tarayıcıda document.modelContext yoksa hiçbir şey yapmıyor (Cloudflare blog). Önizlemede iki hazır paket var: sayfadaki görsellerin C2PA içerik kimlik bilgilerini okuyan Content Credentials ve sitenizin mevcut MCP sunucusundaki araçları tarayıcıdaki ajana aktaran Site MCP server. Kendi iş akışınıza özel araçlar için yine 2. ve 3. adımlar gerekiyor.

WebMCP bugün hangi tarayıcıda ve hangi ajanda çalışıyor?
Kısaca: Chrome’da deneme aşamasında, Safari karşı, Firefox sessiz. Spesifikasyon bir W3C standardı değil; Web Machine Learning Topluluk Grubu’nun 15 Ekim 2026 tarihli taslak raporu. Editörleri Microsoft’tan Brandon Walderman ile Google’dan Khushal Sagar ve Dominic Farolino (WebMCP taslağı).
Chrome: Chrome 146’dan beri bayrakla geliştirici denemesinde, Chrome 149–156 arasında origin trial’da (Chrome Status).
ChatGPT masaüstü uygulaması: Yerleşik tarayıcısında “Site tools” adıyla destekliyor; yalnızca GPT-5.6 Sol ve GPT-6 Sol modelleriyle, yalnızca JavaScript ile kaydedilmiş ve iframe içinde olmayan araçlar için. Ayarlar > Browser > Permissions altından kapatılabiliyor (OpenAI).
Cloudflare: Panelden açılan köprünün yanı sıra Browser Run ürünündeki Kitesurf ve Lab oturumlarında da çalışıyor (Cloudflare changelog).
Shopify: Mağaza vitrinleri için WebMCP araçları üretimde (Shopify changelog).
Safari (WebKit): 11 Haziran 2026’da resmi olarak “karşı” pozisyonu aldı (WebKit standards-positions).
Firefox: Chrome Status’ta henüz bir sinyal yok (Chrome Status).
WebKit’in itirazının merkezinde mimari bir tercih var. Ajanlara ayrı bir araç katmanı açmak yerine eksiklerin HTML ve ARIA’da kapatılmasını istiyor; böylece ekran okuyucu kullanıcıları da kazanır. Ayrıca belirsiz araç açıklamalarının kırılganlığı DOM’dan açıklamalara taşıyacağını, geri alınamaz işler için bir onay modelinin olmadığını ve spesifikasyonun MCP protokolünü gerçekte kullanmadığını söylüyor (WebKit). Weiss ise semantik HTML’in tek adımlık işlerde yettiğini, çok adımlı işlerde yetmediğini savunuyor (Yoav Weiss).
Güvenlik: araç açıklaması da bir saldırı yüzeyi
Spesifikasyonun güvenlik bölümü en büyük riski açıkça yazıyor: prompt injection. Kötü niyetli bir site, araç açıklamasının içine ajanı başka bir siteye yönlendiren talimatlar gizleyebilir. Sizin aracınız ise forum gönderisi ya da yorum gibi kullanıcı içeriği döndürüyorsa, o içeriğin içindeki gizli komutlar ajana ulaşabilir (WebMCP taslağı, Güvenlik ve Gizlilik). Taslak bu yüzden araçlara dört ipucu (annotation) tanımlıyor; hepsinin varsayılanı false:
ToolAnnotations alanları. Ajanın bunlara nasıl uyacağı ajan uygulamasına bağlı; ChatGPT her araç çağrısını çalıştırmadan önce güvenlik incelemesinden geçirdiğini söylüyor. Kaynaklar: WebMCP taslağı, OpenAITaslağın verdiği bir başka örnek gizlilikle ilgili: “elbise ara” aracına beden ve fiyatın yanında yaş, hamilelik, konum, ten rengi gibi gereksiz alanlar eklemek. Ajan bu bilgileri kullanıcının tarayıcı bağlamından doldurabileceği için araç, ihtiyacından fazla veri toplayan bir kanala dönüşüyor (WebMCP taslağı). Kural basit: aracın şemasına işi yapmak için gereken alandan fazlasını koymayın.
Site sahibi ve tasarımcı için bugün ne anlama geliyor?
- Acele yok, deneme zamanı: Standart taslak, Safari karşı. Canlı sitede tek kaynak olarak WebMCP’ye güvenmeyin; mevcut arayüz her zaman çalışmaya devam etmeli.
- En ucuz adım formlar: Arama ve sorgu formlarına
toolnameiletooldescriptioneklemek birkaç satır HTML; desteklemeyen tarayıcılar bu öznitelikleri görmezden gelir. - Araç açıklaması yeni bir mikro metin: Ajan aracı adına ve açıklamasına bakarak seçiyor. Buton etiketine gösterdiğiniz özeni araç açıklamalarına da gösterin; belirsiz bir “finalizeCart” spesifikasyonun kendi kötü örneği.
- Erişilebilirliği bırakmayın: WebKit’in itirazı haklı bir noktaya dokunuyor: semantik HTML ve ARIA hem ekran okuyuculara hem ajanlara yarar. WebMCP bunun yerine değil, üstüne eklenmeli.
Ajanların sitenizi nasıl kullandığıyla ilgili daha önce yazdıklarımız: OpenAI dots: 7/24 çalışan ChatGPT ajanı, OpenAI Agents API nedir?, Webflow’un MCP güncellemesi ve WordPress.com’u kod editöründen MCP ile yönetmek.
Sık sorulan sorular
WebMCP ile MCP aynı şey mi?
Hayır. İkisi de ajanlara “araç” sunma fikrini paylaşıyor ama MCP genellikle ayrı bir sunucuda çalışır, WebMCP ise açık sayfanın içinde, tarayıcının document.modelContext nesnesi üzerinden çalışır. WebKit, spesifikasyonun MCP protokolünü zorunlu kılmadığını da ayrıca eleştiriyor (WebKit).
WebMCP hangi tarayıcılarda çalışıyor?
Şu an yalnızca Chrome’da: geliştiriciler chrome://flags/#enable-webmcp-testing bayrağıyla, ziyaretçiler ise Chrome 149–156 arasındaki origin trial’a kayıtlı sitelerde kullanabiliyor. Safari’nin motoru WebKit karşı pozisyonda, Firefox’tan henüz sinyal yok (Chrome Status).
WebMCP eklemek için siteyi yeniden yazmak gerekir mi?
Gerekmiyor. Bildirimsel API ile mevcut bir <form> etiketine toolname ve tooldescription eklemek yeterli. Cloudflare kullanıyorsanız panelden açılan bir anahtarla kodsuz bir köprü de ekleyebilirsiniz.
WebMCP güvenli mi?
Taslak, prompt injection ve gereğinden fazla veri isteyen araçları ana riskler olarak sayıyor. Geri alınamaz işlemlerde consequentialHint, kullanıcı içeriği döndüren araçlarda untrustedContentHint kullanın ve şemaya yalnızca gerekli alanları koyun.
WebMCP araçlarımı nasıl test ederim?
Chrome DevTools’ta Application > WebMCP bölmesini açın. Available Tools listesinden bir aracı seçip parametre girerek Run tool ile ajan olmadan çalıştırabilir, Invoked tools günlüğünde her çağrının girdisini ve çıktısını görebilirsiniz.








Bir Yorum Yazın