<?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/ar/tags/azure-sdk/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ar</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/ar/tags/azure-sdk/index.xml" rel="self" type="application/rss+xml"/><item><title>Azure MCP Server الآن .mcpb — ثبّته بدون أي Runtime</title><link>https://thedotnetblog.com/ar/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/ar/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</guid><description>Azure MCP Server متاح الآن كـ MCP Bundle (.mcpb) — نزّله، اسحبه إلى Claude Desktop وانتهى الأمر. لا Node.js ولا Python ولا .NET مطلوبة.</description><content:encoded>&lt;p&gt;&lt;em&gt;تمت ترجمة هذا المقال تلقائيًا. للاطلاع على النسخة الأصلية، &lt;a href="https://thedotnetblog.com/ar/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/"&gt;انقر هنا&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;هل تعرف ما الذي كان مزعجًا في إعداد خوادم MCP؟ كنت بحاجة إلى runtime. Node.js لنسخة npm، وPython لـ pip/uvx، و.NET SDK لمتغير dotnet.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;غيّر Azure MCP Server كل ذلك للتو&lt;/a&gt;. أصبح متاحًا الآن كـ &lt;code&gt;.mcpb&lt;/code&gt; — MCP Bundle — والإعداد بالسحب والإفلات.&lt;/p&gt;
&lt;h2 id="ما-هو-mcp-bundle"&gt;ما هو MCP Bundle؟&lt;/h2&gt;
&lt;p&gt;فكّر فيه كامتداد VS Code (&lt;code&gt;.vsix&lt;/code&gt;) أو امتداد متصفح (&lt;code&gt;.crx&lt;/code&gt;)، ولكن لخوادم MCP. ملف &lt;code&gt;.mcpb&lt;/code&gt; هو أرشيف ZIP مكتفٍ بذاته يتضمن الملف الثنائي للخادم وجميع تبعياته.&lt;/p&gt;
&lt;h2 id="كيفية-التثبيت"&gt;كيفية التثبيت&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. نزّل الحزمة لمنصتك&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&lt;/a&gt; ونزّل ملف &lt;code&gt;.mcpb&lt;/code&gt; لنظام تشغيلك ومعماريتك.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. ثبّت في Claude Desktop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;الطريقة الأسهل: اسحب ملف &lt;code&gt;.mcpb&lt;/code&gt; وأفلته في نافذة Claude Desktop بينما تكون على صفحة إعدادات الامتدادات (&lt;code&gt;☰ → ملف → الإعدادات → الامتدادات&lt;/code&gt;). راجع تفاصيل الخادم، انقر تثبيت، وأكّد.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. المصادقة على Azure&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;p&gt;هذا كل شيء. يستخدم Azure MCP Server بيانات اعتماد Azure الموجودة لديك.&lt;/p&gt;
&lt;h2 id="للبدء"&gt;للبدء&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;التنزيل&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;المستودع&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;التوثيق&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;المقال الكامل&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>إطلاق Azure MCP Server 2.0 — أتمتة السحابة الوكيلية المستضافة ذاتياً أصبحت حقيقة</title><link>https://thedotnetblog.com/ar/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/ar/posts/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/</guid><description>يصل Azure MCP Server 2.0 إلى مرحلة الاستقرار مع نشر عن بُعد مستضاف ذاتياً، و276 أداة عبر 57 خدمة Azure، وأمان على مستوى المؤسسات — إليك ما يهم مطوري .NET الذين يبنون سير عمل وكيلية.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;تمت ترجمة هذا المقال تلقائياً. للنسخة الأصلية، &lt;a href="https://thedotnetblog.com/ar/posts/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/"&gt;انقر هنا&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;إذا كنت تبني أي شيء باستخدام MCP وAzure مؤخراً، فمن المحتمل أنك تعرف بالفعل أن التجربة المحلية تعمل بشكل جيد. توصّل بخادم MCP، دع وكيل الذكاء الاصطناعي يتحدث مع موارد Azure، وانتهيت. لكن في اللحظة التي تحتاج فيها إلى مشاركة هذا الإعداد عبر فريق؟ هنا تصبح الأمور معقدة.&lt;/p&gt;
&lt;p&gt;لم يعد الأمر كذلك. لقد &lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/"&gt;وصل Azure MCP Server للإصدار 2.0 المستقر&lt;/a&gt;، والميزة الرئيسية هي بالضبط ما طالبت به فرق المؤسسات: &lt;strong&gt;دعم خادم MCP البعيد المستضاف ذاتياً&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="ما-هو-azure-mcp-server"&gt;ما هو Azure MCP Server؟&lt;/h2&gt;
&lt;p&gt;مراجعة سريعة. ينفّذ Azure MCP Server مواصفة &lt;a href="https://modelcontextprotocol.io/docs/getting-started/intro"&gt;بروتوكول سياق النموذج&lt;/a&gt; ويعرض قدرات Azure كأدوات منظمة وقابلة للاكتشاف يمكن لوكلاء الذكاء الاصطناعي استدعاؤها. فكر فيه كجسر موحد بين وكيلك وAzure — التزويد والنشر والمراقبة والتشخيص، كل ذلك من خلال واجهة واحدة متسقة.&lt;/p&gt;
&lt;p&gt;الأرقام تتحدث عن نفسها: &lt;strong&gt;276 أداة MCP عبر 57 خدمة Azure&lt;/strong&gt;. هذا تغطية جدية.&lt;/p&gt;
&lt;h2 id="الأمر-الكبير-نشر-عن-بعد-مستضاف-ذاتيا"&gt;الأمر الكبير: نشر عن بُعد مستضاف ذاتياً&lt;/h2&gt;
&lt;p&gt;إليك المسألة. تشغيل MCP محلياً على جهازك مناسب للتطوير والتجارب. لكن في سيناريو فريق حقيقي، تحتاج إلى:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;وصول مشترك للمطورين والأنظمة الوكيلية الداخلية&lt;/li&gt;
&lt;li&gt;تكوين مركزي (سياق المستأجر، افتراضيات الاشتراك، بيانات القياس)&lt;/li&gt;
&lt;li&gt;حدود شبكة المؤسسة وسياساتها&lt;/li&gt;
&lt;li&gt;التكامل في مسارات CI/CD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;يعالج Azure MCP Server 2.0 كل ذلك. يمكنك نشره كخدمة داخلية مُدارة مركزياً مع نقل بيانات يعتمد على HTTP، ومصادقة مناسبة، وحوكمة متسقة.&lt;/p&gt;
&lt;p&gt;للمصادقة، لديك خياران متينان:&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;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;تدفق On-Behalf-Of (OBO)&lt;/strong&gt; — تفويض OpenID Connect يستدعي واجهات برمجية Azure باستخدام سياق المستخدم الذي سجّل الدخول&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;تدفق OBO هذا مثير للاهتمام بشكل خاص لنا كمطوري .NET. يعني أن سير العمل الوكيلية يمكن أن تعمل بالأذونات الفعلية للمستخدم، وليس ببعض حسابات الخدمة المفرطة الصلاحيات. مبدأ الصلاحية الأدنى، مدمج مباشرةً.&lt;/p&gt;
&lt;h2 id="تحصين-الأمان"&gt;تحصين الأمان&lt;/h2&gt;
&lt;p&gt;هذا ليس مجرد إصدار ميزات — إنه إصدار أمني أيضاً. يضيف إصدار 2.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;التحقق المعزز من نقاط النهاية&lt;/li&gt;
&lt;li&gt;الحماية من أنماط الحقن في الأدوات الموجهة بالاستعلامات&lt;/li&gt;
&lt;li&gt;ضوابط عزل أكثر إحكاماً لبيئات التطوير&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;إذا كنت ستعرض MCP كخدمة مشتركة، فهذه الضمانات مهمة. بشكل كبير.&lt;/p&gt;
&lt;h2 id="أين-يمكنك-استخدامه"&gt;أين يمكنك استخدامه؟&lt;/h2&gt;
&lt;p&gt;قصة توافق العملاء واسعة. يعمل Azure MCP Server 2.0 مع:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;بيئات التطوير المتكاملة&lt;/strong&gt;: VS Code، Visual Studio، IntelliJ، Eclipse، Cursor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;وكلاء سطر الأوامر&lt;/strong&gt;: GitHub Copilot CLI، Claude Code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;مستقل&lt;/strong&gt;: خادم محلي للإعدادات البسيطة&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;بعيد مستضاف ذاتياً&lt;/strong&gt;: النجم الجديد في إصدار 2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;بالإضافة إلى ذلك، هناك دعم للسحابة السيادية لـ Azure US Government وAzure التي تشغّلها 21Vianet، وهو أمر حيوي للنشرات الخاضعة للتنظيم.&lt;/p&gt;
&lt;h2 id="لماذا-هذا-مهم-لمطوري-net"&gt;لماذا هذا مهم لمطوري .NET&lt;/h2&gt;
&lt;p&gt;إذا كنت تبني تطبيقات وكيلية باستخدام .NET — سواء كان ذلك Semantic Kernel أو Microsoft Agent Framework أو تنسيقك الخاص — يمنحك Azure MCP Server 2.0 طريقة جاهزة للإنتاج للسماح لوكلائك بالتفاعل مع بنية Azure التحتية. بدون أغلفة REST مخصصة. بدون أنماط تكامل خاصة بالخدمة. فقط MCP.&lt;/p&gt;
&lt;p&gt;بالاقتران مع &lt;a href="https://devblogs.microsoft.com/azure-sdk/mcp-as-easy-as-1-2-3-introducing-the-fluent-api-for-mcp-apps/"&gt;واجهة برمجية Fluent لتطبيقات MCP&lt;/a&gt; التي أُطلقت قبل أيام، تنضج منظومة .NET MCP بسرعة.&lt;/p&gt;
&lt;h2 id="البدء"&gt;البدء&lt;/h2&gt;
&lt;p&gt;اختر مسارك:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp"&gt;مستودع GitHub&lt;/a&gt;&lt;/strong&gt; — الكود المصدري والوثائق وكل شيء&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/download/docker"&gt;صورة Docker&lt;/a&gt;&lt;/strong&gt; — نشر في حاوية&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/download/vscode"&gt;امتداد VS Code&lt;/a&gt;&lt;/strong&gt; — تكامل مع بيئة التطوير المتكاملة&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/self-host"&gt;دليل الاستضافة الذاتية&lt;/a&gt;&lt;/strong&gt; — الميزة الرئيسية في إصدار 2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="خلاصة-القول"&gt;خلاصة القول&lt;/h2&gt;
&lt;p&gt;Azure MCP Server 2.0 هو بالضبط نوع الترقية التحتية التي لا تبدو لامعة في العرض التوضيحي لكنها تغير كل شيء عملياً. خادم MCP البعيد المستضاف ذاتياً مع مصادقة مناسبة وتحصين أمني ودعم سحابة سيادية يعني أن MCP جاهز للفرق الحقيقية التي تبني سير عمل وكيلية حقيقية على Azure. إذا كنت تنتظر إشارة &amp;ldquo;جاهز للمؤسسات&amp;rdquo; — هذه هي.&lt;/p&gt;</content:encoded></item><item><title>تطبيقات MCP تحصل على واجهة برمجة سلسة — أنشئ واجهات أدوات AI غنية في .NET بثلاث خطوات</title><link>https://thedotnetblog.com/ar/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/ar/posts/emiliano-montesdeoca/mcp-fluent-api-azure-functions-dotnet/</guid><description>واجهة التهيئة السلسة الجديدة لتطبيقات MCP على Azure Functions تتيح لك تحويل أي أداة .NET MCP إلى تطبيق كامل بمشاهدات وصلاحيات وسياسات CSP في بضعة أسطر من الكود.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;تمت ترجمة هذا المقال تلقائياً. للنسخة الأصلية، &lt;a href="https://thedotnetblog.com/ar/posts/emiliano-montesdeoca/mcp-fluent-api-azure-functions-dotnet/"&gt;انقر هنا&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;أدوات MCP رائعة لمنح وكلاء الذكاء الاصطناعي قدرات. لكن ماذا لو احتاجت أداتك إلى عرض شيء للمستخدم — لوحة معلومات، أو نموذج، أو مرئيات تفاعلية؟ هنا يأتي دور تطبيقات MCP، وقد أصبح بناؤها أسهل بكثير للتوّ.&lt;/p&gt;
&lt;p&gt;Lilian Kasem من فريق Azure SDK &lt;a href="https://devblogs.microsoft.com/azure-sdk/mcp-as-easy-as-1-2-3-introducing-the-fluent-api-for-mcp-apps/"&gt;قدّمت واجهة التهيئة السلسة الجديدة&lt;/a&gt; لتطبيقات MCP على .NET Azure Functions، وهو نوع تحسين تجربة المطوّر الذي يجعلك تتساءل لماذا لم يكن الأمر بهذه البساطة دائماً.&lt;/p&gt;
&lt;h2 id="ما-هي-تطبيقات-mcp"&gt;ما هي تطبيقات MCP؟&lt;/h2&gt;
&lt;p&gt;تطبيقات MCP تُوسّع Model Context Protocol بالسماح للأدوات بحمل مشاهداتها UI الخاصة، والأصول الثابتة، وعناصر التحكم الأمني. بدلاً من إعادة نص فحسب، يمكن لأداة MCP الخاصة بك عرض تجارب HTML كاملة — لوحات معلومات تفاعلية، ومرئيات بيانات، ونماذج تهيئة — كلها قابلة للاستدعاء من وكلاء الذكاء الاصطناعي ومُقدَّمة للمستخدمين من قِبل عملاء MCP.&lt;/p&gt;
&lt;p&gt;كان الإشكال أن توصيل كل هذا يدوياً استلزم معرفة عميقة بمواصفات MCP: عناوين URI بصيغة &lt;code&gt;ui://&lt;/code&gt;، وأنواع MIME خاصة، وتنسيق البيانات الوصفية بين الأدوات والموارد. ليس صعباً، لكنه مُضجِر.&lt;/p&gt;
&lt;h2 id="واجهة-البرمجة-السلسة-في-ثلاث-خطوات"&gt;واجهة البرمجة السلسة في ثلاث خطوات&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;الخطوة 1: عرّف دالتك.&lt;/strong&gt; مجرد أداة Azure Functions MCP قياسية:&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;الخطوة 2: ارقِها إلى تطبيق MCP.&lt;/strong&gt; في بدء تشغيل برنامجك:&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;الخطوة 3: أضف مشهد HTML الخاص بك.&lt;/strong&gt; أنشئ &lt;code&gt;assets/hello-app.html&lt;/code&gt; بأي واجهة مستخدم تحتاجها.&lt;/p&gt;
&lt;p&gt;هذا كل شيء. واجهة البرمجة السلسة تتولى جميع التجهيزات الخاصة بمواصفات MCP — توليد دالة الموارد الاصطناعية، وضبط نوع MIME الصحيح، وحقن البيانات الوصفية التي تربط أداتك بمشهدها.&lt;/p&gt;
&lt;h2 id="سطح-واجهة-البرمجة-مصمم-جيدا"&gt;سطح واجهة البرمجة مصمَّم جيداً&lt;/h2&gt;
&lt;p&gt;بعض الأشياء التي أعجبتني حقاً:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;مصادر المشهد مرنة.&lt;/strong&gt; يمكنك تقديم HTML من ملفات على القرص، أو تضمين الموارد مباشرةً في التجميع للنشر الكامل المستقل:&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 قابل للتركيب.&lt;/strong&gt; تُدرج صراحةً المصادر الأصلية التي يحتاجها تطبيقك، متبعاً مبادئ الامتياز الأدنى. استدعِ &lt;code&gt;WithCsp&lt;/code&gt; عدة مرات وتتراكم المصادر:&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;التحكم في الرؤية.&lt;/strong&gt; يمكنك جعل الأداة مرئية لـ LLM فقط، أو لواجهة المضيف فقط، أو لكليهما. تريد أداة تعرض واجهة المستخدم فقط ولا ينبغي للنموذج استدعاؤها؟ سهل:&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;// UI-only, hidden from the model&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="البدء"&gt;البدء&lt;/h2&gt;
&lt;p&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;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;إذا كنت تبني أدوات MCP مع Azure Functions بالفعل، فهذا مجرد تحديث حزمة. &lt;a href="https://learn.microsoft.com/azure/azure-functions/scenario-mcp-apps?tabs=bash%2Clinux&amp;amp;pivots=programming-language-csharp"&gt;دليل البدء السريع لتطبيقات MCP&lt;/a&gt; هو أفضل نقطة انطلاق إذا كنت جديداً على المفهوم.&lt;/p&gt;
&lt;h2 id="خلاصة"&gt;خلاصة&lt;/h2&gt;
&lt;p&gt;تطبيقات MCP من أكثر التطورات إثارةً في مساحة أدوات الذكاء الاصطناعي — أدوات لا تكتفي بـ &lt;em&gt;فعل الأشياء&lt;/em&gt; بل تستطيع &lt;em&gt;عرض الأشياء&lt;/em&gt; للمستخدمين. واجهة البرمجة السلسة تُزيل تعقيد البروتوكول وتتيح لك التركيز على ما يهمّ: منطق أداتك وواجهة مستخدمها.&lt;/p&gt;
&lt;p&gt;اقرأ &lt;a href="https://devblogs.microsoft.com/azure-sdk/mcp-as-easy-as-1-2-3-introducing-the-fluent-api-for-mcp-apps/"&gt;المنشور الكامل&lt;/a&gt; للمرجع الكامل لواجهة البرمجة والأمثلة.&lt;/p&gt;</content:encoded></item></channel></rss>