Freigeben über


Erstellen und Herstellen einer Verbindung mit einem minimalen MCP-Server mithilfe von .NET

In dieser Schnellstartanleitung erstellen Sie einen minimalen McP-Server (Model Context Protocol) mit dem C#SDK für MCP und stellen eine Verbindung mit dem Server mithilfe von GitHub Copilot her. MCP-Server sind Dienste, die Über das Model Context Protocol (MCP) Funktionen für Clients verfügbar machen.

Voraussetzungen

Erstelle das Projekt

  1. Navigieren Sie in einem Terminalfenster zu dem Verzeichnis, in dem Sie Ihre App erstellen möchten, und erstellen Sie eine neue Konsolen-App mit dem dotnet new Befehl:

    dotnet new console -n MinimalMcpServer
    
  2. Navigieren Sie zum MinimalMcpServer Verzeichnis:

    cd MinimalMcpServer
    
  3. Fügen Sie Ihrer App die folgenden NuGet-Pakete hinzu:

    dotnet add package ModelContextProtocol --prerelease
    dotnet add package Microsoft.Extensions.Hosting
    

Fügen Sie den App-Code hinzu

Ersetzen Sie den Inhalt von Program.cs mit dem folgenden Code, um einen minimalen MCP-Server zu implementieren, der einfache Echo-Werkzeuge bereitstellt. Das KI-Modell ruft diese Tools nach Bedarf auf, um Antworten auf Benutzeraufforderungen zu generieren.

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

Der vorherige Code:

  • Erstellt einen generischen Host-Generator für Abhängigkeitseinfügung, Protokollierung und Konfiguration.
  • Konfiguriert die Protokollierung für eine bessere Integration in MCP-Clients.
  • Registriert den MCP-Server, konfiguriert ihn für die Verwendung des Stdiotransports und scannt die Assembly nach Tooldefinitionen.
  • Erstellt und führt den Host aus, der den MCP-Server startet.
  • Definiert eine statische Klasse, die zwei MCP-Tools enthält, die Werte zurück an den Client wiedergeben.

Konfigurieren des MCP-Servers in Visual Studio Code

Konfigurieren Sie GitHub Copilot für Visual Studio Code für die Verwendung Ihres benutzerdefinierten MCP-Servers:

  1. Falls noch nicht geschehen, öffnen Sie den Projektordner in Visual Studio Code.

  2. Erstellen Sie einen .vscode Ordner im Stammverzeichnis Ihres Projekts.

  3. Fügen Sie eine mcp.json.vscode Datei im Ordner mit dem folgenden Inhalt hinzu:

    {
      "inputs": [],
      "servers": {
        "MinimalMcpServer": {
          "type": "stdio",
          "command": "dotnet",
          "args": [
            "run",
            "--project",
            "${workspaceFolder}/MinimalMcpServer.csproj"
          ]
        }
      }
    }
    
  4. Speichern Sie die Datei.

Testen des MCP-Servers

  1. Öffnen Sie GitHub Copilot in Visual Studio Code, und wechseln Sie zum Agentmodus.

  2. Wählen Sie das Symbol "Tools auswählen " aus, um zu überprüfen, ob Ihr MinimalMcpServer mit beiden aufgeführten Tools verfügbar ist.

    Screenshot der verfügbaren MCP-Tools.

  3. Geben Sie eine Eingabeaufforderung ein, um das ReverseEcho-Tool auszuführen:

    Reverse the following: "Hello, minimal MCP server!"
    
  4. GitHub Copilot fordert die Berechtigung zum Ausführen des ReverseEcho-Tools für Ihre Eingabeaufforderung an. Wählen Sie "Weiter" aus, oder verwenden Sie den Pfeil, um ein spezifisches Verhalten auszuwählen:

    • Die aktuelle Sitzung führt immer den Vorgang in der aktuellen GitHub Copilot Agent Mode-Sitzung aus.
    • Der aktuelle Arbeitsbereich führt immer den Befehl für den aktuellen Visual Studio Code-Arbeitsbereich aus.
    • Immer erlauben legt fest, dass der Vorgang immer für jede GitHub Copilot-Agentenmodus-Sitzung oder jeden beliebigen Visual Studio Code-Arbeitsbereich ausgeführt wird.
  5. Stellen Sie sicher, dass der Server mit der echoierten Nachricht antwortet:

    !revres PCM laminim ,olleH
    

Erstellen eines minimalen MCP-Clients– Erste Schritte mit .NET AI und dem Model Context Protocol