Sdílet prostřednictvím


Začínáme používat Azure MCP Server s .NET

Azure MCP Server používá protokol MCP (Model Context Protocol) ke standardizaci integrací mezi aplikacemi AI a externími nástroji a zdroji dat, což umožňuje systémům AI provádět operace, které o vašich prostředcích Azure vědí kontext.

V tomto článku se dozvíte, jak provést následující úlohy:

  • Instalace a ověření na serveru Azure MCP
  • Připojení k Azure MCP Serveru pomocí vlastního klienta .NET
  • Spuštění výzvy k otestování operací serveru Azure MCP a správy prostředků Azure

Požadavky

Poznámka:

Prostředky Azure, ke kterým chcete získat přístup pomocí Azure MCP Serveru, už musí existovat v rámci vašeho předplatného Azure. Kromě toho musí mít váš uživatelský účet přiřazené potřebné role a oprávnění RBAC pro tyto prostředky.

Přihlášení pro místní vývoj

Azure MCP Server poskytuje bezproblémové ověřování pomocí ověřování založeného na tokenech přes Microsoft Entra ID. Azure MCP Server interně používá DefaultAzureCredential k ověřování uživatelů z knihovny identit Azure .

Abyste mohli pracovat s Azure MCP Serverem DefaultAzureCredential , musíte se přihlásit k některému z nástrojů podporovaných místně pomocí účtu Azure. Přihlaste se pomocí okna terminálu, jako je terminál editoru Visual Studio Code:

az login

Po úspěšném přihlášení k některému z předchozích nástrojů může Azure MCP Server automaticky zjišťovat vaše přihlašovací údaje a používat je k ověřování a provádění operací se službami Azure.

Poznámka:

K Azure se můžete také přihlásit prostřednictvím sady Visual Studio. Azure MCP Server dokáže spouštět jenom operace, které má přihlášený uživatel oprávnění provádět.

Vytvoření hostitelské aplikace .NET

Provedením následujících kroků vytvořte konzolovou aplikaci .NET. Aplikace se připojí k modelu AI a funguje jako hostitel klienta MCP, který se připojuje k serveru Azure MCP.

Vytvoření projektu

  1. Otevřete terminál do prázdné složky, do které chcete projekt vytvořit.

  2. Spuštěním následujícího příkazu vytvořte novou konzolovou aplikaci .NET:

    dotnet new console -n MCPHostApp
    
  3. Přejděte do nově vytvořené složky projektu:

    cd MCPHostApp
    
  4. Otevřete složku projektu ve zvoleném editoru, například Visual Studio Code:

    code .
    

Přidání závislostí

  1. V terminálu spusťte následující příkazy a přidejte potřebné balíčky NuGet:

    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
    
  2. Zkontrolujte soubor a MCPHostApp.csproj ověřte, že se balíčky přidaly.

  3. Spuštěním následujícího příkazu sestavte projekt a ujistěte se, že je vše správně nastavené:

    dotnet build
    

Přidání kódu aplikace

Obsah Program.cs nahraďte následujícím kódem:

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);
}

Předchozí kód provádí následující úlohy:

  • Inicializuje IChatClient abstrakci pomocí Microsoft.Extensions.AI knihoven.
  • Vytvoří klienta MCP pro interakci se serverem Azure MCP pomocí standardního přenosu vstupně-výstupních operací. Zadaný npx příkaz a odpovídající argumenty stáhne a spustí Azure MCP Server.
  • Načte a zobrazí seznam dostupných nástrojů ze serveru MCP, což je standardní funkce MCP.
  • Implementuje konverzační smyčku, která zpracovává výzvy uživatelů a využívá nástroje pro odpovědi.

Spuštění a otestování aplikace

Provedením následujících kroků otestujte hostitelskou aplikaci .NET:

  1. V okně terminálu otevřete kořen projektu a spusťte aplikaci spuštěním následujícího příkazu:

    dotnet run
    
  2. Po spuštění aplikace zadejte následující testovací výzvu:

    List all of the resource groups in my subscription
    

    Výstup předchozí výzvy by měl vypadat podobně jako v následujícím textu:

    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!
    
  3. Prozkoumejte a otestujte operace Azure MCP pomocí dalších relevantních výzev, například:

    List all of the storage accounts in my subscription
    Get the available tables in my storage accounts
    

Další kroky