Поделиться через


Создание и подключение к минимальному серверу MCP с помощью .NET

В этом кратком руководстве вы создадите минимальный сервер протокола контекста модели (MCP) с помощью пакета SDK C# для MCP и подключитесь к нему с помощью GitHub Copilot. Серверы MCP — это службы, предоставляющие клиентам возможности через протокол контекста модели (MCP).

Предпосылки

Создание проекта

  1. В окне терминала перейдите в каталог, в котором вы хотите создать приложение, и создайте консольное приложение с dotnet new помощью команды:

    dotnet new console -n MinimalMcpServer
    
  2. Перейдите к каталогу MinimalMcpServer :

    cd MinimalMcpServer
    
  3. Добавьте в приложение следующие пакеты NuGet:

    dotnet add package ModelContextProtocol --prerelease
    dotnet add package Microsoft.Extensions.Hosting
    
    • Пакет ModelContextProtocol является официальным пакетом SDK C# для работы с протоколом контекста модели.
    • Пакет Microsoft.Extensions.Hosting предоставляет универсальные службы .NET HostBuilder, а также службы для ведения журнала и внедрения зависимостей.

Добавление кода приложения

Замените содержимое Program.cs следующим кодом, чтобы реализовать минимальный сервер MCP, предоставляющий простые средства эхо. Модель искусственного интеллекта вызывает эти средства при необходимости для создания ответов на запросы пользователей.

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

Предыдущий код:

  • Создает универсальный построитель хоста для внедрения зависимостей, логирования и конфигурации.
  • Настраивает ведение журнала для улучшения интеграции с клиентами MCP.
  • Регистрирует сервер MCP, настраивает его для использования транспортного протокола stdio и сканирует сборку для определения инструментов.
  • Создает и запускает хост, который стартует сервер MCP.
  • Определяет статический класс для хранения двух инструментов MCP, которые возвращают значения клиенту.

Настройка сервера MCP в Visual Studio Code

Настройте GitHub Copilot для Visual Studio Code для использования пользовательского сервера MCP:

  1. Если вы еще не сделали этого, откройте папку проекта в Visual Studio Code.

  2. Создайте папку .vscode в корне проекта.

  3. mcp.json Добавьте файл в папку .vscode со следующим содержимым:

    {
      "inputs": [],
      "servers": {
        "MinimalMcpServer": {
          "type": "stdio",
          "command": "dotnet",
          "args": [
            "run",
            "--project",
            "${workspaceFolder}/MinimalMcpServer.csproj"
          ]
        }
      }
    }
    
  4. Сохраните файл.

Тестирование сервера MCP

  1. Откройте GitHub Copilot в Visual Studio Code и перейдите в режим агента.

  2. Щелкните значок "Выбрать инструменты ", чтобы проверить доступность minMcpServer с помощью обоих инструментов.

    Снимок экрана: доступные инструменты MCP.

  3. Введите запрос на запуск средства ReverseEcho :

    Reverse the following: "Hello, minimal MCP server!"
    
  4. GitHub Copilot запрашивает разрешение на запуск средства ReverseEcho для запроса. Нажмите кнопку "Продолжить " или используйте стрелку, чтобы выбрать более конкретное поведение:

    • Текущий сеанс всегда выполняет операцию в текущем сеансе режима агента GitHub Copilot.
    • Текущая рабочая область всегда выполняет команду для текущей рабочей области Visual Studio Code.
    • Всегда разрешать настраивает операцию на постоянное выполнение для любого сеанса режима агента GitHub Copilot или любой рабочей области Visual Studio Code.
  5. Убедитесь, что сервер отвечает отражённым сообщением.

    !revres PCM laminim ,olleH
    

Создание минимального клиента MCPдля начала работы с .NET AI и протоколом контекста модели