MCP sunucusu yazma: yapay zekayı araçlara ve kurumsal veriye bağlamak
Beceri rehberi

MCP sunucusu yazma: yapay zekayı araçlara ve kurumsal veriye bağlamak

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

Model Context Protocol ile yapay zeka uygulamalarına araç, veri kaynağı ve istem şablonu nasıl bağlanır? Sunucu yazımı, yetki ve güvenlik adımları.

MCP nedir ve hangi sorunu çözer?

Model Context Protocol (MCP), yapay zeka uygulamalarının dış araçlara ve veri kaynaklarına ortak bir dille bağlanmasını sağlayan açık bir protokoldür. Eskiden bir dil modelini takvime, veritabanına ya da dosya sistemine bağlamak istediğinizde her uygulama ve her kaynak için ayrı bir özel entegrasyon yazılırdı. MCP ile bir kez yazılan sunucu, protokolü konuşan her uygulamadan kullanılabilir hâle gelir.

Protokolde roller ayrıdır. Host, kullanıcıyla konuşan yapay zeka uygulamasıdır. Client, host'un her sunucu için oluşturduğu ve o sunucuyla bağlantıyı tutan bileşendir. Server ise bağlam ve yetenek sağlayan programdır. Sunucu yerelde çalışabileceği gibi uzaktaki bir sistemde de çalışabilir; 'yerel' ya da 'uzak' ayrımı programın nerede koştuğuyla ilgilidir, protokolün işleyişiyle değil.

MCP, modelin nasıl çalıştığına karışmaz; yalnızca bağlamın modele nasıl ulaştırılacağını tarif eder. Bu yüzden aynı sunucuyu farklı model sağlayıcılarıyla çalışan uygulamalarda kullanabilirsiniz.

Bir MCP sunucusu neler sunar: araç, kaynak ve istem şablonu

Sunucuların protokol düzeyinde tanımladığı temel yapı taşları şunlardır.

  • Araçlar (tools): modelin çağırabileceği, bir iş yapan fonksiyonlardır. Bir kaydı sorgulamak, bir bilet açmak, bir dosyayı okumak buna örnektir.
  • Kaynaklar (resources): modele bağlam sağlayan veridir. Bir veritabanı şeması, bir belge içeriği ya da bir API yanıtı kaynak olarak sunulabilir.
  • İstem şablonları (prompts): etkileşimi yapılandıran, yeniden kullanılabilir şablonlardır. Sistem istemleri ya da örnekli yönlendirmeler bu kategoriye girer.

İstemci, sunucudan bu yapıların listesini ister, sonra gerektiğinde bir aracı çağırır. Listeleme dinamiktir: sunucu zamanla yeni araç ekleyebilir, istemci güncel hâli yeniden isteyebilir. Mesajlar JSON-RPC tabanlı bir biçimde taşınır; bu ayrıntı çoğu zaman SDK tarafından gizlenir ve geliştirici yalnızca araç tanımına odaklanır.

Bir veritabanı sunucusu örneğin sorgu çalıştıran bir aracı, şema bilgisini veren bir kaynağı ve araçların nasıl kullanılacağını gösteren bir istem şablonunu birlikte sunabilir.

Adım adım MCP sunucusu nasıl yazılır?

Sunucu geliştirme, bir API yazmaya benzer ama tüketicisi bir dil modeli olduğu için tasarım ölçütleri farklıdır.

  • Kullanım senaryosunu daraltın: modelin hangi işi yapabilmesini istiyorsunuz? Tek bir iyi tanımlı iş, onlarca belirsiz araçtan yeğdir.
  • Araçları tasarlayın: her araca açık bir ad, modelin ne zaman kullanması gerektiğini anlatan bir açıklama ve tip tanımlı girdi şeması verin. Model, aracı bu metinden okuyarak seçer; muğlak açıklama yanlış çağrıya yol açar.
  • SDK ile sunucuyu kurun: resmî SDK'lar protokol ayrıntılarını üstlenir. Siz araç fonksiyonlarını yazarsınız.
  • Taşıma yöntemini seçin: aynı makinedeki yerel kullanım için standart girdi/çıktı (stdio), uzaktan ve çok kullanıcılı erişim için Streamable HTTP uygundur.
  • Bir test aracıyla deneyin: protokol geliştirme araçları, araç listesini ve çağrıları ekranda görmenizi sağlar.
  • Bir istemciye bağlayın: önce bir masaüstü yapay zeka uygulamasında, sonra kendi uygulamanızda deneyin.
  • Hata durumlarını tasarlayın: araç başarısız olduğunda modelin anlayacağı, düzeltici bir mesaj dönün.

Tasarımın püf noktası şudur: araç çıktısı modele okunacak bir metindir. Ham ve gürültülü veri yerine, özetlenmiş ve ilgili alanları seçilmiş çıktı verin.

Kurumsal veri kaynağını güvenle bağlamak

Kurumsal kullanımda asıl zorluk teknik bağlantı değil, kimlik, yetki ve denetimdir. Bir MCP sunucusu veritabanına bağlandığında, modelin hangi kayda erişebileceği, kullanıcının yetkisiyle belirlenmelidir. Her çağrıyı tek bir güçlü servis hesabıyla yapan sunucu, yetkisiz kullanıcının da yetkili veriye ulaşmasına yol açabilir.

