MCP Events, ChatGPT'nin yalnız siz sorduğunuz anda veri çekmesi yerine, seçtiğiniz bir olayı izlemesi ve olay geldiğinde talimatınıza göre ilerlemesi için tasarlanmış. DevDay 2026 örneklerinde ürün geri bildirimi kanalındaki hata raporundan taslak PR hazırlama veya belge yorumunu işleme var. Olay, sunucunun tanımladığı sözleşmeyle aboneliğe dönüşüyor.
Teknik koşullar net: ChatGPT tarafındaki entegrasyon MCP 2.0, yani 2026-07-28 protokol sürümünü istiyor; taslak MCP Events şartnamesinin webhook teslimini destekliyor. Polling, streaming ve taslaktaki gap/terminated bildirimleri bu entegrasyonda desteklenmiyor. Bu yazı bir entegrasyon rehberi ve editoryal kullanım yorumu; olay tanımlanır tanımlanmaz bütün eklentilerde otomatik çalışacağı iddiası değil.
Bu yazının duyuru ve erişim bilgileri OpenAI’nın resmî özellik belgesi ile DevDay 2026 toplu duyurusu üzerinden doğrulandı. Örnek proje ve deneme önerileri editoryal yorumdur.
Abonelik akışının beş adımı
Önce MCP sunucusu desteklediği olayları ilan ediyor. Kullanıcı ChatGPT'ye hangi olayı, hangi kapsamda izleyeceğini ve geldiğinde ne yapacağını söylüyor. ChatGPT sunucuya abone olup callback URL ve imzalama sırrı sağlıyor. Sunucu filtreye uyan güncellemeyi bu adrese gönderiyor. ChatGPT olayı ilgili konuşmada alıp kullanıcının talimatını izliyor. Burada önemli nokta, “sunucu istediği zaman ajana emir verir” anlayışından kaçınmak. Aboneliğin sahibi ve eylem kuralı kullanıcı tarafında belirleniyor.
Olay kataloğu nasıl tanımlanır?
Sunucu keşifte events yeteneğini bildirmeli ve events/list ile isim, açıklama, filtreler ve payload şemasını döndürmeli. Örnek comment.created için document_id filtresi ve yorum metni/URL gibi alanlar tanımlanıyor. Olay adının kararlı, açıklamasının belirgin olması kullanıcıya doğru isteği kurdurur. Filtreyi mümkünse sunucuda uygulamak gerekir; bütün yorumları gönderip ChatGPT'nin ayıklamasını beklemek hem erişim hem maliyet açısından sorun çıkarabilir. Bağlı hesabın keşfetmeye yetkisi olmayan olay katalogda görünmemeli.
Abone olma ve doğrulama
events/subscribe çağrısı olay adı, argümanlar, webhook adresi ve imzalama sırrı içeriyor. Sunucu kullanıcı yetkisini ve filtreleri doğrulayıp aboneliği kalıcı kaydediyor. İlk gerçek veriyi göndermeden önce callback'e imzalı challenge yollayıp yanıtı doğrulaması isteniyor. Bu adım, olayların yanlış adrese akmasını engelleyen güvenlik kapısı. HTTPS, adres doğrulama, özel ağ adreslerini engelleme ve yönlendirme takip etmeme gibi ayrıntılar resmî kılavuzda yazıyor; üretim entegrasyonunda atlanmamalı.

İmzalı webhook teslimi
Olay geldiğinde sunucu, payload'ı abonelik sırrıyla imzalayıp webhook'a gönderiyor. ChatGPT'nin aldığı olay, abone olunan konuşmaya bağlanıyor. Yanıt kodları ve yeniden deneme davranışları entegrasyonun kararlılığı için önemli. Bir belgedeki yorum silinir veya yetki geri alınırsa aboneliğin ve teslim kaydının ne olacağını da tasarlamak gerekir. “Bir olay bir kez gelir” varsayımı yerine idempotent işleme uygun kayıt tutmak daha güvenli. Özellikle otomatik PR açma gibi tekrarlandığında yan etki yaratan işler için bu kritik.
Örnek: yorumdan düzeltme taslağı
Bir ürün dokümanında yeni yorum açıldığını düşünelim. Olay comment.created, filtre document_id; payload yorum kimliği, metni ve bağlantısı. ChatGPT bu olayı görünce kullanıcı talimatına göre değişiklik önerisi hazırlayabilir. Ben doğrudan yayına almak yerine önce yorumun talebini, doküman sürümünü ve önerilen değişikliği inceleme aşaması koyardım. Bu editoryal tasarım, resmî örneğin otomatik kusursuz düzeltme garantisi değildir. Olay yalnız tetikleyicidir; ne yapılacağı, yetkiler ve son onay ayrı kararlar.

