<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Azure-Sdk | The .NET Blog</title><link>https://thedotnetblog.com/tr/tags/azure-sdk/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>tr</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Sat, 25 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tr/tags/azure-sdk/index.xml" rel="self" type="application/rss+xml"/><item><title>Azure MCP Server Artık .mcpb — Herhangi Bir Runtime Olmadan Yükle</title><link>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</guid><description>Azure MCP Server artık MCP Bundle (.mcpb) olarak kullanılabilir — indirin, Claude Desktop'a sürükleyin ve bitti. Node.js, Python veya .NET gerekmiyor.</description><content:encoded>&lt;p&gt;&lt;em&gt;Bu gönderi otomatik olarak çevrilmiştir. Orijinal sürüm için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;MCP sunucularını kurarken can sıkıcı olan ne olduğunu biliyor musunuz? Bir runtime gerekiyordu. npm sürümü için Node.js, pip/uvx için Python, dotnet varyantı için .NET SDK.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;Azure MCP Server bunu değiştirdi&lt;/a&gt;. Artık &lt;code&gt;.mcpb&lt;/code&gt; — MCP Bundle — olarak kullanılabilir ve kurulum sürükle-bıraktır.&lt;/p&gt;
&lt;h2 id="mcp-bundle-nedir"&gt;MCP Bundle Nedir?&lt;/h2&gt;
&lt;p&gt;VS Code uzantısı (&lt;code&gt;.vsix&lt;/code&gt;) veya tarayıcı uzantısı (&lt;code&gt;.crx&lt;/code&gt;) gibi düşünün, ama MCP sunucuları için. &lt;code&gt;.mcpb&lt;/code&gt; dosyası, sunucu ikilisini ve tüm bağımlılıklarını içeren bağımsız bir ZIP arşividir.&lt;/p&gt;
&lt;h2 id="nasıl-kurulur"&gt;Nasıl Kurulur&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. Platformunuz için bundle&amp;rsquo;ı indirin&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server"&gt;GitHub Releases sayfasına&lt;/a&gt; gidin ve OS ve mimarinize uygun &lt;code&gt;.mcpb&lt;/code&gt; dosyasını indirin.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Claude Desktop&amp;rsquo;a kurun&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En kolay yol: Uzantılar ayarları sayfasındayken (&lt;code&gt;☰ → Dosya → Ayarlar → Uzantılar&lt;/code&gt;) &lt;code&gt;.mcpb&lt;/code&gt; dosyasını Claude Desktop penceresine sürükleyip bırakın. Sunucu ayrıntılarını inceleyin, Yükle&amp;rsquo;ye tıklayın, onaylayın.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Azure&amp;rsquo;da kimlik doğrulaması yapın&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;az login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="başlamak-için"&gt;Başlamak için&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;İndirme&lt;/strong&gt;: &lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server-"&gt;GitHub Releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Depo&lt;/strong&gt;: &lt;a href="https://aka.ms/azmcp"&gt;aka.ms/azmcp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Belgeler&lt;/strong&gt;: &lt;a href="https://aka.ms/azmcp/docs"&gt;aka.ms/azmcp/docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;Tam makaleye&lt;/a&gt; bakın.&lt;/p&gt;</content:encoded></item><item><title>Azure MCP Server 2.0 Yayınlandı — Self-Hosted Agentic Bulut Otomasyonu Artık Burada</title><link>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/</guid><description>Azure MCP Server 2.0, self-hosted uzak dağıtımlar, 57 Azure servisi genelinde 276 araç ve kurumsal düzeyde güvenlikle kararlı sürüme ulaştı — agentic iş akışları geliştiren .NET geliştiricileri için önemli olan her şey burada.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Son zamanlarda MCP ve Azure ile bir şeyler geliştirdiyseniz, yerel deneyimin gayet iyi çalıştığını muhtemelen zaten biliyorsunuzdur. Bir MCP server bağlayın, AI agent&amp;rsquo;ınızın Azure kaynaklarıyla konuşmasına izin verin, devam edin. Ama bu kurulumu bir ekip genelinde paylaşmanız gerektiğinde? İşte orada işler karmaşıklaşıyordu.&lt;/p&gt;
&lt;p&gt;Artık değil. Azure MCP Server &lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/"&gt;2.0 kararlı sürüme ulaştı&lt;/a&gt; ve başlık özelliği tam olarak kurumsal ekiplerin istediği şey: &lt;strong&gt;self-hosted uzak MCP server desteği&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="azure-mcp-server-nedir"&gt;Azure MCP Server nedir?&lt;/h2&gt;
&lt;p&gt;Kısa bir hatırlatma. Azure MCP Server, &lt;a href="https://modelcontextprotocol.io/docs/getting-started/intro"&gt;Model Context Protocol&lt;/a&gt; spesifikasyonunu uygular ve Azure yeteneklerini AI agent&amp;rsquo;larının çağırabileceği yapılandırılmış, keşfedilebilir araçlar olarak sunar. Agent&amp;rsquo;ınız ile Azure arasında standartlaştırılmış bir köprü olarak düşünebilirsiniz — sağlama, dağıtım, izleme, tanılama, hepsi tek tutarlı bir arayüz üzerinden.&lt;/p&gt;
&lt;p&gt;Rakamlar kendisi konuşuyor: &lt;strong&gt;57 Azure servisi genelinde 276 MCP aracı&lt;/strong&gt;. Bu ciddi bir kapsam.&lt;/p&gt;
&lt;h2 id="büyük-haber-self-hosted-uzak-dağıtımlar"&gt;Büyük haber: self-hosted uzak dağıtımlar&lt;/h2&gt;
&lt;p&gt;Şöyle ki. MCP&amp;rsquo;yi kendi makinenizde yerel olarak çalıştırmak geliştirme ve deneyler için sorun değil. Ama gerçek bir ekip senaryosunda şunlara ihtiyacınız var:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Geliştiriciler ve dahili agent sistemleri için paylaşımlı erişim&lt;/li&gt;
&lt;li&gt;Merkezi yapılandırma (tenant bağlamı, abonelik varsayılanları, telemetri)&lt;/li&gt;
&lt;li&gt;Kurumsal ağ ve politika sınırları&lt;/li&gt;
&lt;li&gt;CI/CD pipeline&amp;rsquo;larına entegrasyon&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Azure MCP Server 2.0 tüm bunları ele alıyor. HTTP tabanlı taşıma, uygun kimlik doğrulama ve tutarlı yönetişimle merkezi olarak yönetilen bir dahili servis olarak dağıtabilirsiniz.&lt;/p&gt;
&lt;p&gt;Kimlik doğrulama için iki sağlam seçenek var:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Managed Identity&lt;/strong&gt; — &lt;a href="https://aka.ms/azmcp/self-host/foundry"&gt;Microsoft Foundry&lt;/a&gt; ile birlikte çalışırken&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On-Behalf-Of (OBO) akışı&lt;/strong&gt; — Azure API&amp;rsquo;lerini oturum açmış kullanıcının bağlamını kullanarak çağıran OpenID Connect delegasyonu&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Bu OBO akışı, .NET geliştiricileri olarak bizim için özellikle ilginç. Agentic iş akışlarınızın aşırı ayrıcalıklı bir servis hesabı yerine kullanıcının gerçek izinleriyle çalışabileceği anlamına geliyor. En az ayrıcalık ilkesi, doğrudan yerleşik.&lt;/p&gt;
&lt;h2 id="güvenlik-güçlendirmesi"&gt;Güvenlik güçlendirmesi&lt;/h2&gt;
&lt;p&gt;Bu yalnızca bir özellik sürümü değil — aynı zamanda bir güvenlik sürümü. 2.0 sürümü şunları ekliyor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Daha güçlü endpoint doğrulaması&lt;/li&gt;
&lt;li&gt;Sorgu odaklı araçlarda injection kalıplarına karşı koruma&lt;/li&gt;
&lt;li&gt;Geliştirme ortamları için daha sıkı izolasyon kontrolleri&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MCP&amp;rsquo;yi paylaşımlı bir servis olarak sunacaksanız, bu güvenceler önemli. Çok önemli.&lt;/p&gt;
&lt;h2 id="nerede-kullanabilirsiniz"&gt;Nerede kullanabilirsiniz?&lt;/h2&gt;
&lt;p&gt;İstemci uyumluluk hikayesi geniş. Azure MCP Server 2.0 şunlarla çalışıyor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IDE&amp;rsquo;ler&lt;/strong&gt;: VS Code, Visual Studio, IntelliJ, Eclipse, Cursor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CLI agent&amp;rsquo;ları&lt;/strong&gt;: GitHub Copilot CLI, Claude Code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bağımsız&lt;/strong&gt;: basit kurulumlar için yerel server&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted uzak&lt;/strong&gt;: 2.0&amp;rsquo;ın yeni yıldızı&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ayrıca düzenlenmiş dağıtımlar için kritik olan Azure US Government ve 21Vianet tarafından işletilen Azure için sovereign bulut desteği de var.&lt;/p&gt;
&lt;h2 id="bu-net-geliştiricileri-için-neden-önemli"&gt;Bu .NET geliştiricileri için neden önemli&lt;/h2&gt;
&lt;p&gt;.NET ile agentic uygulamalar geliştiriyorsanız — ister Semantic Kernel, ister Microsoft Agent Framework, ister kendi orkestrasyon çözümünüz — Azure MCP Server 2.0, agent&amp;rsquo;larınızın Azure altyapısıyla etkileşime geçmesi için üretime hazır bir yol sunuyor. Özel REST wrapper&amp;rsquo;ları yok. Servise özgü entegrasyon kalıpları yok. Sadece MCP.&lt;/p&gt;
&lt;p&gt;Birkaç gün önce yayınlanan &lt;a href="https://devblogs.microsoft.com/azure-sdk/mcp-as-easy-as-1-2-3-introducing-the-fluent-api-for-mcp-apps/"&gt;MCP Apps için fluent API&lt;/a&gt; ile birleşince .NET MCP ekosistemi hızla olgunlaşıyor.&lt;/p&gt;
&lt;h2 id="başlarken"&gt;Başlarken&lt;/h2&gt;
&lt;p&gt;Kendi yolunuzu seçin:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp"&gt;GitHub Repo&lt;/a&gt;&lt;/strong&gt; — kaynak kodu, dokümantasyon, her şey&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/download/docker"&gt;Docker Image&lt;/a&gt;&lt;/strong&gt; — container&amp;rsquo;lı dağıtım&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/download/vscode"&gt;VS Code Extension&lt;/a&gt;&lt;/strong&gt; — IDE entegrasyonu&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/self-host"&gt;Self-hosting rehberi&lt;/a&gt;&lt;/strong&gt; — 2.0&amp;rsquo;ın öne çıkan özelliği&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;Azure MCP Server 2.0, demoda gösterişli görünmeyen ama pratikte her şeyi değiştiren altyapı yükseltmesi türünden. Uygun kimlik doğrulama, güvenlik güçlendirmesi ve sovereign bulut desteğiyle self-hosted uzak MCP, gerçek ekiplerin Azure üzerinde gerçek agentic iş akışları oluşturması için hazır olduğu anlamına geliyor. &amp;ldquo;Kurumsal kullanıma hazır&amp;rdquo; sinyalini bekliyordunuz — işte bu.&lt;/p&gt;</content:encoded></item><item><title>MCP Uygulamaları Fluent API Kazandı — .NET'te Üç Adımda Zengin AI Araç Arayüzleri Oluşturun</title><link>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/mcp-fluent-api-azure-functions-dotnet/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/mcp-fluent-api-azure-functions-dotnet/</guid><description>Azure Functions'daki MCP Apps için yeni fluent yapılandırma API'si, herhangi bir .NET MCP aracını yalnızca birkaç satır kodla görünümler, izinler ve CSP politikaları olan tam bir uygulamaya dönüştürmenizi sağlar.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/mcp-fluent-api-azure-functions-dotnet/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;MCP araçları, AI agent&amp;rsquo;larına yetenekler kazandırmak için harika. Peki ya aracınızın kullanıcıya bir şey göstermesi gerekiyorsa — bir dashboard, bir form, etkileşimli bir görselleştirme? MCP Apps tam bu noktada devreye giriyor ve çok daha kolay hale geldi.&lt;/p&gt;
&lt;p&gt;Azure SDK ekibinden Lilian Kasem, .NET Azure Functions&amp;rsquo;daki MCP Apps için &lt;a href="https://devblogs.microsoft.com/azure-sdk/mcp-as-easy-as-1-2-3-introducing-the-fluent-api-for-mcp-apps/"&gt;yeni fluent yapılandırma API&amp;rsquo;sini tanıttı&lt;/a&gt; ve bu, neden başından beri bu kadar basit olmadığını düşündüren türden bir geliştirici deneyimi iyileştirmesi.&lt;/p&gt;
&lt;h2 id="mcp-apps-nedir"&gt;MCP Apps Nedir?&lt;/h2&gt;
&lt;p&gt;MCP Apps, araçların kendi UI görünümlerini, statik varlıklarını ve güvenlik kontrollerini taşımasına izin vererek Model Context Protocol&amp;rsquo;ü genişletir. MCP aracınız yalnızca metin döndürmek yerine tam HTML deneyimleri render edebilir — etkileşimli dashboard&amp;rsquo;lar, veri görselleştirmeleri, yapılandırma formları — bunların hepsi AI agent&amp;rsquo;ları tarafından çağrılabilir ve MCP istemcileri tarafından kullanıcılara sunulur.&lt;/p&gt;
&lt;p&gt;Sorun şuydu: tüm bunları manuel olarak bağlamak MCP spesifikasyonunu yakından bilmeyi gerektiriyordu: &lt;code&gt;ui://&lt;/code&gt; URI&amp;rsquo;leri, özel mime türleri, araçlar ve kaynaklar arasında metadata koordinasyonu. Zor değil, ama zahmetli.&lt;/p&gt;
&lt;h2 id="üç-adımda-fluent-api"&gt;Üç Adımda Fluent API&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Adım 1: Fonksiyonunuzu tanımlayın.&lt;/strong&gt; Standart bir Azure Functions MCP aracı:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;[Function(nameof(HelloApp))]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;HelloApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt; [McpToolTrigger(&amp;#34;HelloApp&amp;#34;, &amp;#34;A simple MCP App that says hello.&amp;#34;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;ToolInvocationContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Hello from app&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Adım 2: Bir MCP App&amp;rsquo;e yükseltin.&lt;/strong&gt; Program başlatmanızda:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ConfigureMcpTool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;HelloApp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AsMcpApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;assets/hello-app.html&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Hello App&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithPermissions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;McpAppPermissions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ClipboardWrite&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="n"&gt;McpAppPermissions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ClipboardRead&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithCsp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;csp&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;csp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AllowBaseUri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://www.microsoft.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ConnectTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://www.microsoft.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Adım 3: HTML görünümünüzü ekleyin.&lt;/strong&gt; İhtiyacınız olan herhangi bir UI ile &lt;code&gt;assets/hello-app.html&lt;/code&gt; dosyasını oluşturun.&lt;/p&gt;
&lt;p&gt;Hepsi bu kadar. Fluent API tüm MCP spesifikasyon altyapısını halleder — sentetik kaynak fonksiyonu oluşturma, doğru mime türünü ayarlama, aracınızı görünümüne bağlayan metadata&amp;rsquo;yı ekleme.&lt;/p&gt;
&lt;h2 id="api-yüzeyi-iyi-tasarlanmış"&gt;API Yüzeyi İyi Tasarlanmış&lt;/h2&gt;
&lt;p&gt;Gerçekten beğendiğim birkaç şey:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Görünüm kaynakları esnektir.&lt;/strong&gt; HTML&amp;rsquo;i diskteki dosyalardan sunabilir veya kendi kendine yetişen dağıtımlar için kaynakları doğrudan assembly&amp;rsquo;nize gömebilirsiniz:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;McpViewSource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FromFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;assets/my-view.html&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;McpViewSource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FromEmbeddedResource&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;MyApp.Resources.view.html&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;CSP kompozisyona uygundur.&lt;/strong&gt; Uygulamanızın ihtiyaç duyduğu kaynakları açıkça beyaz listeye alırsınız, en az ayrıcalık ilkelerini izleyerek. &lt;code&gt;WithCsp&lt;/code&gt;&amp;lsquo;yi birden fazla kez çağırın ve kaynaklar birikir:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithCsp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;csp&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;csp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ConnectTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://api.example.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LoadResourcesFrom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://cdn.example.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AllowFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://youtube.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Görünürlük kontrolü.&lt;/strong&gt; Bir aracı yalnızca LLM&amp;rsquo;ye görünür, yalnızca host UI&amp;rsquo;a görünür veya her ikisine de görünür yapabilirsiniz. Yalnızca UI render eden ve model tarafından çağrılmaması gereken bir araç mı istiyorsunuz? Kolay:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithVisibility&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;McpVisibility&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;App&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Yalnızca UI, modelden gizli&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="başlarken"&gt;Başlarken&lt;/h2&gt;
&lt;p&gt;Preview paketini ekleyin:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Mcp --version 1.5.0-preview.1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Zaten Azure Functions ile MCP araçları oluşturuyorsanız, bu yalnızca bir paket güncellemesi. Konsepte yeniyseniz &lt;a href="https://learn.microsoft.com/azure/azure-functions/scenario-mcp-apps?tabs=bash%2Clinux&amp;amp;pivots=programming-language-csharp"&gt;MCP Apps hızlı başlangıç kılavuzu&lt;/a&gt; başlamak için en iyi yer.&lt;/p&gt;
&lt;h2 id="son-söz"&gt;Son Söz&lt;/h2&gt;
&lt;p&gt;MCP Apps, AI araçlama alanındaki daha heyecan verici gelişmelerden biri — yalnızca &lt;em&gt;işler yapan&lt;/em&gt; değil, kullanıcılara &lt;em&gt;şeyler gösterebilen&lt;/em&gt; araçlar. Fluent API protokol karmaşıklığını ortadan kaldırır ve önemli olan şeye odaklanmanızı sağlar: aracınızın mantığı ve UI&amp;rsquo;ı.&lt;/p&gt;
&lt;p&gt;Tam API referansı ve örnekler için &lt;a href="https://devblogs.microsoft.com/azure-sdk/mcp-as-easy-as-1-2-3-introducing-the-fluent-api-for-mcp-apps/"&gt;tam yazıyı&lt;/a&gt; okuyun.&lt;/p&gt;</content:encoded></item></channel></rss>