Bu yüzden şu ilkeler benimsenir:

  • En az yetki: sunucuya yalnızca gereken okuma ya da yazma izni verilir; yazma işlemleri ayrıca korunur.
  • Kullanıcı bağlamı: çağrı kimin adına yapılıyorsa yetki kontrolü o kullanıcıya göre yürütülür. Uzak sunucularda kimlik doğrulama için standart HTTP yöntemleri ve OAuth tabanlı akışlar önerilir.
  • Onay noktaları: veri değiştiren ya da geri alınamaz işlemlerde kullanıcıdan açıkça onay istenir.
  • Kayıt ve denetim: hangi aracın kim tarafından, hangi girdiyle çağrıldığı izlenebilir olmalıdır.
  • Girdi doğrulama: modelden gelen argümanlar da güvenilmez kabul edilir; sorgu ya da komut enjeksiyonuna karşı doğrulanır.

Ayrıca kaynaklardan gelen metnin içinde saklanmış yönergeler (prompt injection) modeli yanlış yönlendirebilir. Dış içerik okuyan araçlarda bunu hesaba katan sınırlar koymak gerekir.

Ajan davranışı, hata yönetimi ve üretime alma

Sunucunuz çalışsa bile ajanın araçları doğru kullanması ayrı bir iştir. Model bazen yanlış aracı seçer, eksik argüman verir ya da aynı çağrıyı döngüye sokar. Bu durumlar araç açıklamalarını netleştirerek, argüman örnekleri vererek ve hata mesajlarını yönlendirici yazarak azalır. Araç sayısı arttıkça modelin seçim kalitesi düşebilir; ilgili araçları gruplamak ya da bir bağlamda yalnızca gerekli olanları açmak yardımcı olur.

Üretime alırken şu başlıklar gündeme gelir: sunucunun sürümlenmesi ve geriye uyumluluk, araç listesi değiştiğinde istemcilerin bilgilendirilmesi, zaman aşımı ve yeniden deneme davranışı, kaynak tüketimi ve maliyet izleme, hatalı yanıtlara karşı kayıt tutma. Yerelde çalışan bir deneme sunucusunu çok kullanıcılı uzak hizmete çevirmek, kimlik ve ölçekleme gereksinimleri nedeniyle ayrı bir mühendislik işidir.

Bakım tarafında, araç tanımlarını bir sözleşme gibi ele almak iyi sonuç verir: bir aracın adı, girdisi ya da anlamı değiştiğinde onu kullanan ajanlar da etkilenir.

Bu beceriyi Mindset programlarında nerede çalışırsınız?

Mindset kataloğunda bu konuya birbirini tamamlayan programlar ayrılmıştır. 'Model Context Protocol (MCP) ile Araç Entegrasyonu' eğitiminin modülleri MCP mimarisi ve temel kavramlar, MCP sunucusu geliştirme, istemci tarafı entegrasyon, güvenlik, yetkilendirme ve denetim, kurumsal sistem bağlama senaryoları ile dağıtım, izleme ve proje teslimini kapsar.

'Model Bağlamı Protokolü (MCP) ile Kurumsal Veri Entegrasyonu' eğitimi ise protokol temelleri ve mimari, sunucu geliştirme ve araç tanımları, kurumsal veri kaynağı entegrasyonu, kimlik, yetki ve denetim, ajan davranışı ve hata yönetimi ile üretim dağıtımı ve bakım başlıklarına odaklanır. Yakın beceriler için ilgili sayfalara da bakabilirsiniz.

İlgili Mindset programı

Model Context Protocol (MCP) ile Araç Entegrasyonu

Sık sorulanlar

Sık sorulan sorular

MCP ile klasik API entegrasyonu arasındaki fark nedir?

Klasik API entegrasyonunda her uygulama, her servis için kendi bağlantı kodunu yazar. MCP bu bağlantıyı ortak bir protokole taşır: sunucu bir kez yazılır, protokolü bilen her yapay zeka uygulaması araçları keşfedip kullanabilir. Ayrıca araçlar, modelin okuyup seçebileceği açıklamalarla sunulur.

MCP sunucusu yazmak için hangi dil gerekir?

Protokol dilden bağımsızdır ve farklı diller için resmî SDK'lar bulunur. Pratikte sık görülen tercihler Python ve TypeScript'tir. Hangi dili seçeceğiniz, bağlanacağınız sistemin kütüphane desteğine, ekibinizin alışkanlığına ve sunucuyu nerede çalıştıracağınıza bağlıdır.

MCP kullanmak güvenli mi?

Protokol tek başına güvenlik sağlamaz; güvenlik sunucunun tasarımına bağlıdır. En az yetki, kullanıcı bazlı yetkilendirme, onay adımları, girdi doğrulama ve denetim kaydı uygulandığında kurumsal kullanım için makul bir zemin oluşur. Dış içerik okuyan araçlarda, metne gömülü yönergelere karşı ek önlem gerekir.

Yerel ve uzak MCP sunucusu arasında nasıl seçim yapılır?

Yerel sunucu, kullanıcının makinesinde standart girdi/çıktı ile çalışır; kurulumu basit ve tek kullanıcılıdır. Uzak sunucu HTTP üzerinden birçok istemciye hizmet verir ve kimlik doğrulama, ölçekleme ve izleme ister. Kurumsal paylaşılan veri için çoğunlukla uzak sunucu mantıklıdır.

Kodlama bilmeyen biri MCP ile çalışabilir mi?

Hazır MCP sunucularını bir yapay zeka uygulamasına ayar dosyası ile bağlamak kodlama gerektirmez. Kendi sistemlerinize özel sunucu yazmak ise programlama bilgisi ister. Teknik olmayan roller, hangi sistemlerin bağlanacağına ve hangi yetkilerin verileceğine karar verirken bu bilgiyi kullanır.

MCP ile Yapay Zekaya Araç ve Veri Bağlama Rehberi