Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сервер Azure MCP использует протокол MCP для стандартизации интеграции между приложениями ИИ и внешними инструментами и источниками данных, что позволяет системам ИИ выполнять операции с учетом контекста ресурсов Azure.
Из этой статьи вы узнаете, как выполнить следующие задачи:
- Установка и проверка подлинности на сервере Azure MCP
- Подключение к серверу Azure MCP с помощью пользовательского клиента .NET
- Выполнение запросов на тестирование операций Azure MCP Server и управление ресурсами Azure
Предпосылки
- Учетная запись Azure с активной подпиской
- Установлена .NET 9.0 или более поздняя версия
- Node.js установлен в версии с долгосрочной поддержкой
Замечание
Ресурсы Azure, к которым вы планируете получить доступ с помощью Azure MCP Server, должны уже существовать в подписке Azure. Кроме того, учетная запись пользователя должна иметь необходимые роли и разрешения RBAC, назначенные для этих ресурсов.
Вход в Azure MCP Server для локальной разработки
Сервер Azure MCP аутентифицируется в Microsoft Entra ID с помощью библиотеки удостоверений Azure для .NET. Сервер поддерживает два режима проверки подлинности:
-
Режим брокера: использует собственную проверку подлинности операционной системы (например, диспетчер веб-учетных записей Windows) с
InteractiveBrowserCredential. - Режим цепочки учетных данных: пытается выполнить несколько методов проверки подлинности в последовательности: переменные среды, Visual Studio Code, Visual Studio, Azure CLI, Azure PowerShell, Azure Developer CLI и интерактивную проверку подлинности браузера.
Войдите с помощью любого из следующих методов:
- Visual Studio Code
- Visual Studio
- Azure CLI
- Azure PowerShell
- Интерфейс командной строки разработчика Azure
- Откройте палитру команд (
Ctrl+Shift+PилиCmd+Shift+Pна Компьютере Mac). - Запустите Azure: войдите и следуйте инструкциям.
После входа Azure MCP Server может выполнять операции проверки подлинности и выполнения операций в службах Azure на основе ваших разрешений.
Создание ведущего приложения .NET
Выполните следующие действия, чтобы создать консольное приложение .NET. Приложение подключается к модели искусственного интеллекта и выступает в качестве узла для клиента MCP, который подключается к серверу Azure MCP.
Создание проекта
Откройте терминал в пустую папку, в которой вы хотите создать проект.
Выполните следующую команду, чтобы создать консольное приложение .NET:
dotnet new console -n MCPHostAppПерейдите в только что созданную папку проекта:
cd MCPHostAppОткройте папку проекта в выбранном редакторе, например Visual Studio Code:
code .
Добавление зависимостей
В терминале выполните следующие команды, чтобы добавить необходимые пакеты 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Убедитесь, что пакеты были добавлены, проверив
MCPHostApp.csprojфайл.Выполните следующую команду, чтобы создать проект и убедиться, что все настроено правильно:
dotnet build
Добавление кода приложения
Замените все содержимое Program.cs следующим кодом:
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);
}
Приведенный выше код выполняет следующие задачи:
- Инициализирует
IChatClientабстракцию с помощьюMicrosoft.Extensions.AIбиблиотек. - Создает клиент MCP для взаимодействия с сервером Azure MCP с помощью стандартного транспорта ввода-вывода. Указанная
npxкоманда и соответствующие аргументы скачивают и запускают сервер Azure MCP. - Извлекает и отображает список доступных средств с сервера MCP, который является стандартной функцией MCP.
- Реализует цикл беседы, который обрабатывает запросы пользователей и использует средства для ответов.
Запуск и тестирование приложения
Выполните следующие действия, чтобы протестировать хост-приложение .NET:
В окне терминала откройте корень проекта, выполните следующую команду, чтобы запустить приложение:
dotnet runПосле запуска приложения введите следующую тестовую строку:
List all of the resource groups in my subscriptionВыходные данные предыдущего запроса должны выглядеть следующим образом:
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!Изучите и проверьте операции Azure MCP с помощью других соответствующих запросов, таких как:
List all of the storage accounts in my subscription Get the available tables in my storage accounts