Mevcut ASP.NET Core API'lerini MCP ile AI Ajanlarına Güvenli Biçimde Açmak
Bir ASP.NET Core uygulamasına resmi ModelContextProtocol C# SDK ile MCP sunucusu eklemenin pratik yolunu anlatan bir rehber. Mevcut servisleri salt okunur araçlar olarak sunmak, JWT ve rol/scope tabanlı yetkilendirme uygulamak ve bir MCP istemcisiyle test etmek ele alınıyor. Ajanlara neyi açacağınızı kontrollü biçimde belirlemek isteyen .NET ekipleri için faydalı.
Kilit noktalar
- SDK paketi ModelContextProtocol.AspNetCore 2.2.0 olarak kullanılıyor; HTTP transport v2'de varsayılan olarak stateless.
- Araçlar [McpServerToolType] sınıfı ve [McpServerTool] metotlarıyla tanımlanır; WithToolsFromAssembly ile toplu kayıt yapılabilir.
- Yalnızca okuma amaçlı araçlarla başlayın; yazma işlemleri için [Authorize] ve insan onayı akışı ekleyin.
- AddAuthorizationFilters() çağrısı sayesinde yetkisiz araçlar tools/list sonucunda gizlenir.
- MCP endpoint'i MapMcp("/mcp") ile açıp RequireAuthorization ile korumak gerekir.
- Ajan çağrılarını loglamak ve gecikme/hacim takibi yapmak denetim için önemlidir.
Birçok .NET ekibinin ASP.NET Core API'leri zaten iş mantığını ve veritabanı erişimini taşıyor. Şimdi bu yetenekleri, API'yi baştan yazmadan ve ajanlara sınırsız erişim vermeden AI ajanlarına açma ihtiyacı doğuyor. Model Context Protocol (MCP), ajanların araçları keşfedip çağırabilmesi için standart bir yol sunuyor ve yazar bu işi resmi ModelContextProtocol C# SDK'sı ile nasıl yapacağınızı gösteriyor.
Yazıdaki önerilen yaklaşım, mevcut servisleri ince bir MCP katmanında yalnızca salt okunur araçlar olarak sunmak. Araçlar [McpServerTool] ve [McpServerToolType] attribute'larıyla tanımlanıyor, MapMcp ile endpoint açılıyor ve JWT kimlik doğrulaması ile [Authorize] veya scope politikaları üzerinden erişim kısıtlanıyor. Yetkisiz araçlar tools/list çıktısında hiç görünmüyor. Son olarak bir MCP istemcisiyle araç listesi ve çağrı testinin nasıl yapılacağı anlatılıyor. Ayrıntılı kod ve üretim notları için orijinal yazıya göz atmanızı öneririz.
Gerçek dünyada kullanımı
- Sipariş yönetimi API'si olan bir ekibin müşteri destek ajanına sipariş durumunu sorgulama aracı sunması.
- Mevcut iç servisleri kullanan bir kurumsal uygulamada, belirli rollere özel salt okunur MCP araçları oluşturulması.
- Yazma işlemlerinin (ör. sipariş iptali) yalnızca Admin rolündeki kullanıcılar ve denetim kaydıyla açılması.
Neden önemli
Mevcut ASP.NET Core servislerinizi yeniden yazmadan AI ajanlarına kontrollü bir yüzey olarak açabilirsiniz. Yetkilendirme ve doğrulama kurallarınız MCP katmanında da geçerli kalır.
Benzer haberler
- React, .NET 10 ve Microsoft Foundry ile güvenli bir kurumsal chatDEV Community: #dotnet1 gün önce
- Sahte 'evet': .NET 10 MCP sunucusundaki insan onayına yapılan 6 saldırıDEV Community: #dotnet2 gün önce
- Model çalışmadan önce bir Telegram AI asistanının geçmesi gereken altı kontrolDEV Community: #dotnet5 gün önce