AIREITER

ChatGPT MCP Sunucusu Dağıtımı: Geliştirmeden Yayına Eksiksiz Rehber

Son Güncelleme: 2026-10-01 19:09:53

ChatGPT MCP sunucusu dağıtımı, yalnızca /mcp yanıt vermeye başladığında tamamlanmış sayılmaz. ChatGPT'nin sunucuya erişebilmesi, doğru araçları keşfetmesi, kullanıcıları doğrulaması ve gerektiğinde bu araçları doğru seçmesi gerekir. Çoğu ekip için varsayılan tercih yönetilen barındırma olmalı; özel altyapılar ise Secure MCP Tunnel'ın arkasında tutulmalıdır.

Koda başlamadan önce dağıtım sınırını belirleyin

Dağıtım modeli; kullanılacak iletişim yöntemini, kimlik doğrulama işini, operasyonel yükü ve sunucunun yayımlanıp yayımlanamayacağını belirler. ChatGPT bir uzak MCP istemcisidir; bazı masaüstü istemcilerinin yaptığı gibi yerel bir stdio sürecini doğrudan çalıştırmaz (OpenAI Help Center).

Dağıtım modeliChatGPT bağlantısıEn uygun kullanımTemel maliyet
Yönetilen herkese açık barındırmaKararlı HTTPS Streamable HTTP uç noktasıÇoğu ekip ve müşteri odaklı uygulamaPlatform kısıtları ve sağlayıcı bağımlılığı
Kendi yönettiğiniz herkese açık uç noktaContainer, VM veya cluster üzerinde kararlı HTTPS uç noktasıUyumluluk ya da ağ gereksinimleri olan mevcut platform ekipleriTLS, ölçekleme, yama, geri alma ve izleme sorumluluğu size aittir
Secure MCP TunnelOpenAI tarafından barındırılan uç nokta, özel bir stdio veya HTTP sunucusuna aktarım yaparŞirket içi sistemler, özel ağlar ve geliştirme ortamlarıSağlıklı çalışan bir tunnel-client, kullanılabilirliğin parçası hâline gelir

Varsayılan olarak yönetilen barındırmayı seçin; MCP sunucusu durum tutmuyorsa, trafik aralıklıysa ve ekip zaten güvenilir bir herkese açık uygulama platformu işletmiyorsa en mantıklı seçenek budur. Vercel'in route handler yaklaşımı ve Cloudflare'ın durum tutmayan Worker modeli, ChatGPT'nin beklediği kararlı HTTPS uç noktasını sağlayabilir. Yine de seçim yapmadan önce her platformun istek süresi, akış ve durum yönetimi kısıtlarını doğrulayın (Vercel, Cloudflare).

Herkese açık uç noktayı kendiniz yönetin; sunucunun mevcut veritabanlarının yanında çalışması, kurumun kimlik altyapısını kullanması, veri yerleşimi kontrollerini karşılaması veya sunucusuz çalışma süresine uymayan iş yüklerini çalıştırması gerekiyorsa bu tercih anlamlıdır. Ancak bu model; ekipte zaten gizli bilgi yönetimi, dağıtım geri alma, alarm üretimi ve nöbetçi bir sorumlu varsa tercih edilmelidir.

Secure MCP Tunnel kullanın; herkese açık gelen bağlantı güvenlik açısından doğru sınır değilse bu yaklaşım daha uygundur. OpenAI'nin tünel istemcisi api.openai.com:443 adresine giden HTTPS bağlantıları açar ve istekleri özel bir HTTP veya stdio sunucusuna yönlendirir; internetten gelen bağlantıları kabul eden bir dinleyici gerekmez. Ancak OpenAI'nin dağıtım dokümantasyonuna göre Secure MCP Tunnel, kararlı ve herkese açık bir HTTPS uç noktası gerektiren herkese açık gönderim koşulunu karşılamaz (OpenAI tunnel documentation, OpenAI build guidance).

Özel sunucu bağlantı modelini gösteren OpenAI Secure MCP Tunnel dokümantasyonu

