Freigeben über


Erste Schritte mit .NET AI und dem Modellkontextprotokoll

Das Model Context Protocol (MCP) ist ein offenes Protokoll, das die Integrationen zwischen KI-Apps und externen Tools und Datenquellen standardisiert. Mithilfe von MCP können Entwickler die Fähigkeiten von KI-Modellen verbessern, sodass diese präzisere, relevantere und kontextbewusste Antworten geben.

Beispielsweise können Sie mithilfe von MCP Ihre LLM mit Ressourcen verbinden, z. B.:

  • Dokumentdatenbanken oder Speicherdienste.
  • Web-APIs, die Geschäftsdaten oder -logik verfügbar machen.
  • Tools, die Dateien verwalten oder lokale Aufgaben auf dem Gerät eines Benutzers ausführen.

Viele Microsoft-Produkte unterstützen bereits MCP, einschließlich:

Sie können das MCP C#-SDK verwenden, um schnell eigene MCP-Integrationen zu erstellen und ohne erhebliche Codeänderungen zwischen verschiedenen AI-Modellen zu wechseln.

MCP-Clientserverarchitektur

MCP verwendet eine Clientserverarchitektur, die es einer KI-basierten App (dem Host) ermöglicht, über MCP-Clients eine Verbindung mit mehreren MCP-Servern herzustellen:

  • MCP-Hosts: KI-Tools, Code-Editoren oder andere Software, die ihre KI-Modelle mithilfe von Kontextressourcen über MCP verbessern. Beispielsweise kann GitHub Copilot in Visual Studio Code als MCP-Host fungieren und MCP-Clients und -Server verwenden, um seine Funktionen zu erweitern.
  • MCP-Clients: Clients, die von der Hostanwendung zum Herstellen einer Verbindung mit MCP-Servern verwendet werden, um Kontextdaten abzurufen.
  • MCP-Server: Dienste, die Funktionen für Clients über MCP verfügbar machen. Beispielsweise kann ein MCP-Server eine Abstraktion über eine REST-API oder lokale Datenquelle bereitstellen, um geschäftsdaten für das KI-Modell bereitzustellen.

Das folgende Diagramm veranschaulicht diese Architektur:

Ein Diagramm mit dem Architekturmuster von MCP, einschließlich Hosts, Clients und Servern.

MCP-Client und -Server können eine Reihe von Standardnachrichten austauschen:

Nachricht BESCHREIBUNG
InitializeRequest Diese Anforderung wird vom Client an den Server gesendet, wenn sie zuerst eine Verbindung herstellt, und fordert sie auf, mit der Initialisierung zu beginnen.
ListToolsRequest Vom Client gesendet, um eine Liste der Tools anzufordern, die der Server hat.
CallToolRequest Wird vom Client verwendet, um ein vom Server bereitgestelltes Tool aufzurufen.
ListResourcesRequest Vom Client gesendet, um eine Liste der verfügbaren Serverressourcen anzufordern.
ReadResourceRequest Vom Client an den Server gesendet, um einen bestimmten Ressourcen-URI zu lesen.
ListPromptsRequest Vom Client gesendet, um eine Liste der verfügbaren Eingabeaufforderungen und Aufforderungsvorlagen vom Server anzufordern.
GetPromptRequest Wird vom Client verwendet, um eine Vom Server bereitgestellte Eingabeaufforderung abzurufen.
PingRequest Ein Ping, der entweder vom Server oder vom Client ausgestellt wurde, um zu überprüfen, ob die andere Partei noch aktiv ist.
CreateMessageRequest Eine Anforderung des Servers zum Abrufen eines LLM über den Client. Der Kunde hat volle Diskretion darüber, welches Modell ausgewählt werden soll. Der Kunde sollte den Benutzer auch vor Beginn des Samplings informieren, damit er die Anfrage (Mensch im Prozess) prüfen und entscheiden kann, ob die Anfrage genehmigt werden soll.
SetLevelRequest Eine Anforderung des Clients an den Server, um die Protokollierung zu aktivieren oder anzupassen.

Entwickeln mit dem MCP C#-SDK

Als .NET-Entwickler können Sie MCP verwenden, indem Sie MCP-Clients und -Server erstellen, um Ihre Apps mit benutzerdefinierten Integrationen zu verbessern. MCP reduziert die Komplexität beim Verbinden eines KI-Modells mit verschiedenen Tools, Diensten und Datenquellen.

Das offizielle MCP C#-SDK ist über NuGet verfügbar und ermöglicht es Ihnen, MCP-Clients und -Server für .NET-Apps und -Bibliotheken zu erstellen. Das SDK wird durch die Zusammenarbeit zwischen Microsoft, Anthropic und der organisation des offenen MCP-Protokolls verwaltet.

Fügen Sie zunächst das MCP C#-SDK zu Ihrem Projekt hinzu:

dotnet add package ModelContextProtocol --prerelease

Anstatt eindeutige Connectors für jeden Integrationspunkt zu erstellen, können Sie häufig vordefinierte Integrationen von verschiedenen Anbietern wie GitHub und Docker nutzen oder referenzieren:

Integration mit Microsoft.Extensions.AI

Das MCP C#-SDK hängt von den Microsoft.Extensions.AI Bibliotheken ab, um verschiedene KI-Interaktionen und -Aufgaben zu verarbeiten. Diese Erweiterungsbibliotheken bieten Kerntypen und Abstraktionen für die Arbeit mit KI-Diensten, sodass Entwickler sich auf die Codierung mit konzeptionellen KI-Funktionen statt auf bestimmten Plattformen oder Anbieterimplementierungen konzentrieren können.

Zeigen Sie die MCP C#-SDK-Abhängigkeiten auf der NuGet-Paketseite an.

Weitere .NET MCP-Entwicklungsressourcen

Verschiedene Tools, Dienste und Lernressourcen stehen in den .NET- und Azure-Ökosystemen zur Verfügung, mit denen Sie MCP-Clients und -Server erstellen oder in vorhandene MCP-Server integrieren können.

Erste Schritte mit den folgenden Entwicklungstools:

Weitere Informationen zu .NET und MCP mithilfe dieser Ressourcen: