SQL MCP Server: Veritabanını Ajanlara Açmanın Yolu
📋 İçindekiler
-
Açık konuşayım, AZ-500 sınavına hazırlanırken güvenlik monitöring tarafına epey gömülmüştüm, hani log ne anlatıyor, alarm nerede patlıyor, anomali nasıl yakalanıyor gibi konuların içine girdim. Aynı mantık burada da geçiyor — hangi agent hangi tool’u ne zaman çağırdı, kaç kere döndü, hata aldı mı, response time nasıl gitti (inanın bana). Bunları görmeden sağlıklı yorum yapmak zor. Bilhassa de bir şey ters giderse — mesela bir agent normalden 10 kat fazla veri çekmeye başladıysa — sistemin bunu fark edip ses vermesi lazım. OpenTelemetry entegrasyonu sayesinde Grafana ya da Jaeger gibi araçlarla da izleyebiliyorsunuz, yanı illâ Azure ekranlarına mahkûm değilsiniz.
Bakın, burayı atlarsanız yazının kalanı anlamsız kalır.
Bir müşteride bunu zaten yaşamıştık. Application Insights üzerinden DAB’ın REST endpoint’lerini izliyorduk, dolayısıyla MCP endpoint’leri de aynı pipeline’a düşünce ekstra bir monitöring kurma derdi çıkmadı; açık konuşayım, operasyon tarafı biraz nefes aldı.
Eksikler ve Eleştirilerim
Eh, Tamam, güzel tarafları var. Ama birkaç şey de insanı kaşındırıyor (bizzat test ettim)
Şunu fark ettim: Birincisi, dokümantasyon hâlâ biraz zayıf kalıyor. Microsoft’un kendi blog yazısı giriş için fena değil, hatta ilk bakışta baya yol gösteriyor; ama gerçek dünya senaryoları, edge case’ler ve troubleshooting adımları eksik olunca iş biraz dağılıyor, ben de ilk denememde bir RBAC hatasına takıldım ve çözümü bulmak için GitHub Issues’a girmek zorunda kaldım. Resmî docs’ta yoktu. İyileşir mi? Muhtemelen evet, ama şu an erken adopter’lar ufak bir çile çekebiliyor.
İkincisi, MCP çevrei daha tam oturmamış durumda. Bir bakıma, sQL MCP Server kendi işini yapıyor, bunda sorun yok; asıl mesele ona bağlanacak agent tarafının hâlâ gelişiyor olması. Microsoft Foundry dışında MCP’yi native destekleyen agent framework’ü pek az, yanı liste kısa (en azından benim deneyimim böyle). LangChain ve AutoGen tarafında — kendi adıma konuşayım — MCP client desteği var ama production-ready mi diye sorarsanız, hmm, ben biraz temkinliyim. Daha önce Foundry Agent’a MCP ile Özel Araç Bağlamak yazımda bu entegrasyonu detaylı anlatmıştım — ilgileniyorsanız oraya da bir göz atın.
Şimdi gelelim işin can alıcı noktasına.
Kendi deneyimimden konuşuyorum, Üçüncüsü maliyet konusu. Evet, yazılım ücretsiz görünüyor. Ama container çalıştırmak için compute gerekiyor; Azure Container Instances ya da AKS kullanacaksanız, TL bazında düşününce özellikle küçük firmalar için ekstra bir kalem çıkıyor ortaya. Redis cache ayrı, Application Insights ayrı, sonra bir bakıyorsunuz toplam sahip olma maliyeti sessizce büyümüş. Açık konuşayım, bunu baştan hesaplamazsanız sonradan can sıkabiliyor. Bulut Maliyet Optimizasyonu: Hâlâ Geçerli Prensipler yazımda bu tip gizli maliyetleri nasıl yöneteceğinizi anlatmıştım.
İlk Adımlar: Ne Yapmalısınız?
Denemek istiyorsanız, ben olsam şöyle girerdim işe:
- Önce DAB CLI’ı kurun:
dotnet tool install -g Microsoft.DataApiBuilder - Basit bir SQL Server veya PostgreSQL veritabanıyla test config’i oluşturun
- MCP’yi enable edip stdio transport ile lokal agent’ınıza bağlayın
- VS Code extension’ını kurun — geliştirme deneyimini ciddi kolaylaştırıyor (bence en önemlisi)
- RBAC kurallarını sıkılaştırın, entity bazında minimum yetki verin
Burada işin aslı şu: ilk kurulum genelde hızlı gidiyor, ama sonra küçük detaylar çıkıyor (özellikle config tarafında), o yüzden ben önce dar bir senaryoyla başlayıp sonra genişletmeyi daha mantıklı buluyorum.
Bak şimdi, Eğer Azure MCP araçlarını VS Code’da nasıl kullanacağınızı merak ediyorsanız, Azure MCP Araçları Visual Studio 2022’de Yerleşik Geldi yazım size yol gösterecektir.
Benden söylemesi — üretim ortamına almadan önce mutlaka bir staging’de en az 2 hafta test edin. Agent’ların beklenmedik sorgular üretme potansiyeli var (en azından benim deneyimim böyle). RBAC kurallarınızı agent davranışlarına göre iteratif olarak sıkılaştırmanız gerekecek (ben de ilk duyduğumda şaşırmıştım). Bu bir “kur ve unut” teknolojisi değil.
Sıkça Sorulan Sorular
SQL MCP Server sadece Azure’da mı çalışır?
Hayır, aslında çalışmıyor. Container tabanlı olduğu için AWS, GCP gibi herhangi bir bulutta ya da on-premises Kubernetes/Docker ortamında rahatlıkla çalışıyor. Veri lokalizasyonu gibi bir gereksinimin varsa kendi sunucunda da host edebilirsin (bizzat test ettim)
Kullanmak için kod yazmam gerekiyor mu?
Temel senaryolarda gerekmiyor. Hani bir JSON ayar dosyasıyla entity’lerini, izinlerini ve veritabanı bağlantını tanımlıyorsun, bu kadar. Stored procedure çağırmak ya da custom logic eklemek istersen biraz daha konfigürasyon gerekebilir —. Yine de geleneksel CRUD kodu yazmak zorunda kalmıyorsun. Açıkçası bu en büyük avantajlarından biri bence.
Hangi AI agent framework’leri MCP’yi destekliyor?
Araya gireyim: Microsoft Foundry native olarak destekliyor. Bunun dışında LangChain, AutoGen ve Semantic Kernel’da da MCP client desteği ya var ya geliyor. Ama şunu söyleyeyim, ekosistem henüz olgunlaşma aşamasında — her framework’ün MCP implementasyonu aynı seviyede değil, buna dikkat etmek lazım.
SQL MCP Server ücretli mi?
Hayır, açık kaynak ve tamamen ücretsiz. Yanı yazılımın kendisi için hiçbir lisans ücreti ödemiyorsun. Ama tabiî çalıştıracağın compute kaynağı, mesela Redis cache ya da Application Insights gibi monitöring araçları için altyapı maliyetlerin olacak — bunları hesaba katmayı unutma.
Durun, bir saniye.
Prompt injection saldırılarına karşı ne kadar güvenli?
Tecrübeme göre oldukça iyi bir yaklaşım var burada. Entity abstraction sayesinde agent veritabanı şemasını görmüyor, sadece tanımlı tool’ları çağırabiliyor. RBAC ile de hangi role’ün hangi operasyonu yapabileceğini kısıtlıyorsun. Bu, doğrudan SQL erişimine kıyasla çok daha güvenli bir yöntem (kendi tecrübem). Ama şunu da unutmamak lazım — %100 güvenlik diye bir şey yok, RBAC kurallarını dikkatli tasarlamak gerekiyor.
Kaynaklar ve İleri Okuma
SQL MCP Server Resmî Sayfası (Microsoft)
Data API Builder Resmî Dokümantasyonu
Introducing SQL MCP Server — Azure SQL DevBlog - Önce DAB CLI’ı kurun:
Burak S.
Kurumsal veritabanlarını agent’lara açmak konusunda güvenlik hep en büyük soru işareti olmuştu, Data API Builder’ın bu işi nasıl ele aldığını merak ediyorum. Şirketimizdeki legacy SQL Server kurulumlarında da bu çalışır mı acaba?
Hakan G.
Data API Builder tarafını zaten takip ediyordum ama MCP ile bu kadar entegre olduğunu bilmiyordum, güzel bir köprü kurmuşlar. Agent’ların veritabanına doğrudan değil de bu katman üzerinden gitmesi güvenlik açısından da mantıklı. Bu arada şu yazınız da güzeldi: Foundry Agent’a MCP ile Özel Araç Bağlamak — https://www.askinkilic.com.tr/foundry-agenta-mcp-ile-ozel-arac-baglamak/
Arda K.
Data API Builder 2.0 ile gelen bu yaklaşım aklıma hemen kurumsal güvenlik politikalarını nasıl aşacağız sorusunu getirdi, agent’lara veritabanı erişimi açarken izin yönetimi nasıl çalışıyor? Bu arada maliyet tarafını düşünüyorsanız şu yazı da konuyla bağlantılı: https://www.askinkilic.com.tr/ai-maliyet-optimizasyonu-roiyi-gercekten-artirmanin-yolu/
Yorumlar kapalı.







3 comments