Yerel araçlardan üretime hazır ChatGPT MCP sunucusuna geçin

Güvenilir bir ChatGPT MCP sunucusu dağıtımı; araç davranışı, protokol davranışı, üretim ortamına erişilebilirlik ve model yönlendirmesi için ayrı kontrol noktaları kullanır. Bir aşamanın geçilmesi, sonraki aşamanın da sorunsuz geçeceği anlamına gelmez.

1. Odaklı araçlar ve kararlı sözleşmeler tanımlayın

Her aracı, kullanıcı tarafından kolayca tanımlanabilen tek bir eyleme karşılık gelecek şekilde tasarlayın. OpenAI'nin geliştirme kılavuzunda, birden fazla ilgisiz modu olan tek bir araç yerine ayrı list_projects, get_project ve update_project araçları kullanılıyor (OpenAI developer documentation). Her aracın eylemi açıkça anlatan bir adı, net bir açıklaması, belirgin bir girdi şeması, işe yarar bir çıktısı ve doğru güvenlik açıklamaları olmalı.

Bir araç yalnızca durum değiştiremiyorsa readOnlyHint: true olarak işaretleyin. Geri alınması mümkün olmayan veya geri çevrilmesi zor etkiler için destructiveHint: true kullanın. Araç, açık uçlu harici varlıklara erişiyorsa openWorldHint: true değerini belirtin. OpenAI, bu açıklamaları araç davranışı ve güvenlik işlemleri için modele sunulan üstveri olarak tanımlıyor; buna karşılık yetkilendirmenin korumalı her istekte sunucu tarafından uygulanması gerektiğini özellikle belirtiyor (OpenAI developer documentation).

Daha sonraki bir çağrıda aynı kaydı güncellemeniz gerekebilecekse kararlı kayıt kimliklerini structuredContent içinde döndürün. Token'ları, gizli bilgileri ve gereksiz kişisel verileri content, structuredContent ve _meta alanlarından uzak tutun; OpenAI, _meta alanının modelden gizli olduğunu ancak güvenli depolama alanı sayılamayacağını açıkça belirtiyor.

2. Streamable HTTP'yi yerel ortamda açın

ChatGPT'nin standart uzak bağlantısı, genellikle /mcp adresinde sunulan Streamable HTTP'yi kullanır. Bu yol zorunlu değil, yaygın bir konvansiyondur; ancak ChatGPT'ye girilecek URL dağıtım sonrasındaki tam adres olmalıdır (OpenAI connection guide).

Sunucuyu yerel olarak çalıştırın ve MCP Inspector'ı açın:

npx @modelcontextprotocol/inspector@latest

Inspector'ı http://localhost:3000/mcp gibi bir URL'ye bağlayın. Başlatma işlemini doğrulayın, araç listesini alın ve ardından her aracı geçerli bir istek, hatalı bir şema, eksik bir kimlik ve boş sonuç senaryosuyla çağırın. Korumalı araçlarda eksik veya yetersiz kimlik bilgilerinin isteği reddettiğini doğrulayın.

3. Dış erişime açmadan önce üretim erişim kontrolünü ekleyin

Herkese açık bir sağlık kontrolü, araç yüzeyinin de herkese açık olması gerektiği anlamına gelmez. Araçlar yalnızca kasıtlı olarak herkese açık, salt okunur veriler sunuyorsa kimlik doğrulamasız bir uç nokta kabul edilebilir. Özel veriler, kullanıcıya özel veriler ve eylemler için her istekte kimlik doğrulama ve yetkilendirme uygulanmalıdır (OpenAI build guidance).

OAuth korumalı MCP yapısında sunucu, kaynak sunucusu olarak çalışır. Kimliği doğrulanmamış bir istek 401 döndürür ve istemciyi genellikle /.well-known/oauth-protected-resource adresinde bulunan korumalı kaynak üstverisine yönlendirir. Yetkilendirme akışında PKCE, dar kapsamlı token'lar, katı issuer ve audience doğrulaması kullanılmalı; kalıcı bağlantıların gerektirdiği durumlarda refresh token desteği sağlanmalıdır (OpenAI Help Center).

