Compartir a través de


Creación y conexión a un servidor MCP mínimo mediante .NET

En este inicio rápido, creará un servidor mínimo de Protocolo de contexto de modelo (MCP) mediante el SDK de C# para MCP y se conectará a él mediante GitHub Copilot. Los servidores MCP son servicios que exponen funcionalidades a los clientes a través del Protocolo de contexto de modelo (MCP).

Prerrequisitos

Creación del proyecto

  1. En una ventana de terminal, vaya al directorio donde desea crear la aplicación y cree una aplicación de consola con el dotnet new comando :

    dotnet new console -n MinimalMcpServer
    
  2. Vaya al MinimalMcpServer directorio :

    cd MinimalMcpServer
    
  3. Agregue los siguientes paquetes NuGet a la aplicación:

    dotnet add package ModelContextProtocol --prerelease
    dotnet add package Microsoft.Extensions.Hosting
    
    • El paquete ModelContextProtocol es el SDK oficial de C# para trabajar con el protocolo de contexto de modelo.
    • El paquete Microsoft.Extensions.Hosting proporciona los servicios y .NET HostBuilder genéricos para el registro y la inserción de dependencias.

Adición del código de la aplicación

Reemplace el contenido de Program.cs por el código siguiente para implementar un servidor MCP mínimo que expone herramientas de eco simples. El modelo de IA invoca estas herramientas según sea necesario para generar respuestas a las solicitudes del usuario.

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using ModelContextProtocol.Server;
using System.ComponentModel;

// Create a generic host builder for
// dependency injection, logging, and configuration.
var builder = Host.CreateApplicationBuilder(args);

// Configure logging for better integration with MCP clients.
builder.Logging.AddConsole(consoleLogOptions =>
{
consoleLogOptions.LogToStandardErrorThreshold = LogLevel.Trace;
});

// Register the MCP server and configure it to use stdio transport.
// Scan the assembly for tool definitions.
builder.Services
    .AddMcpServer()
    .WithStdioServerTransport()
    .WithToolsFromAssembly();

// Build and run the host. This starts the MCP server.
await builder.Build().RunAsync();

// Define a static class to hold MCP tools.
[McpServerToolType]
public static class EchoTool
{
    // Expose a tool that echoes the input message back to the client.
    [McpServerTool, Description("Echoes the message back to the client.")]
    public static string Echo(string message) => $"Hello from C#: {message}";

    // Expose a tool that returns the input message in reverse.
    [McpServerTool, Description("Echoes in reverse the message sent by the client.")]
    public static string ReverseEcho(string message) => new string(message.Reverse().ToArray());
}

El código anterior:

  • Crea un generador de hosts genérico para la inserción de dependencias, el registro y la configuración.
  • Configura el registro para una mejor integración con clientes MCP.
  • Registra el servidor MCP, lo configura para usar el transporte stdio y examina el ensamblado para las definiciones de herramientas.
  • Compila y ejecuta el host, que inicia el servidor MCP.
  • Define una clase estática para contener dos herramientas de MCP que devuelven valores al cliente.

Configuración del servidor MCP en Visual Studio Code

Configura GitHub Copilot en Visual Studio Code para utilizar tu servidor MCP personalizado.

  1. Si aún no lo ha hecho, abra la carpeta del proyecto en Visual Studio Code.

  2. Cree una .vscode carpeta en la raíz del proyecto.

  3. Agregue un mcp.json archivo en la .vscode carpeta con el siguiente contenido:

    {
      "inputs": [],
      "servers": {
        "MinimalMcpServer": {
          "type": "stdio",
          "command": "dotnet",
          "args": [
            "run",
            "--project",
            "${workspaceFolder}/MinimalMcpServer.csproj"
          ]
        }
      }
    }
    
  4. Guarde el archivo.

Prueba del servidor MCP

  1. Abra GitHub Copilot en Visual Studio Code y cambie al modo de agente.

  2. Seleccione el icono Seleccionar herramientas para comprobar que minimalMcpServer está disponible con ambas herramientas enumeradas.

    Captura de pantalla que muestra las herramientas de MCP disponibles.

  3. Escriba un mensaje para ejecutar la herramienta ReverseEcho :

    Reverse the following: "Hello, minimal MCP server!"
    
  4. GitHub Copilot solicita permiso para ejecutar la herramienta ReverseEcho para su solicitud. Seleccione Continuar o use la flecha para seleccionar un comportamiento más específico:

    • La sesión actual siempre ejecuta la operación en la sesión actual del modo del agente de Copilot de GitHub.
    • El área de trabajo actual siempre ejecuta el comando para el área de trabajo actual de Visual Studio Code.
    • Permitir siempre establece que la operación se ejecute siempre para cualquier sesión del modo de agente de Copilot de GitHub o cualquier área de trabajo de Visual Studio Code.
  5. Compruebe que el servidor responde con el mensaje de eco:

    !revres PCM laminim ,olleH
    

Creación de un cliente MCP mínimoIntroducción a .NET AI y el protocolo de contexto de modelo