Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 Pythonu
- Spuštění výzvy k otestování operací serveru Azure MCP a správy prostředků Azure
Požadavky
- Účet Azure s aktivním předplatným
- Nainstalovaný Python 3.9 nebo novější
- Node.js Nainstalovaná aplikace LTS
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í aplikace v Pythonu
Provedením následujících kroků vytvořte aplikaci v Pythonu. Aplikace se připojí k modelu AI a funguje jako hostitel klienta MCP, který se připojuje k serveru Azure MCP.
Vytvoření projektu
Ve zvoleném editoru otevřete prázdnou složku.
Vytvořte nový soubor s názvem
requirements.txta přidejte následující závislosti knihovny:mcp azure-identity openai loggingVe stejné složce vytvořte nový soubor s názvem
.enva přidejte následující proměnné prostředí:AZURE_OPENAI_ENDPOINT=<your-azure-openai-endpoint> AZURE_OPENAI_MODEL=<your-model-deployment-name>Vytvořte prázdný soubor s názvem
main.pypro uložení kódu pro vaši aplikaci.
Vytvoření prostředí a instalace závislostí
Otevřete terminál v nové složce a vytvořte pro aplikaci virtuální prostředí Pythonu:
python -m venv venvAktivujte virtuální prostředí:
venv\Scripts\activateNainstalujte závislosti z
requirements.txt:pip install -r requirements.txt
Přidání kódu aplikace
Aktualizujte obsah Main.py následujícím kódem:
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())
Předchozí kód provádí následující úlohy:
- Nastaví protokolování a načte proměnné prostředí ze
.envsouboru. - Konfiguruje klienta Azure OpenAI pomocí
azure-identityaopenaiknihoven. - Inicializuje klienta MCP pro interakci se serverem Azure MCP pomocí standardního přenosu vstupně-výstupních operací.
- Načte a zobrazí seznam dostupných nástrojů ze serveru MCP.
- Implementuje konverzační smyčku pro zpracování výzev uživatelů, využití nástrojů a zpracování volání nástrojů.
Spuštění a otestování aplikace
Provedením následujících kroků otestujte hostitelskou aplikaci .NET:
V okně terminálu otevřete kořen projektu a spusťte aplikaci spuštěním následujícího příkazu:
python main.pyPo spuštění aplikace zadejte následující testovací výzvu:
List all of the resource groups in my subscriptionVý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!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