Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сервер Azure MCP использует протокол MCP для стандартизации интеграции между приложениями ИИ и внешними инструментами и источниками данных, что позволяет системам ИИ выполнять операции с учетом контекста ресурсов Azure.
Из этой статьи вы узнаете, как выполнить следующие задачи:
- Установка и проверка подлинности на сервере Azure MCP
- Подключение к серверу Azure MCP с помощью режима агента GitHub Copilot в Visual Studio Code
- Выполнение запросов на тестирование операций azure MCP Server и взаимодействие с ресурсами Azure
Предпосылки
- Учетная запись Azure с активной подпиской
- Visual Studio Code
- GitHub Copilot расширение для Visual Studio Code
Замечание
Ресурсы Azure, к которым вы планируете получить доступ с помощью Azure MCP Server, должны уже существовать в подписке Azure. Кроме того, учетная запись пользователя должна иметь необходимые роли и разрешения RBAC, назначенные для этих ресурсов.
Установка сервера Azure MCP
Выберите один из следующих параметров, чтобы установить сервер Azure MCP в Visual Studio Code:
Чтобы установить сервер Azure MCP для Visual Studio Code в параметрах пользователя, выберите следующую ссылку:
Список параметров установки открывается в Visual Studio Code. Выберите "Установить сервер" , чтобы добавить конфигурацию сервера в параметры пользователя.
Откройте GitHub Copilot и выберите режим агента. Дополнительные сведения о режиме агента см. в документации по Visual Studio Code.
Обновите список инструментов, чтобы просмотреть Azure MCP Server в качестве доступных вариантов:
Использование запросов для тестирования сервера Azure MCP
Откройте GitHub Copilot и выберите режим агента.
Введите запрос, который приводит к использованию агентом средств Azure MCP Server, таких как перечисление групп ресурсов Azure.
Чтобы пройти проверку подлинности Azure MCP Server, Copilot предложит войти в Azure с помощью браузера.
Замечание
Copilot не предложит вам войти в Azure, если вы уже прошли проверку подлинности с помощью других локальных инструментов, таких как Azure CLI.
Copilot запрашивает разрешение на выполнение необходимой операции Azure MCP Server для вашего запроса. Нажмите кнопку "Продолжить " или используйте стрелку, чтобы выбрать более конкретное поведение:
- Текущий сеанс всегда выполняет операцию в текущем сеансе режима агента GitHub Copilot.
- Текущая рабочая область всегда выполняет команду для текущей рабочей области Visual Studio Code.
- Всегда разрешать настраивает операцию на постоянное выполнение для любого сеанса режима агента GitHub Copilot или любой рабочей области Visual Studio Code.
Выходные данные предыдущего запроса должны выглядеть следующим образом:
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
Из этой статьи вы узнаете, как выполнить следующие задачи:
- Установка и проверка подлинности на сервере Azure MCP
- Подключение к серверу Azure MCP с помощью пользовательского клиента .NET
- Выполнение запросов на тестирование операций Azure MCP Server и управление ресурсами Azure
Предпосылки
- Учетная запись Azure с активной подпиской
- .NET 9.0
- Node.js
Замечание
Ресурсы Azure, к которым вы планируете получить доступ с помощью Azure MCP Server, должны уже существовать в подписке Azure. Кроме того, учетная запись пользователя должна иметь необходимые роли и разрешения RBAC, назначенные для этих ресурсов.
Авторизация для локальной разработки
Сервер Azure MCP обеспечивает бесшовный опыт проверки подлинности на основе токенов через Microsoft Entra ID. На внутреннем сервере Azure MCP используется DefaultAzureCredential
из библиотеки удостоверений Azure для проверки подлинности пользователей.
Для работы с Azure MCP Server необходимо войти в одно из поддерживаемых локально средств с вашей учетной записью Azure. Войдите с помощью окна терминала, например терминала Visual Studio Code:
После успешного входа в один из предыдущих средств Azure MCP Server может автоматически обнаруживать учетные данные и использовать их для проверки подлинности и выполнения операций в службах Azure.
Замечание
Вы также можете войти в Azure через Visual Studio. Сервер Azure MCP может выполнять только операции, которые пользователь, вошедшего в систему, имеет разрешения на выполнение.
Создание ведущего приложения .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;
using ModelContextProtocol.Protocol.Transport;
// 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 McpClientFactory.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
Из этой статьи вы узнаете, как выполнить следующие задачи:
- Установка и проверка подлинности на сервере Azure MCP
- Подключение к серверу Azure MCP с помощью пользовательского клиента Python
- Выполнение запросов на тестирование операций Azure MCP Server и управление ресурсами Azure
Предпосылки
- Учетная запись Azure с активной подпиской
- Python 3.9 или более поздней версии, установленный локально
- Node.js установлен локально
Замечание
Ресурсы Azure, к которым вы планируете получить доступ с помощью Azure MCP Server, должны уже существовать в подписке Azure. Кроме того, учетная запись пользователя должна иметь необходимые роли и разрешения RBAC, назначенные для этих ресурсов.
Авторизация для локальной разработки
Сервер Azure MCP обеспечивает бесшовный опыт проверки подлинности на основе токенов через Microsoft Entra ID. На внутреннем сервере Azure MCP используется DefaultAzureCredential
из библиотеки удостоверений Azure для проверки подлинности пользователей.
Для работы с Azure MCP Server необходимо войти в одно из поддерживаемых локально средств с вашей учетной записью Azure. Войдите с помощью окна терминала, например терминала Visual Studio Code:
После успешного входа в один из предыдущих средств Azure MCP Server может автоматически обнаруживать учетные данные и использовать их для проверки подлинности и выполнения операций в службах Azure.
Замечание
Вы также можете войти в Azure через Visual Studio. Сервер Azure MCP может выполнять только операции, которые пользователь, вошедшего в систему, имеет разрешения на выполнение.
Создание приложения Python
Выполните следующие действия, чтобы создать приложение Python. Приложение подключается к модели искусственного интеллекта и выступает в качестве узла для клиента MCP, который подключается к серверу Azure MCP.
Создание проекта
Откройте пустую папку в выбранном редакторе.
Создайте файл с именем
requirements.txt
и добавьте следующие зависимости библиотеки:mcp azure-identity openai logging
В той же папке создайте новый файл с именем
.env
и добавьте следующие переменные среды:AZURE_OPENAI_ENDPOINT=<your-azure-openai-endpoint> AZURE_OPENAI_MODEL=<your-model-deployment-name>
Создайте пустой файл с именем
main.py
, чтобы сохранить код для приложения.
Создание среды и установка зависимостей
Откройте терминал в новой папке и создайте виртуальную среду Python для приложения:
python -m venv venv
Активируйте виртуальную среду:
venv\Scripts\activate
Установка зависимостей из
requirements.txt
:pip install -r requirements.txt
Добавление кода приложения
Обновите содержимое Main.py
следующим кодом:
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI
from mcp import ClientSession, StdioServerParameters, types
from mcp.client.stdio import stdio_client
import json, os, logging, asyncio
from dotenv import load_dotenv
# Setup logging and load environment variables
logger = logging.getLogger(__name__)
load_dotenv()
# Azure OpenAI configuration
AZURE_OPENAI_ENDPOINT = os.getenv("AZURE_OPENAI_ENDPOINT")
AZURE_OPENAI_MODEL = os.getenv("AZURE_OPENAI_MODEL", "gpt-4o")
# Initialize Azure credentials
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
async def run():
# Initialize Azure OpenAI client
client = AzureOpenAI(
azure_endpoint=AZURE_OPENAI_ENDPOINT,
api_version="2024-04-01-preview",
azure_ad_token_provider=token_provider
)
# MCP client configurations
server_params = StdioServerParameters(
command="npx",
args=["-y", "@azure/mcp@latest", "server", "start"],
env=None
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# List available tools
tools = await session.list_tools()
for tool in tools.tools: print(tool.name)
# Format tools for Azure OpenAI
available_tools = [{
"type": "function",
"function": {
"name": tool.name,
"description": tool.description,
"parameters": tool.inputSchema
}
} for tool in tools.tools]
# Start conversational loop
messages = []
while True:
try:
user_input = input("\nPrompt: ")
messages.append({"role": "user", "content": user_input})
# First API call with tool configuration
response = client.chat.completions.create(
model = AZURE_OPENAI_MODEL,
messages = messages,
tools = available_tools)
# Process the model's response
response_message = response.choices[0].message
messages.append(response_message)
# Handle function calls
if response_message.tool_calls:
for tool_call in response_message.tool_calls:
function_args = json.loads(tool_call.function.arguments)
result = await session.call_tool(tool_call.function.name, function_args)
# Add the tool response to the messages
messages.append({
"tool_call_id": tool_call.id,
"role": "tool",
"name": tool_call.function.name,
"content": result.content,
})
else:
logger.info("No tool calls were made by the model")
# Get the final response from the model
final_response = client.chat.completions.create(
model = AZURE_OPENAI_MODEL,
messages = messages,
tools = available_tools)
for item in final_response.choices:
print(item.message.content)
except Exception as e:
logger.error(f"Error in conversation loop: {e}")
print(f"An error occurred: {e}")
if __name__ == "__main__":
import asyncio
asyncio.run(run())
Приведенный выше код выполняет следующие задачи:
- Настраивает ведение журнала и загружает переменные среды из
.env
файла. - Настраивает клиент Azure OpenAI с помощью
azure-identity
иopenai
библиотек. - Инициализирует клиент MCP для взаимодействия с сервером Azure MCP с помощью стандартного транспорта ввода-вывода.
- Извлекает и отображает список доступных средств с сервера MCP.
- Реализует цикл общения для обработки запросов пользователей, использования инструментов и вызовов утилит.
Запуск и тестирование приложения
Выполните следующие действия, чтобы протестировать хост-приложение .NET:
В окне терминала откройте корень проекта, выполните следующую команду, чтобы запустить приложение:
python main.py
После запуска приложения введите следующую тестовую строку:
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