Aracılığıyla paylaş


.NET kullanarak en düşük MCP sunucusu oluşturma ve sunucuya bağlanma

Bu hızlı başlangıçta, MCP için C# SDK'sını kullanarak en düşük Model Bağlam Protokolü (MCP) sunucusu oluşturacak ve GitHub Copilot kullanarak bu sunucuya bağlanacaksınız. MCP sunucuları, Model Bağlam Protokolü (MCP) aracılığıyla istemcilerin özelliklerini kullanıma sunan hizmetlerdir.

Önkoşullar

Projeyi oluşturma

  1. Terminal penceresinde, uygulamanızı oluşturmak istediğiniz dizine gidin ve komutuyla dotnet new yeni bir konsol uygulaması oluşturun:

    dotnet new console -n MinimalMcpServer
    
  2. Dizine MinimalMcpServer gidin:

    cd MinimalMcpServer
    
  3. Aşağıdaki NuGet paketlerini uygulamanıza ekleyin:

    dotnet add package ModelContextProtocol --prerelease
    dotnet add package Microsoft.Extensions.Hosting
    
    • ModelContextProtocol paketi, Model Bağlam Protokolü ile çalışmaya yönelik resmi C# SDK'dır.
    • Microsoft.Extensions.Hosting paketi, kaydetme ve bağımlılık enjeksiyonu için genel .NET altyapı sağlayıcıları ve hizmetleri sunar.

Uygulama kodunu ekleme

Minimal bir MCP sunucusunu uygulayarak basit yankı işlevlerini sunmak için Program.cs'nin içeriğini aşağıdaki kodla değiştirin. Yapay zeka modeli, kullanıcı istemlerine yanıt oluşturmak için gerektiğinde bu araçları çağırır.

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

Önceki kod:

  • Bağımlılık ekleme, günlüğe kaydetme ve yapılandırma için genel bir konak oluşturucu oluşturur.
  • MCP istemcileriyle daha iyi entegrasyon için günlüğe kaydetme yapılandırılır.
  • MCP sunucusunu kaydeder, stdio aktarım kullanacak şekilde yapılandırır ve takım tanımları için derlemeyi tarar.
  • MCP sunucusunu başlatan ana bilgisayarı oluşturur ve çalıştırır.
  • Değerleri istemciye geri yankılayan iki MCP aracını tutmak için statik bir sınıf tanımlar.

Visual Studio Code'da MCP sunucusunu yapılandırma

Visual Studio Code için GitHub Copilot'ı özel MCP sunucunuzu kullanacak şekilde yapılandırın:

  1. Henüz açmadıysanız proje klasörünüzü Visual Studio Code'da açın.

  2. Projenizin kökünde bir .vscode klasör oluşturun.

  3. Klasöre aşağıdaki içeriğe sahip bir mcp.json dosya .vscode ekleyin:

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

MCP sunucusunu test edin

  1. Visual Studio Code'da GitHub Copilot'ı açın ve aracı moduna geçin.

  2. MinimalMcpServer'ınızın her iki araçta da listelendiğini doğrulamak için Araçları seç simgesini seçin.

    Kullanılabilir MCP araçlarını gösteren ekran görüntüsü.

  3. ReverseEcho aracını çalıştırmak için bir istem girin:

    Reverse the following: "Hello, minimal MCP server!"
    
  4. GitHub Copilot, isteminiz için ReverseEcho aracını çalıştırmak için izin ister. Devam'ı seçin veya daha belirli bir davranış seçmek için oku kullanın:

    • Geçerli oturum her zaman işlemi geçerli GitHub Copilot Aracı Modu oturumunda çalıştırır.
    • Geçerli çalışma alanı, her zaman geçerli Visual Studio Code çalışma alanı için komutu çalıştırır.
    • Her zaman izin ver , işlemi her zaman herhangi bir GitHub Copilot Aracı Modu oturumu veya herhangi bir Visual Studio Code çalışma alanı için çalışacak şekilde ayarlar.
  5. Sunucunun yankılanan iletiyle yanıt verdiğini doğrulayın:

    !revres PCM laminim ,olleH
    

En düşük MCP istemcisi oluşturma.NET AI ve Model Bağlam Protokolü ile çalışmaya başlama