Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido, creará un cliente mínimo de Protocolo de contexto de modelo (MCP) mediante el SDK de C# para MCP. También aprenderá a configurar el cliente para conectarse a un servidor MCP, como el creado en el inicio rápido Compilación de un servidor MCP mínimo .
Prerrequisitos
Nota:
El cliente MCP que construirás en las siguientes secciones se conectará al servidor MCP de ejemplo del inicio rápido Compilar un servidor MCP mínimo. También puede usar su propio servidor MCP si proporciona su propia configuración de conexión.
Creación de la aplicación host de .NET
Complete los pasos siguientes para crear una aplicación de consola de .NET. La aplicación actúa como host para un cliente MCP que se conecta a un servidor MCP.
Creación del proyecto
En una ventana de terminal, vaya al directorio donde desea crear la aplicación y cree una aplicación de consola con el
dotnet newcomando :dotnet new console -n MCPHostAppVaya a la carpeta del proyecto recién creada:
cd MCPHostAppEjecute los siguientes comandos para agregar los paquetes NuGet necesarios:
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 --prereleaseAbra la carpeta del proyecto en el editor que prefiera, como Visual Studio Code:
code .
Adición del código de la aplicación
Reemplace el contenido de Program.cs por el código siguiente:
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);
}
El código anterior realiza las siguientes tareas:
- Inicializa una
IChatClientabstracción mediante lasMicrosoft.Extensions.AIlibrerías. - Crea un cliente MCP y lo configura para conectarse al servidor MCP.
- Recupera y muestra una lista de herramientas disponibles del servidor MCP, que es una función de MCP estándar.
- Implementa un bucle conversacional que procesa las solicitudes del usuario y utiliza las herramientas para las respuestas.
Ejecución y prueba de la aplicación
Complete los pasos siguientes para probar la aplicación host de .NET:
En una ventana de terminal abierta a la raíz del proyecto, ejecute el siguiente comando para iniciar la aplicación:
dotnet runCuando la aplicación esté ejecutándose, ingrese un mensaje para ejecutar la herramienta ReverseEcho:
Reverse the following: "Hello, minimal MCP server!"Compruebe que el servidor responde con el mensaje de eco:
!revres PCM laminim ,olleH