Megosztás a következőn keresztül:


Minimális MCP-ügyfél létrehozása a .NET használatával

Ebben a rövid útmutatóban egy minimális Model Context Protocol (MCP) ügyfelet hoz létre az MCP-hez készült C# SDK használatával. Azt is megtudhatja, hogyan konfigurálhatja az ügyfelet egy MCP-kiszolgálóhoz való csatlakozásra, például a minimális MCP-kiszolgáló létrehozása rövid útmutatóban létrehozotthoz.

Előfeltételek

Megjegyzés:

A következő szakaszokban létrehozott MCP-ügyfél csatlakozik a minta MCP-kiszolgálóhoz a minimal MCP-kiszolgáló létrehozása gyors kezdési útmutatóból. Saját MCP-kiszolgálót is használhat, ha saját kapcsolatkonfigurációt biztosít.

A .NET-gazdagépalkalmazás létrehozása

A .NET-konzolalkalmazás létrehozásához hajtsa végre az alábbi lépéseket. Az alkalmazás egy MCP-kliens gazdájaként működik, amely egy MCP-szerverhez csatlakozik.

A projekt létrehozása

  1. Egy terminálablakban lépjen arra a könyvtárra, ahol létre szeretné hozni az alkalmazást, és hozzon létre egy új konzolalkalmazást a dotnet new következő paranccsal:

    dotnet new console -n MCPHostApp
    
  2. Lépjen az újonnan létrehozott projektmappába:

    cd MCPHostApp
    
  3. Futtassa a következő parancsokat a szükséges NuGet-csomagok hozzáadásához:

    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. Nyissa meg a projektmappát a választott szerkesztőben, például a Visual Studio Code-ban:

    code .
    

Az alkalmazáskód hozzáadása

Cserélje le a Program.cs tartalmát a következő kódra:

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);
}

Az előző kód a következő feladatokat hajtja végre:

  • Az IChatClient absztrakció inicializálása a Microsoft.Extensions.AI könyvtárak felhasználásával.
  • Létrehoz egy MCP-ügyfelet, és konfigurálja, hogy csatlakozzon az MCP-kiszolgálóhoz.
  • Lekéri és megjeleníti az MCP-kiszolgálóról elérhető eszközök listáját, amely egy szabványos MCP-függvény.
  • Olyan beszélgetési hurkot implementál, amely feldolgozza a felhasználók kéréseit, és a válaszok eszközeit használja.

Az alkalmazás futtatása és tesztelése

A .NET-gazdagépalkalmazás teszteléséhez hajtsa végre az alábbi lépéseket:

  1. A projekt gyökeréhez megnyitott terminálablakban futtassa a következő parancsot az alkalmazás elindításához:

    dotnet run
    
  2. Az alkalmazás futtatása után adjon meg egy kérést a ReverseEcho eszköz futtatásához:

    Reverse the following: "Hello, minimal MCP server!"
    
  3. Ellenőrizze, hogy a kiszolgáló válaszol-e a visszhangzott üzenettel:

    !revres PCM laminim ,olleH
    

A .NET AI és a Model Context Protocol használatának első lépései