Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le serveur Azure MCP utilise le protocole MCP (Model Context Protocol) pour normaliser les intégrations entre les applications IA et les outils externes et les sources de données, ce qui permet aux systèmes IA d’effectuer des opérations qui prennent en compte le contexte de vos ressources Azure.
Dans cet article, vous allez apprendre à effectuer les tâches suivantes :
- Installer et s’authentifier auprès du serveur Azure MCP
- Se connecter au serveur Azure MCP à l’aide d’un client .NET personnalisé
- Lancer des invitations pour tester les opérations du serveur MCP Azure et gérer les ressources Azure
Prerequisites
- Un compte Azure avec un abonnement actif
- .NET 9.0 ou version ultérieure installée
- Node.js LTS installé
Note
Les ressources Azure auxquelles vous envisagez d’accéder avec le serveur Azure MCP doivent déjà exister dans votre abonnement Azure. En outre, votre compte d’utilisateur doit disposer des rôles et autorisations RBAC nécessaires pour ces ressources.
Connexion au développement local
Azure MCP Server offre une expérience d’authentification transparente à l’aide de l’authentification basée sur des jetons via l’ID Microsoft Entra. En interne, azure MCP Server utilise DefaultAzureCredential à partir de la bibliothèque d’identités Azure pour authentifier les utilisateurs.
Vous devez vous connecter à l’un des outils pris en charge localement avec DefaultAzureCredential votre compte Azure pour utiliser Azure MCP Server. Connectez-vous à l’aide d’une fenêtre de terminal, telle que le terminal Visual Studio Code :
az login
Une fois que vous êtes connecté à l’un des outils précédents, Azure MCP Server peut détecter automatiquement vos informations d’identification et les utiliser pour authentifier et effectuer des opérations sur les services Azure.
Note
Vous pouvez également vous connecter à Azure via Visual Studio. Azure MCP Server est uniquement en mesure d’exécuter des opérations que l’utilisateur connecté dispose des autorisations nécessaires.
Créer l’application hôte .NET
Effectuez les étapes suivantes pour créer une application console .NET. L’application se connecte à un modèle IA et agit en tant qu’hôte pour un client MCP qui se connecte à un serveur Azure MCP.
Créer le projet
Ouvrez un terminal dans un dossier vide dans lequel vous souhaitez créer le projet.
Exécutez la commande suivante pour créer une application console .NET :
dotnet new console -n MCPHostAppAccédez au dossier de projet nouvellement créé :
cd MCPHostAppOuvrez le dossier du projet dans votre éditeur de choix, par exemple Visual Studio Code :
code .
Ajouter les dépendances
Dans le terminal, exécutez les commandes suivantes pour ajouter les packages NuGet nécessaires :
dotnet add package Azure.AI.OpenAI --prerelease dotnet add package Azure.Identity dotnet add package Microsoft.Extensions.AI --prerelease dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package ModelContextProtocol --prereleaseVérifiez que les packages ont été ajoutés en vérifiant le
MCPHostApp.csprojfichier.Exécutez la commande suivante pour générer le projet et vérifier que tout est configuré correctement :
dotnet build
Ajouter le code de l’application
Remplacez le contenu de Program.cs par le code suivant :
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Extensions.AI;
using ModelContextProtocol.Client;
// Create an IChatClient
IChatClient client =
new ChatClientBuilder(
new AzureOpenAIClient(new Uri("<your-azure-openai-endpoint>"),
new DefaultAzureCredential())
.GetChatClient("gpt-4o").AsIChatClient())
.UseFunctionInvocation()
.Build();
// Create the MCP client
var mcpClient = await McpClient.CreateAsync(
new StdioClientTransport(new()
{
Command = "npx",
Arguments = ["-y", "@azure/mcp@latest", "server", "start"],
Name = "Azure MCP",
}));
// Get all available tools from the MCP server
Console.WriteLine("Available tools:");
var tools = await mcpClient.ListToolsAsync();
foreach (var tool in tools)
{
Console.WriteLine($"{tool}");
}
Console.WriteLine();
// Conversational loop that can utilize the tools
List<ChatMessage> messages = [];
while (true)
{
Console.Write("Prompt: ");
messages.Add(new(ChatRole.User, Console.ReadLine()));
List<ChatResponseUpdate> updates = [];
await foreach (var update in client
.GetStreamingResponseAsync(messages, new() { Tools = [.. tools] }))
{
Console.Write(update);
updates.Add(update);
}
Console.WriteLine();
messages.AddMessages(updates);
}
Le code précédent effectue les tâches suivantes :
- Initie une
IChatClientabstraction en utilisant lesMicrosoft.Extensions.AIbibliothèques. - Crée un client MCP pour interagir avec le serveur Azure MCP à l’aide d’un transport d’E/S standard. La commande fournie
npxet les arguments correspondants téléchargent et démarrent le serveur Azure MCP. - Récupère et affiche une liste d’outils disponibles à partir du serveur MCP, qui est une fonction MCP standard.
- Implémente une boucle conversationnelle qui traite les requêtes utilisateur et utilise les outils pour répondre.
Exécuter et tester l’application
Effectuez les étapes suivantes pour tester votre application hôte .NET :
Dans une fenêtre de terminal ouverte à la racine de votre projet, exécutez la commande suivante pour démarrer l’application :
dotnet runUne fois l’application en cours d’exécution, entrez l’invite de test suivante :
List all of the resource groups in my subscriptionLa sortie de l’invite précédente doit ressembler au texte suivant :
The following resource groups are available for your subscription: 1. **DefaultResourceGroup-EUS** (Location: `eastus`) 2. **rg-testing** (Location: `centralus`) 3. **rg-azd** (Location: `eastus2`) 4. **msdocs-sample** (Location: `southcentralus`) 14. **ai-testing** (Location: `eastus2`) Let me know if you need further details or actions related to any of these resource groups!Explorez et testez les opérations Azure MCP à l’aide d’autres invites pertinentes, telles que :
List all of the storage accounts in my subscription Get the available tables in my storage accounts