MCP 2.0 zorunluluğu
Eski MCP sürümünde araç sunan bir sunucu, yalnızca olay adları ekleyerek bu entegrasyonu tamamlamış sayılmaz. Resmî doküman 2026-07-28 sürümünü, server/discover yanıtında events capability'sini ve events/list, events/subscribe, events/unsubscribe yöntemlerini açıklıyor. Uygulamanın kalıcı abonelik depolaması ve dış HTTPS erişimi de gerekli. Geliştirici takviminde yalnız olay şemasını yazmak değil, sunucu altyapısını güncellemek ve callback doğrulamasını test etmek de yer almalı.
Nerelerde kullanılmalı?
Ürün geri bildirimi, belge yorumu, teslim durumu veya destek kuyruğu gibi belirli, filtrelenebilir olaylar iyi aday. Yüksek hacimli ve düşük anlamlı her log satırını olaya çevirmek kullanıcının dikkatini dağıtır. Olay tanımı bir iş kararına bağlanmalı: hangi güncelleme gerçekten aksiyon gerektiriyor? Başarılı pilot için olay başına yararlı çıktı oranını, yanlış tetik sayısını ve insan onayı gerektiren adımları ölçerdim. Çok sayıda abonelik değil, güvenilir az sayıda akış daha kıymetli.
Desteklenmeyen teslim yolları
Taslak MCP Events şartnamesinde farklı fikirler bulunsa da ChatGPT entegrasyonu şu aşamada webhook teslimini destekliyor. Polling ve streaming yok; gap ve terminated kontrol bildirimleri de desteklenmiyor. Bu sınırlar kesinti sonrası boşluğu uygulamanın kendi iş mantığıyla yönetmeyi gerektirebilir. Örneğin kritik bir müşteri kuyruğu için yalnız olay kanalına güvenmek yerine kaynak sistemde ayrıca denetim görünümü tutardım. Olay sistemini eksiksiz arşiv gibi konumlandırmamak gerekir.

Olay adını iş diline bağlamak
message.created gibi genel bir olay, ürün geri bildirimi veya destek kuyruğu için ancak doğru filtrelerle anlamlı olur. Sunucu olay açıklamasında ne zaman tetiklendiğini, hangi kimliğe ait olduğunu ve payload'ın hangi alanları içerdiğini açık tanımlamalı. Kullanıcı ChatGPT'ye doğal dille “şu belgedeki yeni yorumları izle” dediğinde document_id filtresinin doğru kayda bağlanması gerekir. Olay adı sık değişirse abonelikler kırılabilir. Bu yüzden API tasarımında kararlı isim, şema sürümü ve yetki sınırı baştan düşünülmeli. İyi olay sözleşmesi, ajanın yapacağı eylem kadar önemli.
İmza doğrulamasının pratik değeri
Webhook, dışarıdan gelen HTTP isteği olduğu için kaynağı doğrulanmazsa sahte olayla iş başlatılabilir. Resmî kılavuz secret, zaman damgası ve imzayı anlatıyor; callback için doğrulama challenge'ı da var. Uygulama bu alanları gerçekten kontrol etmeli, yalnız endpointin gizli adres olmasına güvenmemeli. Tekrar gönderilen bir olayın ikinci kez PR açmasını önlemek için webhook-id ve abonelik kimliği gibi veriler kaydedilebilir. Bu teknik disiplin, yaratıcı ekip açısından da önemlidir: bir müşteri yorumunun gerçekten kaynak uygulamadan geldiğinden emin olmak, yanlış revizyonu önler.
İnsan onayını olaya eklemek
Olay tetiklenince ChatGPT yorum özetleyebilir, taslak hazırlayabilir veya uygun araçla değişiklik önerebilir. Hangi eylemin dış sisteme yazma yetkisi olduğu ayrı karar. Bir “bug report” mesajından otomatik kod değişimi hazırlamak ile PR'ı birleştirip üretime almak farklı risk seviyeleri. Ben ilk pilotta yalnız taslak ve kaynak linki üretirdim; insan doğru bulduğunda sonraki aşamaya geçer. Bu, MCP Events'in kapasitesini küçümsemek değil, gözlemlenebilir bir iş akışı kurmak. Olay kaydı, kullanılan filtre ve son çıktının aynı inceleme ekranında olması gerekir.
Kesinti ve abonelik yaşam döngüsü
Abonelik sonsuza kadar kendiliğinden sürmeyebilir; resmî kılavuz refreshBefore alanı ve yenileme/yetki iptali akışını tanımlıyor. Sunucu hangi aboneliğin kime ait olduğunu, hangi filtreyle kurulduğunu ve ne zaman yenileneceğini saklamalı. Erişim iptal edildiğinde eski webhook'un veri almaması gerekir. Kesinti yaşandığında desteklenmeyen gap bildirimi nedeniyle kaynak sistemle mutabakat yolu düşünmek akıllıca. Örneğin günlük bir “kaç yorum işlendi?” kontrolü, sessiz kaybı fark ettirebilir. Olay bazlı otomasyon kurulduktan sonra bakım planı yoksa en kritik anlarda çalışmayabilir.
Olay hacmi için sınır
Yüksek trafikli bir uygulamada her değişikliği ajan görevi yapmak maliyeti ve gürültüyü artırır. Filtreyi sunucuda mümkün olduğunca dar uygular, yalnız gerçekten karar gerektiren olayları ChatGPT'ye ulaştırırım. Bir belge yorumunda yalnız onaylı proje veya belirli kullanıcı grubu kapsamı olabilir. Aynı anda yüzlerce yorum gelirse sıralama, birleştirme ve tekrarları atlama davranışı test edilmeli. Başarı metriği gönderilen webhook sayısı değil, işe yarayan ve denetlenebilir sonuç sayısıdır. Bu yaklaşım resmî protokolün teknik gereksinimini pratik ürün kararına dönüştürür.

