Dela via


Skapa och ansluta till en minimal MCP-server med hjälp av .NET

I den här snabbstarten skapar du en minimal MCP-server (Model Context Protocol) med C# SDK för MCP och ansluter till den med GitHub Copilot. MCP-servrar är tjänster som exponerar funktioner för klienter via Model Context Protocol (MCP).

Förutsättningar

Skapa projektet

  1. I ett terminalfönster navigerar du till katalogen där du vill skapa din app och skapar en ny konsolapp med dotnet new kommandot :

    dotnet new console -n MinimalMcpServer
    
  2. Gå till MinimalMcpServer katalogen:

    cd MinimalMcpServer
    
  3. Lägg till följande NuGet-paket i din app:

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

Lägg till appkoden

Ersätt innehållet i Program.cs med följande kod för att implementera en minimal MCP-server som exponerar enkla ekoverktyg. AI-modellen anropar dessa verktyg efter behov för att generera svar på användarfrågor.

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

Föregående kod:

  • Skapar en allmän värdbyggare för beroendeinmatning, loggning och konfiguration.
  • Konfigurerar loggning för bättre integrering med MCP-klienter.
  • Registrerar MCP-servern, konfigurerar den för att använda stdio-transport och söker igenom sammansättningen efter verktygsdefinitioner.
  • Skapar och kör värddatorn, som startar MCP-servern.
  • Definierar en statisk klass för att lagra två MCP-verktyg som återger värden till klienten.

Konfigurera MCP-servern i Visual Studio Code

Konfigurera GitHub Copilot för Visual Studio Code för att använda din anpassade MCP-server:

  1. Om du inte redan har gjort det öppnar du projektmappen i Visual Studio Code.

  2. Skapa en .vscode mapp i roten av projektet.

  3. Lägg till en mcp.json fil i .vscode mappen med följande innehåll:

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

Testa MCP-servern

  1. Öppna GitHub Copilot i Visual Studio Code och växla till agentläge.

  2. Välj ikonen Välj verktyg för att kontrollera att MinimalMcpServer är tillgänglig med båda verktygen i listan.

    En skärmbild som visar tillgängliga MCP-verktyg.

  3. Ange en uppmaning om att köra verktyget ReverseEcho :

    Reverse the following: "Hello, minimal MCP server!"
    
  4. GitHub Copilot begär behörighet att köra ReverseEcho-verktyget för din fråga. Välj Fortsätt eller använd pilen för att välja ett mer specifikt beteende:

    • Den aktuella sessionen kör alltid åtgärden i den aktuella GitHub Copilot-agentlägessessionen.
    • Den aktuella arbetsytan kör alltid kommandot för den aktuella Visual Studio Code-arbetsytan.
    • Tillåt alltid att åtgärden alltid körs för alla GitHub Copilot-agentlägessessioner eller visual Studio Code-arbetsytor.
  5. Kontrollera att servern svarar med det ekade meddelandet:

    !revres PCM laminim ,olleH
    

Skapa en minimal MCP-klientKom igång med .NET AI och Model Context Protocol