API mi MCP mi? Yapay zeka entegrasyonunda iki katmanın farkı
API ile Model Context Protocol (MCP) arasındaki farklar: kimin için tasarlandıkları, nasıl keşfedildikleri ve yapay zeka entegrasyonunda hangisinin seçileceği.
Aynı soruya iki farklı katman: biri sistemler, diğeri modeller için
API (uygulama programlama arayüzü), bir yazılımın başka bir yazılıma hangi işlemleri hangi biçimde sunduğunu tanımlayan sözleşmedir. Bir sipariş sisteminin dışarıya açtığı uç noktalar, kabul ettiği parametreler, döndürdüğü veri yapısı ve hata kodları bu sözleşmenin parçasıdır. API'yi tüketen taraf genellikle bir geliştiricinin yazdığı koddur: hangi uç noktanın ne zaman çağrılacağına kod karar verir.
MCP (Model Context Protocol) ise büyük dil modeli tabanlı uygulamaların dış araçlara, veri kaynaklarına ve hazır istem şablonlarına standart bir yoldan bağlanması için tanımlanmış açık bir protokoldür. MCP'de araçları tüketen taraf yalnızca kod değildir: dil modeli, sunucunun bildirdiği araçların açıklamalarını okur ve kullanıcının isteğine göre hangi aracın çağrılacağını önerir.
Bu yüzden "API mi MCP mi" sorusu genellikle eksik kurulur. MCP, API'nin yerini almaz; tipik bir MCP sunucusu arka planda mevcut bir API'yi çağırır ve onu bir modelin anlayıp kullanabileceği biçimde paketler. Asıl soru şudur: Bu entegrasyonu kim kullanacak, deterministik bir kod mu, yoksa kararı bağlama göre veren bir yapay zeka asistanı mı?
MCP'nin teknik iskeleti: host, istemci, sunucu
MCP belirtimi üç rol tanımlar. Host, kullanıcının etkileşimde bulunduğu yapay zeka uygulamasıdır; güvenlik politikalarını, kullanıcı onaylarını ve modelle bütünleşmeyi yönetir. İstemci, host içinde çalışır ve tek bir sunucuyla oturum sürdürür. Sunucu ise belirli bir yeteneği, örneğin bir dosya sistemine, veritabanına ya da harici bir servise erişimi sunar.
Sunucuların sunduğu temel yapı taşları şunlardır: • Araçlar (tools): Modelin çağırabileceği işlevler; her biri ad, açıklama ve girdi şemasıyla tanımlanır. • Kaynaklar (resources): Modele bağlam olarak verilebilecek dosya, kayıt gibi veriler. • İstemler (prompts): Kullanıcının seçebileceği hazır istem şablonları.
İletişim JSON-RPC 2.0 mesajlarıyla yürür. Belirtim iki standart taşıma tanımlar: sunucunun yerel alt süreç olarak çalıştığı stdio ve uzak sunucular için Streamable HTTP. Oturum başında istemci ile sunucu desteklediği yetenekleri karşılıklı bildirir (capability negotiation); istemci tools/list isteğiyle araç listesini alır, tools/call isteğiyle bir aracı çalıştırır.
Ölçüt ölçüt API ve MCP
Asıl tüketici: API, onu çağıran kodu yazan geliştiriciye göre tasarlanır. / MCP, araç açıklamalarını okuyup karar veren dil modeline ve onu barındıran uygulamaya göre tasarlanır.
Keşif: API'nin neler yaptığı dokümantasyondan ya da OpenAPI gibi bir tanım dosyasından öğrenilir ve entegrasyon kodu buna göre önceden yazılır. / MCP'de istemci çalışma anında sunucuya hangi araçların olduğunu sorar; araç listesi değişince sunucu bildirim gönderebilir.
Kapsam: API her türlü sistemler arası iletişim için kullanılır: mobil uygulama ile arka uç, iki kurum sistemi, ödeme altyapısı. / MCP dar bir amaca odaklanır: yapay zeka uygulamasına bağlam ve eylem yeteneği kazandırmak.
Sözleşme biçimi: REST, GraphQL, gRPC, SOAP gibi farklı stillerle tasarlanabilir; uç nokta ve veri modeli tamamen sağlayıcıya aittir. / Mesaj biçimi tek bir protokolle sabittir; sağlayıcı yalnızca araçlarını, kaynaklarını ve istemlerini tanımlar.
Karar verme: API çağrısının ne zaman yapılacağı koddaki iş mantığına bağlıdır, aynı girdi aynı çağrıyı üretir. / MCP aracının çağrılıp çağrılmayacağına bağlama göre model karar verir; bu yüzden sonuç olasılıksal davranış taşır ve insan onayı önem kazanır.
Yeniden kullanım: Her yapay zeka uygulaması için ayrı bir API entegrasyonu yazmak gerekebilir. / Bir kez yazılan MCP sunucusu, protokolü destekleyen farklı host uygulamalarında kullanılabilir.
Örnek senaryo: müşteri kaydını sorgulayan asistan
Örneğin bir şirket, satış ekibinin yapay zeka asistanına "Bu müşterinin açık siparişleri neler?" diye sorabilmesini istiyor. Sipariş sistemi zaten bir REST API sunuyor.
Yalnız API ile kurulan yolda geliştirici, asistan uygulamasının içine bu API'yi çağıran kodu yazar, modelin hangi durumda bu kodu tetikleyeceğini uygulamaya özel bir araç tanımıyla (function calling) bildirir. Asistan başka bir uygulamaya taşındığında aynı bağlantı yeniden yazılır.
MCP ile kurulan yolda ekip, sipariş API'sini saran bir MCP sunucusu yazar. Sunucu, "get_customer_orders" gibi bir aracı, ne yaptığını anlatan açıklama ve girdi şemasıyla bildirir. Protokolü destekleyen her host bu sunucuya bağlanabilir; model aracı listede görür, gerekirse kullanıcı onayıyla çağırır. Sipariş API'si hiç değişmez: MCP, onun önüne konan bir uyarlama katmanıdır.
İki yolun ortak gereksinimi aynıdır: yetkilendirme, girdi doğrulama, hız sınırı ve kayıt tutma API tarafında sağlam değilse, MCP sunucusu bu açıkları modele de taşır.
Hangi durumda hangisi?
Doğrudan API entegrasyonu şu durumlarda daha uygun düşer: • Akış tamamen önceden tanımlıysa ve hangi çağrının ne zaman yapılacağı kodla belirlenebiliyorsa (ödeme alma, stok güncelleme, toplu veri aktarımı). • Arada bir dil modeli yoksa; iki sistem birbirleriyle konuşuyorsa. • Gecikme ve maliyet kritikse ve modelin araç seçimine yer bırakmak gereksizse.
MCP şu durumlarda öne çıkar: • Aynı yeteneği birden fazla yapay zeka uygulamasına (asistan, kod editörü, iç sohbet aracı) sunmak istiyorsanız. • Kullanıcının serbest metinle istediği işi, modelin uygun aracı seçerek yapması bekleniyorsa. • Kurum içindeki dağınık veri kaynaklarını tek tip bir arayüzle yapay zekaya açmak ve erişimi merkezden denetlemek istiyorsanız.
Olgun kurumsal mimarilerde ikisi katmanlar halinde birlikte bulunur: sistemler birbirleriyle API üzerinden konuşur, yapay zeka uygulamaları ise bu API'lere MCP sunucuları aracılığıyla erişir.
Sık yapılan hatalar
MCP'yi API'nin halefi sanmak: Bir sistemin dış dünyaya açılması için hâlâ iyi tasarlanmış bir API gerekir. API'si zayıf bir sistem için MCP sunucusu yazmak, sorunları yalnızca bir katman yukarı taşır.
API'yi olduğu gibi araç listesine dökmek: Yüzlerce uç noktayı tek tek araca çevirmek modelin doğru aracı seçmesini zorlaştırır. İyi bir MCP sunucusu, kullanıcının işine karşılık gelen az sayıda, açıklaması net araç sunar.
Araç açıklamalarını ihmal etmek: Model, aracı açıklamasına bakarak seçer. "veri getirir" gibi belirsiz bir açıklama yanlış çağrılara yol açar; ne yaptığı, ne zaman kullanılmaması gerektiği ve parametrelerin anlamı açık yazılmalıdır.
Güvenliği modele bırakmak: Belirtim, araç çağrılarında kullanıcının onay verip reddedebileceği bir insan kontrolü önerir. Silme, ödeme, toplu e-posta gibi geri dönüşü zor işlemler onaysız çalıştırılmamalı; yetki her zaman sunucu ve API tarafında denetlenmelidir.
Bu konular Mindset programlarında nerede çalışılır?
API Tasarımı ve Yönetimi eğitimi, API tasarım prensipleri, versiyonlama, API güvenliği ve OpenAPI ile dokümantasyon başlıklarıyla entegrasyonun temelini oluşturan sözleşme tarafını ele alır; arka uç geliştiricileri ve entegrasyon ekipleri için uygundur.
Model Context Protocol (MCP) ile Araç Entegrasyonu eğitimi MCP mimarisini, sunucu geliştirmeyi, istemci tarafı entegrasyonu ve güvenlik ile yetkilendirmeyi işler. Model Bağlamı Protokolü (MCP) ile Kurumsal Veri Entegrasyonu ise kurumsal veri kaynaklarının bağlanmasına, kimlik, yetki ve denetim konularına odaklanır; iç sistemlerini yapay zeka asistanlarına açmak isteyen BT ve veri ekipleri için doğrudan uygulanabilir bir çerçeve sunar.
İlgili Mindset programı
Model Context Protocol (MCP) ile Araç Entegrasyonu
Sık sorulan sorular
MCP kullanmak için mevcut API'mi değiştirmem gerekir mi?
Genellikle gerekmez. MCP sunucusu mevcut API'yi arka planda çağıran bir uyarlama katmanı olarak yazılır. Ancak API'nin yetkilendirme modeli, hata mesajları ve döndürdüğü veri yapısı modele uygun değilse sunucuda dönüşüm yapmanız ya da bazı uç noktaları sadeleştirmeniz gerekebilir.
MCP, REST API'nin yerini alır mı?
Hayır. MCP, bir yapay zeka uygulamasının araçlara ve veri kaynaklarına ortak bir protokolle erişmesini sağlar; araçların arkasında çoğunlukla yine bir API çalışır. API sistemlerin birbirleriyle konuşma biçimidir, MCP ise bu erişimi modelin keşfedip kullanabileceği biçimde sunan bir katmandır. İkisi birlikte kullanılır, biri diğerini ortadan kaldırmaz.
MCP sunucusu yerel mi çalışır, uzakta mı?
İkisi de mümkündür. Belirtimdeki stdio taşımasında istemci sunucuyu kendi makinesinde alt süreç olarak başlatır; dosya sistemi gibi yerel kaynaklar için kullanışlıdır. Streamable HTTP taşımasında sunucu bağımsız bir servis olarak çalışır ve birden çok istemciye hizmet verebilir; bu durumda kimlik doğrulama ve kaynak denetimi zorunlu hale gelir.
MCP güvenli mi, hangi riskler var?
Risk protokolden çok uygulamadan doğar. Modelin yanlış aracı çağırması, araç açıklamalarına gizlenmiş kötü niyetli yönergeler ve gereğinden geniş yetkiler başlıca risklerdir. Sunucuda girdi doğrulama, en az yetki ilkesi, hız sınırı ve kayıt tutma; host tarafında ise hassas işlemler için kullanıcı onayı uygulanmalıdır.
Önce API mi öğrenmeliyim, MCP mi?
Önce API. HTTP istekleri, kimlik doğrulama, veri biçimleri ve hata yönetimini bilmeden sağlam bir MCP sunucusu yazmak zordur, çünkü sunucuların büyük bölümü bir API'yi sarmalar. API temelini kurduktan sonra MCP'de araç tasarımı, açıklama yazımı ve insan onayı gibi modele özgü konulara geçmek daha verimli olur.
İlgili rehberler
İlgili eğitimler
Kategori: Yapay Zeka ve Dijital Dönüşüm, Yazılım Geliştirme