deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

ChatGPT artık MCP Events'i destekliyor: sunucular ajanlara güncelleme gönderebiliyor

OpenAI'nin DevDay'inin ardından ChatGPT, önerilen MCP Events spesifikasyonunu tüm planlarda destekliyor; böylece MCP sunucuları ajanlara, sürekli yoklanmak yerine imzalı webhook güncellemeleri gönderebiliyor.

ChatGPT artık MCP Events'i destekliyor: sunucular ajanlara güncelleme gönderebiliyor

Ne oldu

dev.to'da yayımlanan bir rehbere göre ChatGPT, 29 Eylül 2026'daki OpenAI DevDay'inin ardından önerilen MCP Events spesifikasyonunu desteklemeye başladı. Destek, MCP 2.0 olarak tanımlanan 2026-07-28 protokol sürümünü kapsıyor ve tüm ChatGPT planlarında kullanılabiliyor. Bu değişiklik, iletişimin olağan yönünü tersine çeviriyor: Bir ajan değişiklikleri kontrol etmek için bir aracı sürekli çağırmak yerine, MCP sunucusu artık bir şey olduğu anda güncellemeleri ChatGPT'ye iletiyor.

Spesifikasyon, MCP Triggers and Events Çalışma Grubu'ndan geliyor ve deneysel olmaya devam ediyor. OpenAI'nin MCP Events dokümantasyonuna ve bir tasarım taslağı taslağına dayanan dev.to rehberi, bu nedenle uygulamaların 2026-07-28 sürümüne sabitlenmesini öneriyor.

Mekanizma nasıl çalışıyor

Etkinlik sunan bir sunucu, server/discover yanıtındaki araçlarının yanı sıra bir events capability beyan eder ve araçlarıyla aynı kimlik doğrulamalı endpoint üzerinde üç metot uygular: events/list, events/subscribe ve events/unsubscribe.

Her etkinlik tanımı, comment.created gibi kararlı bir ad, ne zaman tetiklendiğine dair bir açıklama, bir teslim modu ve iki JSON şeması içerir: Bunlardan input schema, bir aboneliğin geçebileceği filtreleri (örneğin document_id), payload schema ise her teslimdeki veri nesnesini tanımlar. Filtreler sunucu tarafında uygulanır ve rehber, yalnızca bağlı hesabın görmesine ve abone olmasına gerçekten izin verilen etkinliklerin listelenmesini vurgular.

ChatGPT yalnızca webhook teslimini kabul eder. dev.to makalesine göre polling yok, streaming yok ve gap ya da terminated bildirimleri de yok.

Abonelikler ve teslim

Bir kullanıcı ChatGPT'den bir şeyi izlemesini istediğinde, ChatGPT etkinlik adını, filtre argümanlarını ve callback URL'si ile imzalama secret'ını içeren bir webhook teslim nesnesiyle birlikte bir events/subscribe çağrısı gönderir. Sunucu, kabul etmeden önce kullanıcının etkinlik ve argümanlar üzerindeki yetkisini denetmeli, bunları etkinlik tanımıyla doğrulamalı, secret formatını (whsec_ öneki artı 24 ile 64 bayt arasında çözünen base64) onaylamalı ve sahip, filtreler, callback URL'si, secret ve süre sonunu saklamalıdır.

Abonelik kimlikleri deterministiktir; kimlik doğrulamalı principal'dan, callback URL'sinden, etkinlik adından ve argümanlardan türetilir ve tasarım taslağı bu anahtarın kısaltılmış bir SHA-256 hash'ini önerir. Aynı kimlikle yeniden abone olmak yinelenen bir kayıt oluşturmak yerine mevcut kaydı güncellemelidir ve anahtar sıralamasının tek bir mantıksal aboneliği birkağa bölmemesi için argümanlar JSON olarak canonicalize edilmelidir. ChatGPT, abonelikleri refreshBefore zaman damgasından önce yeniler; bir yenileme yeni bir secret taşıyorsa, sunucu kısa bir geçiş penceresi boyunca iki anahtarla da imzalamalı ve tekrarlanabilir olmayan etkinlikler için null cursor döndürmelidir.

Teslimler, 256 KiB (262.144 bayt) ile sınırlı, istek başına tek etkinlik bulunan ayrı POST istekleridir ve her biri Standard Webhooks HMAC-SHA256 ile imzalanır. Başlıklar arasında webhook-id, webhook-timestamp, webhook-signature ve X-MCP-Subscription-Id yer alır.

Güvenlik gereksinimleri

Herhangi bir uygulama verisi gönderilmeden önce sunucu, tek kullanımlık, kısa ömürlü bir challenge içeren imzalı bir doğrulama mesajı göndererek callback endpoint'ini doğrulamalıdır. Abone, 2xx durumuyla yanıt vermeli ve challenge'ı geri göndermelidir; sunucu bunu sabit süreli (constant time) bir karşılaştırmayla denetler. Başarısızlıklar, yanıt verisinde challenge_failed ya da timeout gibi bir nedenle JSON-RPC hatası -32015 (CallbackEndpointError) olarak görünür. Başarılı doğrulamalar, principal ve URL başına sınırlı bir süre boyunca önbelleğe alınabilir; böylece yenilemeler her zaman yeni bir challenge tetiklemez.

Challenge önemlidir, çünkü imzalama secret'ını abone tarafı sağlar; bunun olmadığı durumda bir saldırgan sunucuyu kandırıp üçüncü taraf bir URL'yi isteklerle boğabilir. Rehber ayrıca her giden isteğin sertleştirilmesini öğütüyor: Yalnızca HTTPS'e izin verin, DNS'i bağlantı anında çözümleyin ve hedef adresi denetleyin, private, local ve diğer herkese açık olmayan IP aralıklarını engelleyin ve asla HTTP yönlendirmelerini takip etmeyin.

Neden önemli

Polling, hiçbir şey değişmediğinde istekleri boşa harcar, bir şey değiştiğinde ise güncellemeleri geciktirir. Ajan iş akışları için dokümante edilmiş örnekler arasında bir proje panosunu izleyip yeni bir görev geldiğinde ChatGPT'nin bağlantılı belgeleri okuması ve bir plan taslağı hazırlaması, bir kanaldaki hata raporlarını message.created üzerinden taslak pull request'lere dönüştürmesi ve comment.created üzerinden yeni inceleme yorumlarını bir belgeye uygulaması yer alıyor. Push teslimi, ajanları neredeyse gerçek zamanlı tepki verir hale getirirken iki taraftaki trafiği de azaltıyor.

Bu aynı zamanda bir örnek oluşturuyor. OpenAI'nin hâlâ deneysel olan bir çalışma grubu spesifikasyonunu tüm planlarda benimsemesi, etkinlik tabanlı MCP sunucularının araç entegrasyonlarında bir farklılaştırıcı olmaktan çıkıp temel bir beklenti haline gelebileceğine işaret ediyor. MCP sunucusu geliştiren geliştiricilerin artında, sürüme sabitlenmiş de olsa somut bir hedef var; buna göre uygulama yapabilir ve test edebilirler.

  • #mcp
  • #chatgpt
  • #openai
  • #webhooks
  • #ai-agents

İlgili yazılar