Her iki servis de bearer token tanıyor diye MCP erişim token'ını üst servise aktarmayın. Token'ın kendisine sunulduğu kaynak için üretilmiş olması gerekir; alt servislere yapılacak çağrılar için servis kimlik bilgileri veya uygun bir token değişimi tasarımı kullanın (MCP deployment security guide).

4. Değiştirilemez bir aday sürüm dağıtın

Inspector testlerini geçen aynı build'i önce preview veya staging uç noktasına dağıtın, ardından aynı artifact'i üretime alın. Üretim uç noktası HTTPS kullanmalı, MCP yolunun tamamını korumalı, bağımlılıklarına erişebilmeli ve gizli bilgileri barındırma platformunun secret store'unda tutmalıdır.

Kompakt bir Vercel referans kurulumu için mcp-handler, @modelcontextprotocol/server ve zod paketlerini yükleyin; dönen Web handler'ı app/api/mcp/route.ts dosyasına bağlayın; GET ve POST için dışa aktarın ve şu komutla dağıtın:

npx vercel deploy --prod

ChatGPT bağlantı URL'si bu durumda https://your-project.vercel.app/api/mcp biçiminde olur. Vercel, Fluid compute ile varsayılan 300 saniyelik fonksiyon süresi ve uygun ücretli yapılandırmalarda daha yüksek sınırlar sunuyor. Bu nedenle tek bir isteği aşan işleri boşta duran bir akışı açık tutmak yerine yeniden başlatılabilir bir işe dönüştürün (Vercel deployment guide). Seçtiğiniz çalışma zamanı bilinçli bir ortak durum tasarımı sunmuyorsa route'u durum tutmayacak şekilde bırakın.

ChatGPT'yi bağlamadan önce şu dört operasyonel kontrolü ekleyin:

  1. Pahalı araçlar için istek zaman aşımı ve hız sınırları belirleyin.
  2. Token'ları veya hassas sonuçları günlüğe yazmadan başlatma ve araç hatalarını kaydedin.
  3. Her çağrıyla birlikte sürüm kimliğini kaydedin; böylece bir olayın hangi dağıtılmış kodla ilişkili olduğu görülebilsin.
  4. Araç şeması veya yetkilendirme kaynaklı gerilemeler için test edilmiş bir geri alma yolu bulundurun.

MCP Inspector'ı yalnızca localhost'a değil, üretim URL'sine karşı da çalıştırın. Araç keşfini, şemaları, açıklamaları, kimlik doğrulamayı, başarılı çağrıları ve hataları yeniden kontrol edin. Uygulama yerelde çalışsa bile yük dengeleyici, proxy, CORS kuralı veya kimlik sağlayıcısının yönlendirmesi sorun çıkarabilir.

Erişim kontrolünü üç katmanda tasarlayın

ChatGPT MCP erişim kontrolü birbirinden bağımsız üç uygulama katmanına sahiptir; OAuth'u etkinleştirmek yalnızca kimlik katmanını çözer.

KatmanKontrol noktasıVerilmesi gereken karar
Çalışma alanı erişimiChatGPT yönetici kontrolleriUygulamayı kim oluşturabilir, yayımlayabilir, etkinleştirebilir veya kullanabilir?
Kullanıcı kimliğiOAuth yetkilendirme sunucusu ve MCP kaynak sunucusuÇağrıyı hangi hesap yapıyor ve token bu sunucu için geçerli mi?
Kaynak/eylem yetkilendirmesiMCP araç işleyicisi ve arka uçKullanıcı bu tenant, kayıt veya ortam üzerinde bu işlemi gerçekleştirebilir mi?

ChatGPT Business'ta geliştirici modu ve yayımlama işlemlerini yöneticiler veya sahipler kontrol eder. Enterprise ve Edu çalışma alanları geliştirici erişimi, uygulama erişimi ve eylemler için RBAC kontrolleri ekler (OpenAI Help Center). Bu kontroller ChatGPT'nin uygulamayı kullanıp kullanamayacağını belirler; arka uçta müşteri A'nın kaydını düzenleme yetkisini kanıtlamaz.

