İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Yapay Zeka
  • .NET’te MCP Sunucularından Agent Skill Keşfi
Geliştirici Araçları Microsoft Azure Yapay Zeka Agent Skills, Microsoft.Agents.AI.Mcp, Model Context Protocol, progressive disclosure, UseMcpSkills Aşkın KILIÇ 28/07/2026 3 Yorumlar

.NET’te MCP Sunucularından Agent Skill Keşfi

.NET'te MCP Sunucularından Agent Skill Keşfi
📑 İçindekiler
  1. MCP tabanlı skill'ler ne anlama geliyor?
  2. Merkezi dağıtımın getirileri
  3. Başlarken: paketi ekleyip sağlayıcıyı kurmak
  4. Kullanım senaryosu: birden fazla ajan için merkezi skill sunucusu
  5. Kullanım senaryosu: skill'i arşiv olarak güvenli dağıtmak
  6. Arşiv betikleri asla çalıştırılmaz
  7. Kopya yönetmekten kaynak yönetmeye
  8. İlgili İçerikler
  9. Kaynaklar ve İleri Okuma

⏱️ 5 dk okuma📅 28 Temmuz 2026

Microsoft Agent Framework tarafında Agent Skills, artık uygulamanın içine gömülmek yerine bir Model Context Protocol (MCP) sunucusundan dinamik olarak keşfedilebiliyor..NET geliştiricileri için bu yetenek, Microsoft.Agents.AI.Mcp paketiyle birlikte kullanıma sunuldu. Bir ajanı MCP sunucusuna yönlendirdiğinizde, ihtiyaç duyduğu skill’leri talep üzerine oradan çekiyor; yani her ajanın kendi paketinde skill klasörü taşımasına ya da yeni bir dağıtım yapılmasına gerek kalmıyor.

İlgili içerik: MCP ile Dağıtık Agent Skills: Uzman Ajana Alternatif

MCP tabanlı skill’ler ne anlama geliyor?

Bir Agent Skill; talimatlar, kaynaklar ve betiklerden oluşan taşınabilir bir paket. Progressive disclosure (kademeli açığa çıkarma) modeliyle çalışıyor: ajan önce her skill’in kısa bir tanıtımını görüyor, göreve uygun olduğunda ise tam içeriği ve kaynakları yüklüyor.

MCP tabanlı skill’ler aynı prensibi izliyor, ancak içerik yerel diskte ya da kod içinde değil, MCP sunucusunda duruyor. Sunucu, sahip olduğu skill’leri skill://index.json adresindeki bir keşif belgesi üzerinden ilan ediyor. Framework de kimlik doğrulaması yapılmış MCP bağlantısı üzerinden bu içeriği çekiyor.

.NET tarafında iki dağıtım biçimi destekleniyor:

  • skill-md: Sunucu, SKILL.md dosyasını ve yanındaki kaynakları MCP kaynakları olarak sunar. Framework, ajan skill’i yüklerken bu dosyaları teker teker, ihtiyaç oldukça getirir.
  • archive: Skill tek bir arşiv (ZIP, TAR ya da gzip’li TAR) olarak paketlenir. Framework arşivi indirir, denetimli bir dizin altına açar ve içindeki dosyaları sunar.

Her iki tür de aynı builder API üzerinden tüketildiği için ajan tarafındaki kod, paketleme biçimine göre değişmiyor.

Merkezi dağıtımın getirileri

MCP tabanlı skill’lerin ana avantajı, uzmanlık paketini bir kez yazıp birden fazla ajana servis edebilmek. Bir platform ya da alan ekibi skill’leri MCP sunucusuna yayımlar; bağlanan her ajan bunları paketleme veya klasör kopyalama ihtiyacı duymadan alır.

Sunucudaki içerik güncellendiğinde, bağlı ajanlar bir sonraki keşif adımında yeni sürümü görüyor. Politikalar ve playbook’lar her uygulamada ayrı ayrı değil, tek bir sunucu üzerinde evriliyor. Bu da “her ekibin kendi masraf politikası kopyasını tuttuğu” bir düzenden, “tek bir masraf politikası olduğu ve herkesin onu kullandığı” bir düzene geçmek anlamına geliyor.

Uzaktan gelen içeriğe rağmen skill’ler yereldekiyle aynı progressive disclosure disiplinini koruyor; arşiv çıkarma ve betik çalıştırma için ayrı kontroller devreye giriyor.

Başlarken: paketi ekleyip sağlayıcıyı kurmak

MCP tabanlı skill’ler için Microsoft.Agents.AI.Mcp NuGet paketi gerekiyor:

