Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De Azure MCP-server gebruikt het MCP (Model Context Protocol) om integraties tussen AI-apps en externe hulpprogramma's en gegevensbronnen te standaardiseren, zodat AI-systemen bewerkingen kunnen uitvoeren die contextbewust zijn voor uw Azure-resources.
In dit artikel leert u hoe u de volgende taken uitvoert:
- De Azure MCP-server installeren en verifiëren
- Verbinding maken met Azure MCP Server met behulp van een aangepaste .NET-client
- Prompts uitvoeren om Bewerkingen van Azure MCP Server te testen en Azure-resources te beheren
Vereiste voorwaarden
- Een Azure-account met een actief abonnement
- .NET 9.0 of hoger geïnstalleerd
- Node.js LTS geïnstalleerd
Opmerking
De Azure-resources die u wilt openen met Azure MCP Server, moeten al bestaan binnen uw Azure-abonnement. Daarnaast moet voor uw gebruikersaccount de benodigde RBAC-rollen en -machtigingen zijn toegewezen voor deze resources.
Aanmelden voor lokale ontwikkeling
Azure MCP Server biedt een naadloze verificatie-ervaring met behulp van verificatie op basis van tokens via Microsoft Entra ID. Intern maakt Azure MCP Server gebruik DefaultAzureCredential van de Azure Identity-bibliotheek om gebruikers te verifiëren.
U moet zich aanmelden bij een van de hulpprogramma's die lokaal worden ondersteund door DefaultAzureCredential uw Azure-account om te kunnen werken met Azure MCP Server. Meld u aan met behulp van een terminalvenster, zoals de Visual Studio Code-terminal:
az login
Nadat u zich hebt aangemeld bij een van de voorgaande hulpprogramma's, kan Azure MCP Server uw referenties automatisch detecteren en gebruiken om bewerkingen op Azure-services te verifiëren en uit te voeren.
Opmerking
U kunt zich ook aanmelden bij Azure via Visual Studio. Azure MCP Server kan alleen bewerkingen uitvoeren waarvoor de aangemelde gebruiker machtigingen heeft om uit te voeren.
De .NET-host-app maken
Voer de volgende stappen uit om een .NET-console-app te maken. De app maakt verbinding met een AI-model en fungeert als host voor een MCP-client die verbinding maakt met een Azure MCP-server.
Het project maken
Open een terminal naar een lege map waarin u het project wilt maken.
Voer de volgende opdracht uit om een nieuwe .NET-consoletoepassing te maken:
dotnet new console -n MCPHostAppNavigeer naar de zojuist gemaakte projectmap:
cd MCPHostAppOpen de projectmap in de gewenste editor, zoals Visual Studio Code:
code .
De afhankelijkheden toevoegen
Voer in de terminal de volgende opdrachten uit om de benodigde NuGet-pakketten toe te voegen:
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 --prereleaseControleer of de pakketten zijn toegevoegd door het
MCPHostApp.csprojbestand te controleren.Voer de volgende opdracht uit om het project te bouwen en ervoor te zorgen dat alles correct is ingesteld:
dotnet build
De app-code toevoegen
Vervang de inhoud van Program.cs met de volgende 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);
}
Met de voorgaande code worden de volgende taken uitgevoerd:
- Initialiseert een
IChatClientabstractie met behulp van deMicrosoft.Extensions.AIbibliotheken. - Hiermee maakt u een MCP-client voor interactie met de Azure MCP-server met behulp van een standaard I/O-transport. De opgegeven
npxopdracht en de bijbehorende argumenten downloaden en starten de Azure MCP-server. - Hiermee wordt een lijst met beschikbare hulpprogramma's opgehaald en weergegeven van de MCP-server. Dit is een standaard MCP-functie.
- Implementeert een gesprekslus waarmee gebruikersprompts worden verwerkt en de hulpprogramma's voor antwoorden worden gebruikt.
De app uitvoeren en testen
Voer de volgende stappen uit om uw .NET-host-app te testen:
Open in een terminalvenster naar de hoofdmap van uw project en voer de volgende opdracht uit om de app te starten:
dotnet runZodra de app wordt uitgevoerd, voert u de volgende testprompt in:
List all of the resource groups in my subscriptionDe uitvoer voor de vorige prompt moet eruitzien als de volgende tekst:
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!Verken en test de Azure MCP-bewerkingen met behulp van andere relevante prompts, zoals:
List all of the storage accounts in my subscription Get the available tables in my storage accounts