MCP handler, kimliği doğrulanmış bilgilerden kimlik çıkarmalı ve her çağrıda tenant ile nesne bazlı yetkilendirme uygulamalıdır. Model tarafından oluşturulan argümanlardaki kullanıcı kimliğini, organizasyon kimliğini veya rolü kimlik kanıtı olarak asla kabul etmeyin. Tüm araç argümanlarını güvenilmeyen girdi olarak değerlendirin.

Okuma ve yazma kapsamlarını birbirinden ayırın. Örneğin projects:read kapsamına geniş erişim verilebilirken projects:write yalnızca düzenleyicilere ayrılabilir; yıkıcı işlemlerden önce sunucu tarafında güncel bir kontrol yapılması istenebilir. ChatGPT kritik işlemler için kullanıcıdan onay isteyebilir, ancak bu onay kullanıcı deneyimini güvenceye alır; yetkilendirme kontrolünün yerini tutmaz.

Prompt injection da erişim kontrolüyle ilgili bir risktir. Araç çıktıları ve getirilen dokümanlar kötü niyetli talimatlar içerebilir. Bu yüzden yazma araçları mümkün olan en dar eylemi sunmalı ve izin verilen alanları sunucu tarafında doğrulamalıdır. Her işi yapabilen bir execute_action aracı, hem yönlendirme belirsizliğini hem de olası hasarın kapsamını büyütür.

Uygulamayı ChatGPT'ye bağlayın, test edin ve yayımlayın

Uç noktayı bağlamak bir taslak uygulama ve üstveri anlık görüntüsü oluşturur. Yayımlama ise incelenmiş bir yapılandırmayı çalışma alanında kullanılabilir hâle getirir; sunucu kodunu dağıtmakla aynı işlem değildir.

  1. Geçerli ChatGPT çalışma alanı politikasına göre geliştirici modunu etkinleştirin.
  2. Uygulama oluşturma akışını açın ve /mcp bağlı rota ise bu bölüm dâhil olmak üzere eksiksiz HTTPS MCP URL'sini girin.
  3. Kimlik doğrulama yöntemini seçin ve gerekiyorsa OAuth işlemini tamamlayın.
  4. Scan Tools seçeneğini çalıştırın; keşfedilen her adı, şemayı, açıklamayı ve eylemi inceleyin, ardından taslağı oluşturun.
  5. Taslağı çalışma alanında yayımlamadan önce yeni bir sohbette test edin.

Özel bir sunucu için bağlantı türü olarak Tunnel seçeneğini belirleyin ve ilişkili bir tünel seçin ya da tunnel_id değerini girin. Operatörün OpenAI Platform üzerinde Tunnels Read + Use iznine ihtiyacı vardır; ChatGPT geliştirici modu ise ayrı bir çalışma alanı iznidir (OpenAI tunnel documentation).

Üstveri değişiklikleri açıkça yönetilen bir yaşam döngüsüne sahip olmalıdır. Geliştirici modu bağlantısında sunucuyu dağıtın veya yeniden başlatın, bağlantıyı açın, Refresh seçeneğini belirleyin, değişen üstveriyi doğrulayın ve yeni bir konuşma başlatın. OpenAI'nin güncel Business kılavuzuna göre yayımlanmış uygulamalarda araçları veya üstveriyi değiştirmek için uygulamanın yeniden oluşturulup yayımlanması gerekir. Enterprise/Edu yöneticileri ise eylemleri yenileyebilir, farkları inceleyebilir ve varsayılan olarak devre dışı olan yeni eylemleri etkinleştirebilir (OpenAI Help Center).

Yine de sunucu tarafında en güvenli politika geriye dönük uyumluluktur. İsteğe bağlı alanlar ve yeni araçlar ekleyin; mevcut bir aracın anlamını sessizce değiştirmeyin. Onaylanmış tüm anlık görüntüler ve istemciler taşınana kadar eski şemaları kullanıma açık tutun.

ChatGPT kullanıcılarının gerçekten göreceği davranışı test edin