dotnet add package Microsoft.Agents.AI.Mcp --prerelease

Microsoft, API’nin şu an deneysel olduğunu ve MCP skills spesifikasyonu olgunlaştıkça değişebileceğini belirtiyor.

Bir MCP istemcisini skill’leri barındıran sunucuya bağladıktan sonra, AgentSkillsProviderBuilder üzerindeki UseMcpSkills uzantı metoduyla bu bağlantıyı bir kaynak olarak ekliyorsunuz:

using Microsoft.Agents.AI;
using ModelContextProtocol.Client;
await using McpClient client = await McpClient.CreateAsync(
new StdioClientTransport(new()
{
Name = "skills-server",
Command = "dotnet",
Arguments = [skillsServerPath, "--server"],
}));
var skillsProvider = new AgentSkillsProviderBuilder()
.UseMcpSkills(client)
.Build();

Sağlayıcıyı ajana context provider olarak veriyorsunuz; böylece framework, sunucudaki skill’leri ajana tanıtıyor ve ajan bunları yerel skill’lermiş gibi yükleyip okuyabiliyor:

using Azure.AI.OpenAI;
using Azure.Identity;
using OpenAI.Responses;
AIAgent agent = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential())
.GetResponsesClient()
.AsAIAgent(new ChatClientAgentOptions
{
Name = "SkillsAgent",
ChatOptions = new()
{
Instructions = "You are a helpful assistant. Use available skills to answer the user.",
},
AIContextProviders = [skillsProvider],
},
model: deploymentName);
AgentResponse response = await agent.RunAsync(
"Summarize our expense reimbursement limits for international travel.");
Console.WriteLine(response.Text);

skill-md tipindeki bir skill için framework, ajan skill’i yüklediğinde SKILL.md‘yi sunucudan çekiyor. archive tipinde ise indirdiği ve yerelde açtığı arşivi kullanıyor. Referans verilen kaynaklar ise ihtiyaç anında okunuyor.

Kullanım senaryosu: birden fazla ajan için merkezi skill sunucusu

Bir platform ekibinin masraf politikası, olay müdahale runbook’ları ve veri sınıflandırma rehberi gibi operasyonel bilgileri sahiplendiğini düşünelim. Bunlar bir MCP sunucusunda skill-md skill’leri olarak barındırılıyor. Bir finans asistanı, bir on-call yardımcı botu ve bir veri yönetişim ajanı; aynı UseMcpSkills(client) çağrısıyla bu sunucuya bağlanıyor.

Üç ajan da bu skill’leri kendi paketinde taşımıyor. Platform ekibi masraf politikasını sunucuda güncellediğinde, her üç ajan da bir sonraki keşif turunda değişikliği alıyor; ekipler arası koordineli bir sürüm yayınlamaya gerek kalmıyor.

UseMcpSkills, builder’a bir kaynak eklediği için yerel skill’lerle aynı sağlayıcı içinde birleştirilebiliyor. Bir ajan hem kendi dosya tabanlı skill’lerini taşıyabilir hem de sunucudan paylaşılanları çekebilir:

var skillsProvider = new AgentSkillsProviderBuilder()
.UseFileSkill(Path.Combine(AppContext.BaseDirectory, "local-skills"))
.UseMcpSkills(client)
.Build();

Microsoft Foundry Toolbox da bu modele dahil. Kuruluşunuz skill’leri Foundry Skills API üzerinden yönetip bir toolbox’a bağlıyorsa, UseMcpSkills ilgili toolbox’un MCP uç noktasına diğer sunucularda olduğu gibi bağlanıyor. Skill’ler Foundry’de yazılıp sürümleniyor,.NET ajanları ise ek entegrasyon işi olmadan bunları MCP üzerinden keşfediyor.

Kullanım senaryosu: skill’i arşiv olarak güvenli dağıtmak

Bazı skill’ler şablonlar, arama tabloları, kontrol listeleri gibi birçok yardımcı dosyayı bir arada taşır. Bunları tek bir archive girişi olarak servis etmek, paketin tek indirmede iletilmesine olanak tanıyor. Ancak arşiv çıkarma uzaktan gelen içeriği yerel diske yazdığı için sınırlamalar gerekiyor: bir arşiv beklediğinizden büyük olabilir, açıldığında dramatik biçimde şişebilir ya da kabul etmek istemediğiniz kadar çok dosya içerebilir. Sınır olmadığında bozuk veya kötü niyetli bir arşiv; diski, belleği veya CPU’yu tüketebilir.

