Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
- .NET 8.0 SDK eller senare
- Visual Studio Code
- GitHub Copilot-tillägg för Visual Studio Code
Skapa projektet
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
Gå till
MinimalMcpServer
katalogen:cd MinimalMcpServer
Lägg till följande NuGet-paket i din app:
dotnet add package ModelContextProtocol --prerelease dotnet add package Microsoft.Extensions.Hosting
- ModelContextProtocol-paketet är den officiella C#-SDK:t för att arbeta med Model Context Protocol.
-
Microsoft.Extensions.Hosting-paketet tillhandahåller generiska .NET
HostBuilder
- och -tjänster för loggning och beroendeinmatning.
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:
Om du inte redan har gjort det öppnar du projektmappen i Visual Studio Code.
Skapa en
.vscode
mapp i roten av projektet.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" ] } } }
Spara filen.
Testa MCP-servern
Öppna GitHub Copilot i Visual Studio Code och växla till agentläge.
Välj ikonen Välj verktyg för att kontrollera att MinimalMcpServer är tillgänglig med båda verktygen i listan.
Ange en uppmaning om att köra verktyget ReverseEcho :
Reverse the following: "Hello, minimal MCP server!"
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.
Kontrollera att servern svarar med det ekade meddelandet:
!revres PCM laminim ,olleH
Relaterat innehåll
Skapa en minimal MCP-klientKom igång med .NET AI och Model Context Protocol