Aracılığıyla paylaş


.NET kullanarak en düşük MCP istemcisi oluşturma

Bu hızlı başlangıçta, MCP için C# SDK'sını kullanarak en düşük Model Bağlam Protokolü (MCP) istemcisi oluşturacaksınız. Ayrıca, istemciyi, Minimal bir MCP sunucusu oluştur hızlı başlangıcında oluşturulan gibi bir MCP sunucusuna bağlanacak şekilde yapılandırmayı öğrenirsiniz.

Önkoşullar

Uyarı

İlerideki bölümlerde kurduğunuz MCP istemcisi, Minimal MCP sunucusu oluşturma hızlı başlangıcından alınan örnek MCP sunucusuna bağlanır. Kendi bağlantı yapılandırmanızı sağlarsanız kendi MCP sunucunuzu da kullanabilirsiniz.

.NET konak uygulamasını oluştur

.NET konsol uygulaması oluşturmak için aşağıdaki adımları tamamlayın. Uygulama, bir MCP sunucusuna bağlanan bir MCP istemcisi için konak görevi görür.

Projeyi oluşturma

  1. Terminal penceresinde, uygulamanızı oluşturmak istediğiniz dizine gidin ve komutuyla dotnet new yeni bir konsol uygulaması oluşturun:

    dotnet new console -n MCPHostApp
    
  2. Yeni oluşturulan proje klasörüne gidin:

    cd MCPHostApp
    
  3. Gerekli NuGet paketlerini eklemek için aşağıdaki komutları çalıştırın:

    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. Proje klasörünü visual studio code gibi istediğiniz düzenleyicide açın:

    code .
    

Uygulama kodunu ekleme

Program.cs içeriğini aşağıdaki kodla değiştirin:

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

Yukarıdaki kod aşağıdaki görevleri gerçekleştirir:

  • IChatClient soyutlamasını Microsoft.Extensions.AI kitaplıkları kullanarak başlatır.
  • Bir MCP istemcisi oluşturur ve bunu MCP sunucunuza bağlanacak şekilde yapılandırılır.
  • Standart bir MCP işlevi olan MCP sunucusundan kullanılabilir araçların listesini alır ve görüntüler.
  • Kullanıcı istemlerini işleyen ve yanıtlar için araçları kullanan bir konuşma döngüsü uygular.

Uygulamayı çalıştırma ve test edin

.NET konak uygulamanızı test etmek için aşağıdaki adımları tamamlayın:

  1. Projenizin köküne açık bir terminal penceresinde aşağıdaki komutu çalıştırarak uygulamayı başlatın:

    dotnet run
    
  2. Uygulama çalıştırıldıktan sonra ReverseEcho aracını çalıştırmak için bir istem girin:

    Reverse the following: "Hello, minimal MCP server!"
    
  3. Sunucunun yankılanan iletiyle yanıt verdiğini doğrulayın:

    !revres PCM laminim ,olleH
    

.NET AI ve Model Bağlam Protokolü ile çalışmaya başlama