<?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/fr/tags/azure-sdk/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>fr</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 21 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/fr/tags/azure-sdk/index.xml" rel="self" type="application/rss+xml"/><item><title>Arrêtez de Pilonner une Dépendance en Difficulté : Patterns de Retry pour Azure Functions + Service Bus</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-functions-service-bus-exponential-backoff-circuit-breaker/</link><pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-functions-service-bus-exponential-backoff-circuit-breaker/</guid><description>L'exponential backoff et les patterns de circuit breaker sont désormais pris en charge nativement pour les Azure Functions déclenchées par Service Bus — voici comment ils fonctionnent et pourquoi vous avez besoin des deux.</description><content:encoded>&lt;p&gt;Voici comment une panne récupérable devient une interruption dans une application Functions : une dépendance commence à générer des timeouts, chaque instance Function effectue des nouvelles tentatives immédiatement et indéfiniment, la dépendance reçoit des centaines de requêtes concurrentes échouées, et ce qui a commencé comme un problème transitoire se transforme en un événement de contre-pression à l&amp;rsquo;échelle du système.&lt;/p&gt;
&lt;p&gt;Vous connaissez probablement cette histoire. Azure Functions scale rapidement — c&amp;rsquo;est tout le principe. Mais &amp;ldquo;scaler rapidement&amp;rdquo; et &amp;ldquo;réessayer immédiatement&amp;rdquo; ensemble peuvent rendre les défaillances dramatiquement pires.&lt;/p&gt;
&lt;p&gt;Deux patterns aident. Exponential backoff et circuit breaker. Les deux sont désormais pris en charge nativement pour les Azure Functions déclenchées par Service Bus.&lt;/p&gt;
&lt;h2 id="deux-patterns-rôles-différents"&gt;Deux Patterns, Rôles Différents&lt;/h2&gt;
&lt;p&gt;Ces patterns sont complémentaires, pas des alternatives :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;L&amp;rsquo;exponential backoff&lt;/strong&gt; répond à : &lt;em&gt;quand devrais-je réessayer ?&lt;/em&gt;
Il augmente le délai entre les tentatives pour qu&amp;rsquo;une dépendance ait le temps de récupérer. Au niveau du message, rythmant le timing des nouvelles tentatives.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le circuit breaker&lt;/strong&gt; répond à : &lt;em&gt;devrais-je appeler cette dépendance en ce moment ?&lt;/em&gt;
Il arrête les appels répétés vers une dépendance non saine après qu&amp;rsquo;un seuil d&amp;rsquo;échec est atteint, puis sonde prudemment après une période de refroidissement. Au niveau du système, prévenant les tempêtes de retry.&lt;/p&gt;
&lt;p&gt;Vous voulez les deux. Le backoff gère le rythme des tentatives par message. Le circuit breaker gère les décisions de santé agrégées.&lt;/p&gt;
&lt;h2 id="pourquoi-cest-particulièrement-important-pour-service-bus"&gt;Pourquoi C&amp;rsquo;est Particulièrement Important pour Service Bus&lt;/h2&gt;
&lt;p&gt;La file absorbe le trafic en rafale, ce qui est bien. Mais sans contrôles, la file peut grossir pendant que les workers continuent de gaspiller des ressources de calcul sur des appels qui vont échouer. Les messages empoisonnés restent actifs plus longtemps qu&amp;rsquo;ils ne le devraient. Les partitions chaudes ou la capacité limitée en aval créent des problèmes en cascade.&lt;/p&gt;
&lt;p&gt;Le design plus sécurisé :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Détecter la panne transitoire&lt;/li&gt;
&lt;li&gt;Retarder la prochaine tentative avec exponential backoff&lt;/li&gt;
&lt;li&gt;Arrêter d&amp;rsquo;appeler la dépendance quand un seuil d&amp;rsquo;échec est atteint (circuit ouvert)&lt;/li&gt;
&lt;li&gt;Reprendre prudemment après une période de refroidissement (sonde de circuit)&lt;/li&gt;
&lt;li&gt;Déplacer le travail irrécupérable vers dead-letter ou une voie de quarantaine&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="à-quoi-ressemble-le-support-natif"&gt;À Quoi Ressemble le Support Natif&lt;/h2&gt;
&lt;p&gt;Le nouveau support s&amp;rsquo;intègre avec le modèle d&amp;rsquo;hôte Azure Functions existant — pas de bibliothèques supplémentaires, pas d&amp;rsquo;implémentations personnalisées. La configuration va dans votre &lt;code&gt;host.json&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&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="nt"&gt;&amp;#34;extensions&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&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="nt"&gt;&amp;#34;serviceBus&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&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="nt"&gt;&amp;#34;messageHandlerOptions&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&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="nt"&gt;&amp;#34;maxRetryCount&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&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="nt"&gt;&amp;#34;retryPolicy&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&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="nt"&gt;&amp;#34;mode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;exponentialBackoff&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="nt"&gt;&amp;#34;minBackoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;00:00:02&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="nt"&gt;&amp;#34;maxBackoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;00:05:00&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="nt"&gt;&amp;#34;maxRetryCount&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&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="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="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;La configuration du circuit breaker définit le seuil d&amp;rsquo;échec et l&amp;rsquo;intervalle de réinitialisation pour que les dépendances non saines ne soient pas harcelées pendant la récupération.&lt;/p&gt;
&lt;h2 id="langages-couverts"&gt;Langages Couverts&lt;/h2&gt;
&lt;p&gt;Ce n&amp;rsquo;est pas uniquement pour .NET. La fonctionnalité couvre dotnet, JavaScript, TypeScript et Python — l&amp;rsquo;ensemble complet des langages supportés par le trigger Service Bus dans Azure Functions.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Les patterns de retry ne sont pas passionnants à configurer jusqu&amp;rsquo;à la première fois qu&amp;rsquo;une interruption en aval fait que vos Functions aggravent le problème au lieu de se dégrader gracieusement. Les configurer de manière proactive est peu coûteux. Les implémenter pendant un incident ne l&amp;rsquo;est pas.&lt;/p&gt;
&lt;p&gt;Post original : &lt;a href="https://devblogs.microsoft.com/azure-sdk/exponential-backoff-circuit-breaker-azure-functions/"&gt;Exponential backoff and circuit breaker for Service Bus-triggered Azure Functions&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Azure MCP Server Est Maintenant un .mcpb — Installez-le sans Aucun Runtime</title><link>https://thedotnetblog.com/fr/news/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/fr/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</guid><description>Azure MCP Server est maintenant disponible en tant que MCP Bundle (.mcpb) — téléchargez-le, faites-le glisser dans Claude Desktop et c'est tout. Aucun Node.js, Python ou .NET requis.</description><content:encoded>&lt;p&gt;&lt;em&gt;Ce post a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Vous savez ce qui était pénible dans la configuration des serveurs MCP ? Vous aviez besoin d&amp;rsquo;un runtime. Node.js pour la version npm, Python pour pip/uvx, .NET SDK pour la variante dotnet.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;Azure MCP Server vient de changer cela&lt;/a&gt;. Il est maintenant disponible en tant que &lt;code&gt;.mcpb&lt;/code&gt; — un MCP Bundle — et la configuration se fait par glisser-déposer.&lt;/p&gt;
&lt;h2 id="quest-ce-quun-mcp-bundle-"&gt;Qu&amp;rsquo;est-ce qu&amp;rsquo;un MCP Bundle ?&lt;/h2&gt;
&lt;p&gt;Pensez-y comme à une extension VS Code (&lt;code&gt;.vsix&lt;/code&gt;) ou une extension de navigateur (&lt;code&gt;.crx&lt;/code&gt;), mais pour les serveurs MCP. Un fichier &lt;code&gt;.mcpb&lt;/code&gt; est une archive ZIP autonome incluant le binaire du serveur et toutes ses dépendances.&lt;/p&gt;
&lt;h2 id="comment-linstaller"&gt;Comment l&amp;rsquo;installer&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. Téléchargez le bundle pour votre plateforme&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Allez sur la &lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server"&gt;page GitHub Releases&lt;/a&gt; et téléchargez le fichier &lt;code&gt;.mcpb&lt;/code&gt; pour votre OS et architecture.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Installez dans Claude Desktop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le plus simple : faites glisser le fichier &lt;code&gt;.mcpb&lt;/code&gt; dans la fenêtre Claude Desktop sur la page des paramètres Extensions (&lt;code&gt;☰ → Fichier → Paramètres → Extensions&lt;/code&gt;). Vérifiez les détails du serveur, cliquez sur Installer, confirmez.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Authentifiez-vous auprès d&amp;rsquo;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;C&amp;rsquo;est tout. Azure MCP Server utilise vos identifiants Azure existants.&lt;/p&gt;
&lt;h2 id="ce-que-vous-pouvez-faire-avec"&gt;Ce que vous pouvez faire avec&lt;/h2&gt;
&lt;p&gt;Plus de 100 outils de services Azure directement depuis votre client IA :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interroger et gérer Cosmos DB, Storage, Key Vault, App Service, Foundry&lt;/li&gt;
&lt;li&gt;Générer des commandes &lt;code&gt;az&lt;/code&gt; CLI pour n&amp;rsquo;importe quelle tâche&lt;/li&gt;
&lt;li&gt;Créer des modèles Bicep et Terraform&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pour-commencer"&gt;Pour commencer&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Téléchargement&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;Dépôt&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;Docs&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;Consultez le &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;post complet&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Azure SDK Avril 2026 : AI Foundry 2.0 et Ce Que les Développeurs .NET Doivent Savoir</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-sdk-april-2026-ai-foundry-2-stable/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-sdk-april-2026-ai-foundry-2-stable/</guid><description>La version Azure SDK d'avril 2026 livre Azure.AI.Projects 2.0.0 stable avec des changements cassants importants, des correctifs de sécurité critiques pour Cosmos DB et de nouvelles bibliothèques de Provisioning pour .NET.</description><content:encoded>&lt;p&gt;&lt;em&gt;Cet article a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/posts/emiliano-montesdeoca/azure-sdk-april-2026-ai-foundry-2-stable/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Les versions mensuelles du SDK sont souvent faciles à ignorer. Celle-ci a quelques points à retenir — surtout si vous construisez avec AI Foundry, Cosmos DB en Java, ou faites du provisionnement d&amp;rsquo;infrastructure depuis du code .NET.&lt;/p&gt;
&lt;h2 id="azureaiprojects-200--changements-cassants-qui-font-sens"&gt;Azure.AI.Projects 2.0.0 — Changements Cassants Qui Font Sens&lt;/h2&gt;
&lt;p&gt;Le paquet NuGet &lt;code&gt;Azure.AI.Projects&lt;/code&gt; atteint la version stable 2.0.0: séparations de namespaces, types renommés, et convention &lt;code&gt;Is*&lt;/code&gt; cohérente pour les booléens.&lt;/p&gt;
&lt;h2 id="cosmos-db-java--correctif-de-sécurité-critique-rce"&gt;Cosmos DB Java : Correctif de Sécurité Critique (RCE)&lt;/h2&gt;
&lt;p&gt;La version 4.79.0 inclut un correctif critique pour une &lt;strong&gt;vulnérabilité d&amp;rsquo;exécution de code à distance (CWE-502)&lt;/strong&gt;. Mise à jour immédiate requise.&lt;/p&gt;
&lt;h2 id="nouvelles-bibliothèques-de-provisioning-pour-net"&gt;Nouvelles Bibliothèques de Provisioning pour .NET&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nuget.org/packages/Azure.Provisioning.Network/1.0.0"&gt;Azure.Provisioning.Network 1.0.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nuget.org/packages/Azure.Provisioning.PrivateDns/1.0.0"&gt;Azure.Provisioning.PrivateDns 1.0.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Le point fort pour les développeurs .NET ce mois-ci : &lt;code&gt;Azure.AI.Projects 2.0.0&lt;/code&gt; est stable. Post original : &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-sdk-release-april-2026/"&gt;Azure SDK Release (April 2026)&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Azure MCP Server 2.0 Est Arrivé — L'Automatisation Agentic Self-Hosted Est Ici</title><link>https://thedotnetblog.com/fr/news/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/fr/news/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/</guid><description>Azure MCP Server 2.0 devient stable avec des déploiements distants self-hosted, 276 outils sur 57 services Azure, et la sécurité de niveau entreprise — voici ce qui compte pour les développeurs .NET construisant des workflows agentiques.</description><content:encoded>&lt;p&gt;&lt;em&gt;Cet article a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Si vous avez construit quelque chose avec MCP et Azure récemment, vous savez probablement que l&amp;rsquo;expérience locale fonctionne bien. Branchez un serveur MCP, laissez votre agent IA parler aux ressources Azure, et passez à la suite. Mais dès que vous avez besoin de partager cette configuration dans une équipe ? C&amp;rsquo;est là que les choses se compliquaient.&lt;/p&gt;
&lt;p&gt;Plus maintenant. Azure MCP Server &lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/"&gt;vient d&amp;rsquo;atteindre la version 2.0 stable&lt;/a&gt;, et la fonctionnalité phare est exactement ce que les équipes d&amp;rsquo;entreprise demandaient : &lt;strong&gt;le support du serveur MCP distant self-hosted&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="quest-ce-quazure-mcp-server-"&gt;Qu&amp;rsquo;est-ce qu&amp;rsquo;Azure MCP Server ?&lt;/h2&gt;
&lt;p&gt;Petit rappel. Azure MCP Server implémente la spécification &lt;a href="https://modelcontextprotocol.io/docs/getting-started/intro"&gt;Model Context Protocol&lt;/a&gt; et expose les capacités Azure en tant qu&amp;rsquo;outils structurés et découvrables que les agents IA peuvent invoquer. Pensez-y comme un pont standardisé entre votre agent et Azure — provisionnement, déploiement, monitoring, diagnostics, tout par une interface cohérente.&lt;/p&gt;
&lt;p&gt;Les chiffres parlent d&amp;rsquo;eux-mêmes : &lt;strong&gt;276 outils MCP sur 57 services Azure&lt;/strong&gt;. C&amp;rsquo;est une couverture sérieuse.&lt;/p&gt;
&lt;h2 id="le-grand-changement--les-déploiements-distants-self-hosted"&gt;Le grand changement : les déploiements distants self-hosted&lt;/h2&gt;
&lt;p&gt;Voici la chose. Exécuter MCP localement sur votre machine, c&amp;rsquo;est bien pour le développement et les expériences. Mais dans un scénario d&amp;rsquo;équipe réelle, vous avez besoin de :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un accès partagé pour les développeurs et les systèmes d&amp;rsquo;agents internes&lt;/li&gt;
&lt;li&gt;Une configuration centralisée (contexte de tenant, valeurs par défaut des abonnements, télémétrie)&lt;/li&gt;
&lt;li&gt;Des limites de réseau et de politique d&amp;rsquo;entreprise&lt;/li&gt;
&lt;li&gt;L&amp;rsquo;intégration dans les pipelines CI/CD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Azure MCP Server 2.0 s&amp;rsquo;adresse à tout cela. Vous pouvez le déployer comme un service interne géré de manière centralisée avec un transport basé sur HTTP, une authentification appropriée et une gouvernance cohérente.&lt;/p&gt;
&lt;p&gt;Pour l&amp;rsquo;authentification, vous avez deux excellentes options :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Managed Identity&lt;/strong&gt; — lors de l&amp;rsquo;exécution aux côtés de &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;Le flux On-Behalf-Of (OBO)&lt;/strong&gt; — une délégation OpenID Connect qui appelle les API Azure en utilisant le contexte de l&amp;rsquo;utilisateur connecté&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ce flux OBO est particulièrement intéressant pour nous, développeurs .NET. Cela signifie que vos workflows agentiques peuvent fonctionner avec les permissions réelles de l&amp;rsquo;utilisateur, pas un compte de service surprivilégié. Le principe du moindre privilège, intégré nativement.&lt;/p&gt;
&lt;h2 id="renforcement-de-la-sécurité"&gt;Renforcement de la sécurité&lt;/h2&gt;
&lt;p&gt;Ce n&amp;rsquo;est pas seulement une sortie de fonctionnalité — c&amp;rsquo;est aussi une sortie de sécurité. La version 2.0 ajoute :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Une validation d&amp;rsquo;endpoint plus forte&lt;/li&gt;
&lt;li&gt;Des protections contre les modèles d&amp;rsquo;injection dans les outils orientés requête&lt;/li&gt;
&lt;li&gt;Des contrôles d&amp;rsquo;isolation plus serrés pour les environnements de développement&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si vous allez exposer MCP comme un service partagé, ces protections sont importantes. Vraiment importantes.&lt;/p&gt;
&lt;h2 id="où-pouvez-vous-lutiliser-"&gt;Où pouvez-vous l&amp;rsquo;utiliser ?&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;histoire de compatibilité des clients est large. Azure MCP Server 2.0 fonctionne avec :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IDEs&lt;/strong&gt; : VS Code, Visual Studio, IntelliJ, Eclipse, Cursor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agents CLI&lt;/strong&gt; : GitHub Copilot CLI, Claude Code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Standalone&lt;/strong&gt; : serveur local pour les configurations simples&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted distant&lt;/strong&gt; : la nouvelle vedette de la version 2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Plus il y a le support du cloud souverain pour Azure US Government et Azure exploité par 21Vianet, ce qui est critique pour les déploiements réglementés.&lt;/p&gt;
&lt;h2 id="pourquoi-cest-important-pour-les-développeurs-net"&gt;Pourquoi c&amp;rsquo;est important pour les développeurs .NET&lt;/h2&gt;
&lt;p&gt;Si vous construisez des applications agentiques avec .NET — qu&amp;rsquo;il s&amp;rsquo;agisse de Semantic Kernel, Microsoft Agent Framework, ou votre propre orchestration — Azure MCP Server 2.0 vous donne un moyen prêt pour la production de laisser vos agents interagir avec l&amp;rsquo;infrastructure Azure. Pas de wrappers REST personnalisés. Pas de modèles d&amp;rsquo;intégration spécifiques aux services. Juste MCP.&lt;/p&gt;
&lt;p&gt;Combiné avec l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/azure-sdk/mcp-as-easy-as-1-2-3-introducing-the-fluent-api-for-mcp-apps/"&gt;API fluide pour les applications MCP&lt;/a&gt; qui est arrivée il y a quelques jours, l&amp;rsquo;écosystème .NET MCP mûrit rapidement.&lt;/p&gt;
&lt;h2 id="démarrage"&gt;Démarrage&lt;/h2&gt;
&lt;p&gt;Choisissez votre chemin :&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; — code source, documentation, tout&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/download/docker"&gt;Image Docker&lt;/a&gt;&lt;/strong&gt; — déploiement containerisé&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/download/vscode"&gt;Extension VS Code&lt;/a&gt;&lt;/strong&gt; — intégration IDE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/self-host"&gt;Guide de self-hosting&lt;/a&gt;&lt;/strong&gt; — la fonctionnalité phare de la version 2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Azure MCP Server 2.0 est exactement le type de mise à niveau d&amp;rsquo;infrastructure qui ne brille pas dans une démo mais change tout en pratique. Un MCP distant self-hosted avec une authentification appropriée, un renforcement de la sécurité et un support du cloud souverain signifient que MCP est prêt pour les vraies équipes construisant de vrais workflows agentiques sur Azure. Si vous attendiez le signal « prêt pour l&amp;rsquo;entreprise » — c&amp;rsquo;est celui-ci.&lt;/p&gt;</content:encoded></item><item><title>Les MCP Apps ont une API fluide — Créez des interfaces riches pour outils IA en .NET en trois étapes</title><link>https://thedotnetblog.com/fr/news/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/fr/news/emiliano-montesdeoca/mcp-fluent-api-azure-functions-dotnet/</guid><description>La nouvelle API de configuration fluide pour les MCP Apps sur Azure Functions vous permet de transformer n'importe quel outil MCP .NET en une application complète avec des vues, des permissions et des politiques CSP en quelques lignes de code.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Cet article a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/fr/news/emiliano-montesdeoca/mcp-fluent-api-azure-functions-dotnet/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Les outils MCP sont parfaits pour donner des capacités aux agents IA. Mais que faire si votre outil doit montrer quelque chose à l&amp;rsquo;utilisateur — un tableau de bord, un formulaire, une visualisation interactive ? C&amp;rsquo;est là qu&amp;rsquo;interviennent les MCP Apps, et elles sont devenues beaucoup plus faciles à créer.&lt;/p&gt;
&lt;p&gt;Lilian Kasem de l&amp;rsquo;équipe 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;a présenté la nouvelle API de configuration fluide&lt;/a&gt; pour les MCP Apps sur Azure Functions .NET, et c&amp;rsquo;est le genre d&amp;rsquo;amélioration de l&amp;rsquo;expérience développeur qui fait se demander pourquoi ce n&amp;rsquo;était pas déjà aussi simple.&lt;/p&gt;
&lt;h2 id="quest-ce-que-les-mcp-apps-"&gt;Qu&amp;rsquo;est-ce que les MCP Apps ?&lt;/h2&gt;
&lt;p&gt;Les MCP Apps étendent le Model Context Protocol en permettant aux outils d&amp;rsquo;embarquer leurs propres vues UI, assets statiques et contrôles de sécurité. Au lieu de simplement retourner du texte, votre outil MCP peut rendre des expériences HTML complètes — tableaux de bord interactifs, visualisations de données, formulaires de configuration — le tout invocable par des agents IA et présenté aux utilisateurs par les clients MCP.&lt;/p&gt;
&lt;p&gt;Le problème était que tout câbler manuellement nécessitait une connaissance approfondie de la spécification MCP : URIs &lt;code&gt;ui://&lt;/code&gt;, types MIME spéciaux, coordination des métadonnées entre outils et ressources. Pas difficile, mais fastidieux.&lt;/p&gt;
&lt;h2 id="lapi-fluide-en-trois-étapes"&gt;L&amp;rsquo;API fluide en trois étapes&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Étape 1 : Définissez votre fonction.&lt;/strong&gt; Un outil MCP Azure Functions standard :&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;Étape 2 : Promouvez-la en MCP App.&lt;/strong&gt; Dans le démarrage de votre programme :&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;Étape 3 : Ajoutez votre vue HTML.&lt;/strong&gt; Créez &lt;code&gt;assets/hello-app.html&lt;/code&gt; avec l&amp;rsquo;interface dont vous avez besoin.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est tout. L&amp;rsquo;API fluide gère toute la plomberie du protocole MCP — génère la fonction de ressource synthétique, définit le type MIME correct et injecte les métadonnées qui connectent votre outil à sa vue.&lt;/p&gt;
&lt;h2 id="la-surface-de-lapi-est-bien-conçue"&gt;La surface de l&amp;rsquo;API est bien conçue&lt;/h2&gt;
&lt;p&gt;Quelques éléments que j&amp;rsquo;apprécie particulièrement :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les sources de vues sont flexibles.&lt;/strong&gt; Vous pouvez servir du HTML depuis des fichiers sur disque ou intégrer des ressources directement dans votre assembly pour des déploiements autonomes :&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;Le CSP est composable.&lt;/strong&gt; Vous autorisez explicitement les origines dont votre app a besoin, en suivant le principe du moindre privilège. Appelez &lt;code&gt;WithCsp&lt;/code&gt; plusieurs fois et les origines s&amp;rsquo;accumulent :&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;Contrôle de visibilité.&lt;/strong&gt; Vous pouvez rendre un outil visible uniquement pour le LLM, uniquement pour l&amp;rsquo;UI de l&amp;rsquo;hôte, ou les deux. Vous voulez un outil qui ne fait que rendre de l&amp;rsquo;UI et ne devrait pas être appelé par le modèle ? Facile :&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="pour-commencer"&gt;Pour commencer&lt;/h2&gt;
&lt;p&gt;Ajoutez le package preview :&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;Si vous construisez déjà des outils MCP avec Azure Functions, c&amp;rsquo;est juste une mise à jour de package. Le &lt;a href="https://learn.microsoft.com/azure/azure-functions/scenario-mcp-apps?tabs=bash%2Clinux&amp;amp;pivots=programming-language-csharp"&gt;quickstart MCP Apps&lt;/a&gt; est le meilleur point de départ si vous découvrez le concept.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;Les MCP Apps sont l&amp;rsquo;un des développements les plus passionnants dans l&amp;rsquo;espace des outils IA — des outils qui ne font pas que &lt;em&gt;faire des choses&lt;/em&gt; mais peuvent aussi &lt;em&gt;montrer des choses&lt;/em&gt; aux utilisateurs. L&amp;rsquo;API fluide supprime la complexité du protocole et vous permet de vous concentrer sur l&amp;rsquo;essentiel : la logique de votre outil et son interface.&lt;/p&gt;
&lt;p&gt;Lisez le &lt;a href="https://devblogs.microsoft.com/azure-sdk/mcp-as-easy-as-1-2-3-introducing-the-fluent-api-for-mcp-apps/"&gt;post complet&lt;/a&gt; pour la référence complète de l&amp;rsquo;API et des exemples.&lt;/p&gt;</content:encoded></item></channel></rss>