Bu nedenle AgentMcpSkillsSourceOptions, arşivin çıkarılıp servis edilmeden önce ne kadarını kullanabileceğini net biçimde sınırlamanıza olanak tanıyan seçenekler sunuyor:

using Microsoft.Agents.AI;
var skillsProvider = new AgentSkillsProviderBuilder()
.UseMcpSkills(client, new AgentMcpSkillsSourceOptions
{
ArchiveSkillsDirectory = Path.Combine(AppContext.BaseDirectory, "extracted-skills"),
ArchiveMaxFileCount = 50,
ArchiveMaxSizeBytes = 2 * 1024 * 1024,
ArchiveMaxUncompressedSizeBytes = 4 * 1024 * 1024,
})
.Build();

Seçeneklerin her biri belirli bir istismar sınıfına karşı koruma sağlıyor:

  • ArchiveMaxSizeBytes: İndirilen arşivin boyutunu sınırlar, aşırı büyük yük göndermeye karşı koruma sağlar.
  • ArchiveMaxUncompressedSizeBytes: Açılmış toplam boyutu sınırlar; hat üzerinde küçük ama diskte gigabaytlara varan “decompression bomb” arşivlerine karşı koruma sağlar.
  • ArchiveMaxFileCount: Tek bir arşivin içerebileceği dosya sayısını sınırlar, aşırı dosya sayısına karşı koruma sağlar.

Framework arşivi indirir, bu limitlere göre doğrular, ArchiveSkillsDirectory altına açar ve elde edilen SKILL.md ile kaynakları servis eder. Sınırlardan birini aşan bir arşiv atlanır; güvenilmeyen bir sunucu skill dağıtımını host makineyi bunaltmak için kullanamıyor.

Arşiv betikleri asla çalıştırılmaz

Uzaktan gelen içerik için önemli bir güven sınırı daha var: arşiv tipi skill’ler içindeki betikler asla çalıştırılmıyor. Uzaktaki bir MCP sunucusundan indirilen çalıştırılabilir içerik, tasarım gereği güvenilmez kabul ediliyor. Framework skill’in talimatlarını ve kaynaklarını servis ediyor, ancak betiklerini işletmiyor.

Skill yönetişimi modelinin geri kalanı da geçerliliğini koruyor. load_skill, read_skill_resource ve run_skill_script gibi skill araçları varsayılan olarak onay istiyor ve ajan bir işlem yapmadan önce insan denetimi kontrol noktası sağlıyor.

Kopya yönetmekten kaynak yönetmeye

MCP tabanlı skill’ler, Agent Skills’i uygulama içine gömdüğünüz bir şey olmaktan çıkarıp dağıttığınız bir şeye dönüştürüyor. Skill’i bir kez yazıyor, MCP sunucusunda barındırıyor ve her ajanın talep üzerine keşfetmesine izin veriyorsunuz; merkezi güncelleme, merkezi yönetişim ve aynı tüketim modeli hem skill-md hem de archive için geçerli. Ortak alan bilgisine dayanan çok sayıda ajan geliştiren ekipler için bu, kopyaları yönetmek ile kaynağı yönetmek arasındaki farkı ifade ediyor.

İlgili İçerikler

  • Agent Governance Toolkit ile MCP Güvenliği:.NET’te Yeni Katman
  • Foundry Agent’a MCP ile Özel Araç Bağlamak
  • Visual Studio’da Yerleşik Agent Skills:.NET ve Azure

