Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym szybkim rozpoczęciu utworzysz minimalny klient protokołu MCP (Model Context Protocol) przy użyciu zestawu SDK języka C# dla MCP. Dowiesz się również, jak skonfigurować klienta w celu nawiązania połączenia z serwerem MCP, takim jak utworzony w przewodniku Szybki start Tworzenie minimalnego serwera MCP .
Wymagania wstępne
Uwaga / Notatka
Klient MCP, który zostanie opracowany w kolejnych sekcjach, łączy się z przykładowym serwerem MCP z szybkiego przewodnika Tworzenie minimalnego serwera MCP. Jeśli podasz własną konfigurację połączenia, możesz również użyć własnego serwera MCP.
Tworzenie aplikacji hosta platformy .NET
Wykonaj poniższe kroki, aby utworzyć aplikację konsolową platformy .NET. Aplikacja działa jako host klienta MCP, który łączy się z serwerem MCP.
Tworzenie projektu
W oknie terminalu przejdź do katalogu, w którym chcesz utworzyć aplikację, i utwórz nową aplikację konsolową za
dotnet newpomocą polecenia :dotnet new console -n MCPHostAppPrzejdź do nowo utworzonego folderu projektu:
cd MCPHostAppUruchom następujące polecenia, aby dodać niezbędne pakiety NuGet:
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 --prereleaseOtwórz folder projektu w wybranym edytorze, na przykład Visual Studio Code:
code .
Dodawanie kodu aplikacji
Zastąp zawartość Program.cs następującym kodem:
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);
}
Powyższy kod wykonuje następujące zadania:
- Inicjuje
IChatClientabstrakcję za pomocąMicrosoft.Extensions.AIbibliotek. - Tworzy klienta MCP i konfiguruje go w celu nawiązania połączenia z serwerem MCP.
- Pobiera i wyświetla listę dostępnych narzędzi z serwera MCP, który jest standardową funkcją MCP.
- Implementuje pętlę konwersacyjną, która przetwarza zapytania użytkownika i używa narzędzi do generowania odpowiedzi.
Uruchamianie i testowanie aplikacji
Wykonaj następujące kroki, aby przetestować aplikację hosta .NET.
W oknie terminalu otwartym w katalogu głównym projektu uruchom następujące polecenie, aby uruchomić aplikację:
dotnet runPo uruchomieniu aplikacji wprowadź monit o uruchomienie narzędzia ReverseEcho :
Reverse the following: "Hello, minimal MCP server!"Sprawdź, czy serwer odpowiada z odpowiednim komunikatem zwrotnym.
!revres PCM laminim ,olleH