Abonelik iptalinin deneyimi
Kullanıcı “bu belgeyi artık izleme” dediğinde events/unsubscribe çağrısı ve sunucudaki kayıt gerçekten sonlanmalı. Arayüzde yalnız bildirimleri gizlemek yeterli değil; webhook teslimi sürüyorsa veri akışı devam eder. Bir pilotta aboneliği oluşturup birkaç olay gönderir, sonra iptal edip aynı olayı tekrar denerdim. Kullanıcının iptali anlaşılır biçimde görmesi de gerekli. Özellikle müşteri projelerinde eski belgenin yorumlarını izlemeye devam eden ajan yanlış bağlamla iş başlatabilir. Abonelik yaşam döngüsü, olay göndermek kadar ürünün temel parçası.
Kaynak olay ile ajan çıktısını bağlamak
Bir otomatik taslak çıktığında hangi event adı, abonelik kimliği, filtre ve kaynak URL'nin buna yol açtığı görülebilmeli. Aksi halde “bu PR neden açıldı?” sorusuna cevap verilemez. Ben çıktı özetinde olay zamanı ve ilgili belge/mesaj bağlantısını tutardım. Yine de webhook payload'ındaki kişisel veya gizli veriyi gereksiz loglamam. Denetlenebilirlik, her şeyi kaydetmek değil, karar zincirini gerekli kadar izleyebilmek. MCP Events'in insan tarafından güvenilir kullanılmasını sağlayan şey yalnız hız değil, olay ve sonuç arasındaki açık bağdır.
Sonuç
MCP Events, kullanıcı talimatı ile sunucu olayını güvenli abonelikte buluşturuyor. İş akışını hızlandırabilir; ama daha çok altyapı ve izin disiplini gerektirir. En küçük doğru pilot, tek olay adı, dar filtre, imzalı webhook ve insan tarafından incelenen sonuçtur. Böylece “ajan kendiliğinden bir şey yaptı” belirsizliği yerine tetik, kaynak ve çıktı izlenebilir olur.
Sık sorulan sorular
MCP Events için hangi protokol gerekir?
ChatGPT entegrasyonu MCP 2.0 / 2026-07-28 protokol sürümünü ister.
Polling destekleniyor mu?
Hayır. Resmî rehber bu entegrasyonda webhook teslimini destekliyor; polling ve streaming desteklenmiyor.
Olay geldiğinde ChatGPT ne yapar?
Abone olunan konuşmada kullanıcının o olay için verdiği talimatı izler; eylem ve araç izinleri ayrıca geçerlidir.
İlgili yazılar
- DevDay 2026: bütün duyurular
- Sign in with ChatGPT: Giriş ve Plan Kullanımı Nasıl İşliyor?
- ChatGPT Sites'ta Bağlı Veri: Her Ziyaretçinin Kendi Hesabı
- ChatGPT Plugin Extensions: Eklentiler İçin Yeni Arayüzler
