Partager via


Créer un client MCP minimal à l’aide de .NET

Dans ce guide de démarrage rapide, vous générez un client MCP (Model Context Protocol) minimal à l’aide du SDK C# pour MCP. Vous allez également apprendre à configurer le client pour qu’il se connecte à un serveur MCP, tel que celui créé dans le guide de démarrage rapide de build d’un serveur MCP minimal .

Conditions préalables

Remarque

Le client MCP que vous générez dans les sections suivantes se connecte à l'exemple de serveur MCP à partir du démarrage rapide Construire un serveur MCP minimal Vous pouvez également utiliser votre propre serveur MCP si vous fournissez votre propre configuration de connexion.

Créer l’application hôte .NET

Effectuez les étapes suivantes pour créer une application console .NET. L’application agit en tant qu’hôte pour un client MCP qui se connecte à un serveur MCP.

Créer le projet

  1. Dans une fenêtre de terminal, accédez au répertoire dans lequel vous souhaitez créer votre application et créez une application console avec la dotnet new commande :

    dotnet new console -n MCPHostApp
    
  2. Accédez au dossier de projet nouvellement créé :

    cd MCPHostApp
    
  3. 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
    dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease
    dotnet add package ModelContextProtocol --prerelease
    
  4. Ouvrez le dossier du projet dans votre éditeur de choix, par exemple Visual Studio Code :

    code .
    

Ajoutez 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 using Azure OpenAI.
IChatClient client =
    new ChatClientBuilder(
        new AzureOpenAIClient(new Uri("<your-azure-openai-endpoint>"),
        new DefaultAzureCredential())
        .GetChatClient("gpt-4o").AsIChatClient())
    .UseFunctionInvocation()
    .Build();

// Create the MCP client
// Configure it to start and connect to your MCP server.
IMcpClient mcpClient = await McpClientFactory.CreateAsync(
    new StdioClientTransport(new()
    {
        Command = "dotnet run",
        Arguments = ["--project", "<path-to-your-mcp-server-project>"],
        Name = "Minimal MCP Server",
    }));

// List all available tools from the MCP server.
Console.WriteLine("Available tools:");
IList<McpClientTool> tools = await mcpClient.ListToolsAsync();
foreach (McpClientTool tool in tools)
{
    Console.WriteLine($"{tool}");
}
Console.WriteLine();

// Conversational loop that can utilize the tools via prompts.
List<ChatMessage> messages = [];
while (true)
{
    Console.Write("Prompt: ");
    messages.Add(new(ChatRole.User, Console.ReadLine()));

    List<ChatResponseUpdate> updates = [];
    await foreach (ChatResponseUpdate 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 :

  • Initialise une abstraction IChatClient en utilisant les bibliothèques Microsoft.Extensions.AI.
  • Crée un client MCP et le configure pour se connecter à votre serveur 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 des utilisateurs et utilise les outils pour formuler des réponses.

Exécuter et tester l’application

Effectuez les étapes suivantes pour tester votre application hôte .NET :

  1. Dans une fenêtre de terminal ouverte à la racine de votre projet, exécutez la commande suivante pour démarrer l’application :

    dotnet run
    
  2. Une fois l’application en cours d’exécution, entrez une invite pour exécuter l’outil ReverseEcho :

    Reverse the following: "Hello, minimal MCP server!"
    
  3. Vérifiez que le serveur répond avec le message écho :

    !revres PCM laminim ,olleH
    

Prise en main de .NET AI et du protocole de contexte de modèle