Protokol testleri sunucunun yanıt verebildiğini kanıtlar. ChatGPT testleri ise modelin doğru aracı seçtiğini, uygun argümanları gönderdiğini, sınırları gözettiğini ve konu dışı durumlarda aracı kullanmadığını gösterir.

Reddit kullanıcısı u/EmailNo8428, bu iki katmanlı sorunu şöyle özetliyor:

“Aslında aynı anda iki şeyi test ediyorsunuz: araç mantığınızı ve belirli bir istemcinin aracı nasıl çağırdığını.” (r/mcp)

Şu senaryoları içeren küçük ve sürümlenmiş bir değerlendirme seti oluşturun:

SenaryoBeklenen sonuç
Doğrudan istekAdı verilen yeteneği geçerli argümanlarla seçer
Dolaylı istekKullanıcının amacından doğru aracı çıkarır
Takip isteğiÖnceki yanıtta dönen kararlı kimliği yeniden kullanır
Olumsuz istekHiçbir MCP aracını çağırmaz
Eksik izinVeri sızdırmadan anlaşılır bir yetkilendirme hatası döndürür
Yazma isteğiDar kapsamlı yazma aracını seçer ve gerekiyorsa onay sürecini başlatır
Belirsiz istekArgüman uydurmak yerine gerekli bilgiyi sorar
Boş sonuçİletim veya şema hatası yerine geçerli bir boş durum döndürür

Seçilen aracı, argümanları, dönen sonucu, hatayı ve onay davranışını kaydedin. Araç adı, açıklaması, şeması, açıklaması, kimlik doğrulama kuralı veya sonuç biçimi değiştiğinde etkilenen senaryoları yeniden çalıştırın; OpenAI de bağlantı kılavuzunda aynı yenileme ve tekrar test döngüsünü öneriyor.

Inspector testlerini geçen ancak ChatGPT'de kötü yönlendirme yapan bir sunucuda genellikle araç sınırları, açıklamalar veya şemalar daha net hâle getirilmelidir. Doğru yönlendirme yaptığı hâlde 401 döndüren, zaman aşımına uğrayan veya durum kaybeden bir sunucuda ise altyapı ya da yetkilendirme sorunu vardır. Bu iki teşhisi birbirinden ayırmak, onarım döngüsünü kısaltır.

Sık sorulan sorular

ChatGPT doğrudan localhost veya stdio MCP sunucusuna bağlanabilir mi?

Hayır. ChatGPT normalde uzak bir MCP uç noktasına bağlanır. OpenAI Secure MCP Tunnel, herkese açık gelen bağlantıya ihtiyaç duymadan özel bir stdio veya HTTP sunucusuna aktarım yapabilir. Geçici bir HTTPS tüneli ise geliştirme için kullanılabilir, ancak herkese açık plugin gönderimi için yeterli değildir.

ChatGPT MCP sunucusunun herkese açık bir HTTPS uç noktasına ihtiyacı var mı?

Normal uzak bağlantı ve herkese açık plugin gönderimi için kararlı HTTPS gerekir. Özel bir geliştirici modu sunucusu, sunucuyu müşterinin kontrol ettiği ortamda tutan Secure MCP Tunnel'ı kullanabilir.

search ve fetch araçları zorunlu mu?

Hayır. OpenAI, bağlı sunucuların artık bu araçlara ihtiyaç duymadığını belirtiyor. Uygulamanın şirket içi bilgi veya derin araştırma sonuç alma yüzeylerine katılması gerekiyorsa standart search ve fetch sözleşmelerini uygulayın (OpenAI Help Center).

Dağıtımdan sonra ChatGPT neden hâlâ eski araçları gösteriyor?

ChatGPT, her kod dağıtımını onaylanmış bir araç değişikliği olarak görmek yerine keşfedilen üstveriyi saklar. Geliştirici modu bağlantısını yenileyin ve yeni bir konuşma başlatın; yayımlanmış çalışma alanı uygulamalarında ise plana göre değişen inceleme ve yeniden yayımlama süreci uygulanır.