Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Azure MCP-Server verwendet das Model Context Protocol (MCP), um Integrationen zwischen KI-Apps und externen Tools und Datenquellen zu standardisieren, sodass KI-Systeme Vorgänge ausführen können, die kontextbewusst von Ihren Azure-Ressourcen sind.
In diesem Artikel erfahren Sie, wie Sie die folgenden Aufgaben ausführen:
- Installieren und Authentifizieren beim Azure MCP-Server
- Herstellen einer Verbindung mit Azure MCP Server mithilfe eines benutzerdefinierten .NET-Clients
- Ausführen von Eingabeaufforderungen zum Testen von Azure MCP Server-Vorgängen und Verwalten von Azure-Ressourcen
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement
- .NET 9.0 oder höher installiert
- Node.js LTS installiert
Hinweis
Die Azure-Ressourcen, auf die Sie mit Azure MCP Server zugreifen möchten, müssen bereits in Ihrem Azure-Abonnement vorhanden sein. Darüber hinaus muss Ihr Benutzerkonto über die erforderlichen RBAC-Rollen und Berechtigungen für diese Ressourcen verfügen.
Anmelden für die lokale Entwicklung
Azure MCP Server bietet eine nahtlose Authentifizierung mithilfe der tokenbasierten Authentifizierung über Microsoft Entra ID. Intern verwendet DefaultAzureCredential Azure MCP Server aus der Azure Identity-Bibliothek , um Benutzer zu authentifizieren.
Sie müssen sich bei einem der Tools anmelden, die von DefaultAzureCredential Ihrem Azure-Konto unterstützt werden, um mit Azure MCP Server zu arbeiten. Melden Sie sich mit einem Terminalfenster an, z. B. dem Visual Studio Code-Terminal:
az login
Nachdem Sie sich erfolgreich bei einem der vorherigen Tools angemeldet haben, kann Azure MCP Server Ihre Anmeldeinformationen automatisch ermitteln und zum Authentifizieren und Ausführen von Vorgängen für Azure-Dienste verwenden.
Hinweis
Sie können sich auch über Visual Studio bei Azure anmelden. Azure MCP Server kann nur Vorgänge ausführen, für die der angemeldete Benutzer über Berechtigungen zum Ausführen verfügt.
Erstellen der .NET-Host-App
Führen Sie die folgenden Schritte aus, um eine .NET-Konsolen-App zu erstellen. Die App stellt eine Verbindung mit einem KI-Modell her und fungiert als Host für einen MCP-Client, der eine Verbindung mit einem Azure MCP-Server herstellt.
Erstellen des Projekts
Öffnen Sie ein Terminal in einem leeren Ordner, in dem Sie das Projekt erstellen möchten.
Führen Sie den folgenden Befehl aus, um eine neue .NET-Konsolenanwendung zu erstellen:
dotnet new console -n MCPHostAppNavigieren Sie zum neu erstellten Projektordner:
cd MCPHostAppÖffnen Sie den Projektordner in Ihrem Editor, z. B. Visual Studio Code:
code .
Hinzufügen der Abhängigkeiten
Führen Sie im Terminal die folgenden Befehle aus, um die erforderlichen NuGet-Pakete hinzuzufügen:
dotnet add package Azure.AI.OpenAI --prerelease dotnet add package Azure.Identity dotnet add package Microsoft.Extensions.AI --prerelease dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package ModelContextProtocol --prereleaseÜberprüfen Sie, ob die Pakete hinzugefügt wurden, indem Sie die
MCPHostApp.csprojDatei überprüfen.Führen Sie den folgenden Befehl aus, um das Projekt zu erstellen und sicherzustellen, dass alles ordnungsgemäß eingerichtet ist:
dotnet build
Hinzufügen des App-Codes
Ersetzen Sie den Inhalt von Program.cs durch den folgenden Code.
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Extensions.AI;
using ModelContextProtocol.Client;
// Create an IChatClient
IChatClient client =
new ChatClientBuilder(
new AzureOpenAIClient(new Uri("<your-azure-openai-endpoint>"),
new DefaultAzureCredential())
.GetChatClient("gpt-4o").AsIChatClient())
.UseFunctionInvocation()
.Build();
// Create the MCP client
var mcpClient = await McpClient.CreateAsync(
new StdioClientTransport(new()
{
Command = "npx",
Arguments = ["-y", "@azure/mcp@latest", "server", "start"],
Name = "Azure MCP",
}));
// Get all available tools from the MCP server
Console.WriteLine("Available tools:");
var tools = await mcpClient.ListToolsAsync();
foreach (var tool in tools)
{
Console.WriteLine($"{tool}");
}
Console.WriteLine();
// Conversational loop that can utilize the tools
List<ChatMessage> messages = [];
while (true)
{
Console.Write("Prompt: ");
messages.Add(new(ChatRole.User, Console.ReadLine()));
List<ChatResponseUpdate> updates = [];
await foreach (var update in client
.GetStreamingResponseAsync(messages, new() { Tools = [.. tools] }))
{
Console.Write(update);
updates.Add(update);
}
Console.WriteLine();
messages.AddMessages(updates);
}
Der vorangehende Code führt die folgenden Aufgaben aus:
- Initialisiert eine
IChatClientAbstraktion mithilfe derMicrosoft.Extensions.AIBibliotheken. - Erstellt einen MCP-Client für die Interaktion mit dem Azure MCP-Server mithilfe eines standardmäßigen E/A-Transports. Der bereitgestellte
npxBefehl und die entsprechenden Argumente laden den Azure MCP-Server herunter und starten sie. - Ruft eine Liste der verfügbaren Tools vom MCP-Server ab und zeigt sie an, bei dem es sich um eine standardmäßige MCP-Funktion handelt.
- Implementiert eine Unterhaltungsschleife, die Benutzeraufforderungen verarbeitet und die Tools für Antworten verwendet.
Ausführen und Testen der App
Führen Sie die folgenden Schritte aus, um Ihre .NET-Host-App zu testen:
Führen Sie in einem Terminalfenster, das im Stammverzeichnis Ihres Projekts geöffnet ist, den folgenden Befehl aus, um die App zu starten:
dotnet runSobald die App ausgeführt wird, geben Sie die folgende Testaufforderung ein:
List all of the resource groups in my subscriptionDie Ausgabe für die vorherige Eingabeaufforderung sollte dem folgenden Text ähneln:
The following resource groups are available for your subscription: 1. **DefaultResourceGroup-EUS** (Location: `eastus`) 2. **rg-testing** (Location: `centralus`) 3. **rg-azd** (Location: `eastus2`) 4. **msdocs-sample** (Location: `southcentralus`) 14. **ai-testing** (Location: `eastus2`) Let me know if you need further details or actions related to any of these resource groups!Erkunden und testen Sie die Azure MCP-Vorgänge mithilfe anderer relevanter Eingabeaufforderungen, z. B.:
List all of the storage accounts in my subscription Get the available tables in my storage accounts