Kaynaklar ve İleri Okuma

  • devblogs.microsoft.com
  • Discover Agent Skills from MCP servers in.NET – Microsoft DevBlogs
  • MCP tabanlı skill’ler dokümantasyonu (C#)
  • Örnek proje: Agent_Step06_McpBasedSkills
  • Microsoft Foundry’de Skills
  • agentskills.io
  • Agent Skills for.NET Is Now Released
  • Agent Skills in.NET: three ways to author, one provider to run them
  • Agent Skills for.NET Kararlı Sürümde: Uzmanlık Artık Paketli
  • .NET Agent Skills: Üç Yöntem, Tek Sağlayıcı
🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

Ajanik Yapay Zekâ: “The Shift” Podcast Notları
Ajanik Yapay Zekâ: “The Shift” Podcast Notları11 Mar 2026
Gemini ile Hayatını Düzenle: 8 Yapay Zeka Destekli İpucu
Gemini ile Hayatını Düzenle: 8 Yapay Zeka Destekli İpucu25 Nis 2026
Track organization code quality trends
Track organization code quality trends24 Ağu 2026
Microsoft JDBC Driver: ResultSet ve Bulk Copy Optimizasyonu
Microsoft JDBC Driver: ResultSet ve Bulk Copy Optimizasyonu8 Eki 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket Agent Skills Microsoft.Agents.AI.Mcp Model Context Protocol progressive disclosure UseMcpSkills
Önceki yazı

Azure App Service Linux’ta Startup Log Komutları

Sonraki yazı

GitHub Actions Şüpheli Workflow’ları Onaya Alıyor

İlginizi Çekebilir

Azure AI Speech LLM 09-2026: 25 Yeni Dil ve 2x Hız
Aşkın KILIÇ 0

Azure AI Speech LLM 09-2026: 25 Yeni Dil ve 2x Hız

26/10/2026
Microsoft SQL Agent Skills, Azure SQL'i Agent'a Öğretir
Aşkın KILIÇ 0

Microsoft SQL Agent Skills, Azure SQL’i Agent’a Öğretir

26/10/2026
.NET Brotli Açığı: 8, 9, 10 ve 11 İçin OOB Yama
Aşkın KILIÇ 0

.NET Brotli Açığı: 8, 9, 10 ve 11 İçin OOB Yama

26/10/2026

3 comments

comments user
Tolga F. 28/07/2026 18:02

Dinamik keşif kısmı gerçekten işe yarar bir özellik, her skill’i elle tanımlamak ciddi bir zaman kaybıydı. Peki ya keşfedilen skill’lerde versiyon çakışması olursa nasıl handle ediliyor, bunu deneyen var mı?

comments user
Cem A. 28/07/2026 19:23

MCP entegrasyonu gerçekten güzel bir adım, özellikle skill’leri runtime’da keşfedebilmek büyük esneklik sağlıyor. Peki bu dinamik keşif performans açısından nasıl bir maliyet getiriyor, her çağrıda mı keşif yapılıyor yoksa bir caching mekanizması var mı?

comments user
Ebru G. 28/07/2026 19:57

Dinamik keşif kısmı gerçekten işe yarar bir özellik, önceden statik tanımlamak yerine ihtiyaç anında çekmek çok daha temiz bir mimari sunuyor. Acaba bu yaklaşımda skill sayısı arttıkça performans üzerinde belirgin bir etki oluyor mu merak ettim. Bu arada Copilot SDK tarafındaki gelişmeleri anlatan yazınız da konuyla güzel bağlanıyor: https://www.askinkilic.com.tr/visual-studio-temmuz-guncellemesi-copilot-sdk-tabanli-yeni/

Yorumlar kapalı.

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Azure AI Speech LLM 09-2026: 25 Yeni Dil ve 2x Hız
    26/10/2026 Azure AI Speech LLM 09-2026: 25 Yeni Dil ve 2x Hız
  • PHP2Shell: Azure DevOps Ortamlarında Kontrol Listesi
    26/10/2026 PHP2Shell: Azure DevOps Ortamlarında Kontrol Listesi
  • Microsoft SQL Agent Skills, Azure SQL'i Agent'a Öğretir
    26/10/2026 Microsoft SQL Agent Skills, Azure SQL’i Agent’a Öğretir
  • .NET Brotli Açığı: 8, 9, 10 ve 11 İçin OOB Yama
    26/10/2026 .NET Brotli Açığı: 8, 9, 10 ve 11 İçin OOB Yama
  • GitHub EMU silme hatası: etkilenen hesaplar ve çözüm
    25/10/2026 GitHub EMU silme hatası: etkilenen hesaplar ve çözüm
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • Azure Developer CLI 1.34: azure.yaml Katmanları ve
    04/10/2026 Azure Developer CLI 1.34: azure.yaml Katmanları ve
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • Artımlı Anlık Görüntü: Anında Geri Yükleme
    09/03/2026 Artımlı Anlık Görüntü: Anında Geri Yükleme
  • Bulut Sunucu Altyapısı
    09/03/2026 Microsoft Sovereign Cloud: İzolasyonda Güvenli Bulut
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL CI/CD CodeQL code review copilot Copilot CLI DevOps Entra ID geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry MSVC otomasyon performans Pull Request RAG verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 507 yazı 🏗️ Bulut Altyapı 407 yazı 🤖 Yapay Zeka 331 yazı ☁️ Microsoft Azure 279 yazı 🔧 DevOps 277 yazı 🔒 Güvenlik & Kimlik 223 yazı 🏢 Kurumsal Teknoloji 107 yazı 📊 Veri & Analitik 78 yazı 🐳 Konteyner & Kubernetes 62 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Azure App Service Linux’...
    GitHub Actions Şüpheli Workflo... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS