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.
Azure MCP Server använder Model Context Protocol (MCP) för att standardisera integreringar mellan AI-appar och externa verktyg och datakällor, vilket gör det möjligt för AI-system att utföra åtgärder som är sammanhangsmedvetna om dina Azure-resurser.
I den här artikeln får du lära dig hur du utför följande uppgifter:
- Installera och autentisera till Azure MCP Server
- Ansluta till Azure MCP Server med en anpassad .NET-klient
- Kör uppmaningar för att testa Azure MCP Server-åtgärder och hantera Azure-resurser
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration
- .NET 9.0 eller senare installerat
- Node.js LTS installerat
Anmärkning
De Azure-resurser som du tänker komma åt med Azure MCP Server måste redan finnas i din Azure-prenumeration. Dessutom måste ditt användarkonto ha nödvändiga RBAC-roller och behörigheter tilldelade för dessa resurser.
Logga in för lokal utveckling
Azure MCP Server ger en sömlös autentiseringsupplevelse med tokenbaserad autentisering via Microsoft Entra-ID. Internt använder DefaultAzureCredential Azure MCP Server från Azure Identity-biblioteket för att autentisera användare.
Du måste logga in på något av de verktyg som stöds lokalt DefaultAzureCredential med ditt Azure-konto för att arbeta med Azure MCP Server. Logga in med ett terminalfönster, till exempel Visual Studio Code-terminalen:
az login
När du har loggat in på något av ovanstående verktyg kan Azure MCP Server automatiskt identifiera dina autentiseringsuppgifter och använda dem för att autentisera och utföra åtgärder på Azure-tjänster.
Anmärkning
Du kan också logga in på Azure via Visual Studio. Azure MCP Server kan bara köra åtgärder som den inloggade användaren har behörighet att utföra.
Skapa .NET-värdappen
Slutför följande steg för att skapa en .NET-konsolapp. Appen ansluter till en AI-modell och fungerar som värd för en MCP-klient som ansluter till en Azure MCP-server.
Skapa projektet
- Öppna en terminal till en tom mapp där du vill skapa projektet. 
- Kör följande kommando för att skapa ett nytt .NET-konsolprogram: - dotnet new console -n MCPHostApp
- Navigera till den nyligen skapade projektmappen: - cd MCPHostApp
- Öppna projektmappen i valfri redigerare, till exempel Visual Studio Code: - code .
Lägg till beroendena
- I terminalen kör du följande kommandon för att lägga till nödvändiga NuGet-paket: - 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
- Kontrollera att paketen har lagts till genom att kontrollera - MCPHostApp.csprojfilen.
- Kör följande kommando för att skapa projektet och se till att allt är korrekt konfigurerat: - dotnet build
Lägg till appkoden
Ersätt innehållet i Program.cs med följande kod:
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);
}
Föregående kod utför följande uppgifter:
- Initierar en IChatClientabstraktion med hjälp av bibliotekenMicrosoft.Extensions.AI.
- Skapar en MCP-klient för att interagera med Azure MCP Server med hjälp av en vanlig I/O-transport. Det angivna npxkommandot och motsvarande argument laddar ned och startar Azure MCP-servern.
- Hämtar och visar en lista över tillgängliga verktyg från MCP-servern, som är en mcp-standardfunktion.
- Implementerar en konversationsloop som bearbetar användarens frågor och använder verktygen för svar.
Köra och testa appen
Utför följande steg för att testa .NET-värdappen:
- Kör följande kommando i ett terminalfönster som är öppet för projektets rot för att starta appen: - dotnet run
- När appen har körts anger du följande testprompt: - List all of the resource groups in my subscription- Utdata för föregående fråga bör likna följande text: - 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!
- Utforska och testa Azure MCP-åtgärder med hjälp av andra relevanta frågor, till exempel: - List all of the storage accounts in my subscription Get the available tables in my storage accounts