Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida introduttiva si crea un client MCP (Model Context Protocol) minimo usando C# SDK per MCP. Si apprenderà anche come configurare il client per connettersi a un server MCP, ad esempio quello creato nella guida introduttiva Creare un server MCP minimo .
Prerequisiti
Annotazioni
Il client MCP creato nelle sezioni precedenti si connette al server MCP di esempio della guida introduttiva Creare un server MCP minimo . È anche possibile usare il proprio server MCP se si specifica una configurazione di connessione personalizzata.
Creare l'applicazione host per il framework .NET
Completare i passaggi seguenti per creare un'app console .NET. L'app funge da host per un client MCP che si connette a un server MCP.
Creare il progetto
In una finestra del terminale passare alla directory in cui si vuole creare l'app e creare una nuova app console con il
dotnet new
comando :dotnet new console -n MCPHostApp
Passare alla cartella del progetto appena creata:
cd MCPHostApp
Eseguire i comandi seguenti per aggiungere i pacchetti NuGet necessari:
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
Aprire la cartella del progetto nell'editor preferito, ad esempio Visual Studio Code:
code .
Aggiungere il codice dell'app
Sostituire il contenuto di Program.cs
con il codice seguente:
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);
}
Il codice precedente esegue le attività seguenti:
- Inizializza un'astrazione
IChatClient
utilizzando leMicrosoft.Extensions.AI
librerie. - Crea un client MCP e lo configura per la connessione al server MCP.
- Recupera e visualizza un elenco di strumenti disponibili dal server MCP, che è una funzione MCP standard.
- Implementa un ciclo di conversazione che elabora le richieste degli utenti e usa gli strumenti per le risposte.
Eseguire e testare l'app
Completare i passaggi seguenti per testare l'app host .NET:
In una finestra del terminale aperta alla radice del progetto eseguire il comando seguente per avviare l'app:
dotnet run
Dopo l'esecuzione dell'app, immettere un prompt per eseguire lo strumento ReverseEcho :
Reverse the following: "Hello, minimal MCP server!"
Verificare che il server risponda con il messaggio ricevuto:
!revres PCM laminim ,olleH
Contenuti correlati
Introduzione all'intelligenza artificiale .NET e al protocollo del contesto del modello