Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure MCP Server a Model Context Protocol (MCP) használatával szabványosítja az AI-alkalmazások és a külső eszközök és adatforrások közötti integrációt, lehetővé téve az AI-rendszerek számára az Azure-erőforrások környezettudatos műveleteit.
Ebből a cikkből megtudhatja, hogyan végezheti el a következő feladatokat:
- Az Azure MCP Server telepítése és hitelesítése
- Csatlakozás az Azure MCP Serverhez GitHub Copilot-ügynök mód használatával a Visual Studio Code-ban
- Az Azure MCP Server műveleteinek tesztelésére és az Azure-erőforrások használatára vonatkozó kérések futtatása
Előfeltételek
- Aktív előfizetéssel rendelkező Azure-fiók
- Visual Studio Code
- GitHub Copilot Visual Studio Code-bővítmény
Megjegyzés:
Az Azure MCP Serverrel elérni kívánt Azure-erőforrásoknak már létezniük kell az Azure-előfizetésben. Emellett a felhasználói fióknak rendelkeznie kell az erőforrásokhoz szükséges RBAC-szerepkörök és engedélyek hozzárendelésével .
Az Azure MCP-kiszolgáló telepítése
Az Azure MCP Server Visual Studio Code-ban való telepítéséhez válassza az alábbi lehetőségek egyikét:
Ha telepíteni szeretné az Azure MCP Server for Visual Studio Code-ot a felhasználói beállításokban, válassza az alábbi hivatkozást:
Megnyílik a telepítési lehetőségek listája a Visual Studio Code-ben. Válassza a Kiszolgáló telepítése lehetőséget a kiszolgálókonfiguráció felhasználói beállításokhoz való hozzáadásához.
Nyissa meg a GitHub Copilotot, és válassza az Ügynök mód lehetőséget. Az Ügynök módról a Visual Studio Code dokumentációjában talál további információt.
Az eszközök listájának frissítésével az Azure MCP Server elérhető lehetőségként jelenik meg:
Az Azure MCP-kiszolgáló tesztelése parancssorokkal
Nyissa meg a GitHub Copilotot, és válassza az Ügynök mód lehetőséget.
Adjon meg egy kérést, amely miatt az ügynök Azure MCP Server-eszközöket használ, például listázhatja az Azure-erőforráscsoportokat.
Az Azure MCP Server hitelesítéséhez a Copilot kéri, hogy jelentkezzen be az Azure-ba a böngészővel.
Megjegyzés:
A Copilot nem fogja kérni, hogy jelentkezzen be az Azure-ba, ha már más helyi eszközök, például az Azure CLI használatával van hitelesítve.
A Copilot engedélyt kér a kéréshez szükséges Azure MCP Server-művelet futtatásához. Válassza a Folytatás lehetőséget, vagy használja a nyílbillentyűt egy konkrétabb viselkedés kiválasztásához:
- Az aktuális munkamenet mindig az aktuális GitHub Copilot-ügynök módú munkamenetben futtatja a műveletet.
- Az aktuális munkaterület mindig az aktuális Visual Studio Code-munkaterület parancsát futtatja.
- Mindig engedélyezze , hogy a művelet mindig fusson a GitHub Copilot Agent Mode-munkamenetekhez vagy bármely Visual Studio Code-munkaterülethez.
Az előző parancssor kimenetének a következő szöveghez kell hasonlítania:
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!
Az Azure MCP-műveletek megismerése és tesztelése más vonatkozó kérésekkel, például:
List all of the storage accounts in my subscription Get the available tables in my storage accounts
Ebből a cikkből megtudhatja, hogyan végezheti el a következő feladatokat:
- Az Azure MCP Server telepítése és hitelesítése
- Csatlakozás az Azure MCP Serverhez egyéni .NET-ügyfél használatával
- Az Azure MCP Server műveleteinek tesztelésére és az Azure-erőforrások kezelésére vonatkozó kérések futtatása
Előfeltételek
- Aktív előfizetéssel rendelkező Azure-fiók
- .NET 9.0
- Node.js
Megjegyzés:
Az Azure MCP Serverrel elérni kívánt Azure-erőforrásoknak már létezniük kell az Azure-előfizetésben. Emellett a felhasználói fióknak rendelkeznie kell az erőforrásokhoz szükséges RBAC-szerepkörök és engedélyek hozzárendelésével .
Bejelentkezés helyi fejlesztéshez
Az Azure MCP Server zökkenőmentes hitelesítési élményt nyújt token-alapú hitelesítéssel a Microsoft Entra ID-vel. Az Azure MCP Server belsőleg az DefaultAzureCredential
használja a felhasználók hitelesítését.
Az Azure MCP Server használatához be kell jelentkeznie az Azure-fiókjával helyileg támogatott DefaultAzureCredential
eszközök egyikére. Bejelentkezés terminálablakkal, például a Visual Studio Code terminállal:
az login
Miután sikeresen bejelentkezett az előző eszközök egyikére, az Azure MCP Server automatikusan felderítheti a hitelesítő adatait, és felhasználhatja őket az Azure-szolgáltatások hitelesítésére és műveleteinek végrehajtására.
Megjegyzés:
A Visual Studióval is bejelentkezhet az Azure-ba. Az Azure MCP Server csak olyan műveleteket képes futtatni, amelyekre a bejelentkezett felhasználónak engedélye van.
A .NET-gazdagépalkalmazás létrehozása
A .NET-konzolalkalmazás létrehozásához hajtsa végre az alábbi lépéseket. Az alkalmazás csatlakozik egy AI modellhez, és MCP-ügyfél gazdaként működik, amely egy Azure MCP kiszolgálóhoz kapcsolódik.
A projekt létrehozása
Nyisson meg egy terminált egy üres mappába, ahol létre szeretné hozni a projektet.
Futtassa a következő parancsot egy új .NET-konzolalkalmazás létrehozásához:
dotnet new console -n MCPHostApp
Lépjen az újonnan létrehozott projektmappába:
cd MCPHostApp
Nyissa meg a projektmappát a választott szerkesztőben, például a Visual Studio Code-ban:
code .
Függőségek hozzáadása
A terminálban futtassa a következő parancsokat a szükséges NuGet-csomagok hozzáadásához:
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
Ellenőrizze, hogy a csomagok hozzáadva lettek-e a
MCPHostApp.csproj
fájl ellenőrzésével.Futtassa a következő parancsot a projekt létrehozásához, és győződjön meg arról, hogy minden megfelelően van beállítva:
dotnet build
Az alkalmazáskód hozzáadása
Cserélje le a Program.cs
tartalmát a következő kódra:
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);
}
Az előző kód a következő feladatokat hajtja végre:
- Az
IChatClient
absztrakció inicializálása aMicrosoft.Extensions.AI
könyvtárak felhasználásával. - Létrehoz egy MCP-ügyfelet, amely szabványos I/O-átvitel használatával kommunikál az Azure MCP-kiszolgálóval. A megadott
npx
parancs és a hozzájuk tartozó argumentumok letöltik és elindítják az Azure MCP-kiszolgálót. - Lekéri és megjeleníti az MCP-kiszolgálóról elérhető eszközök listáját, amely egy szabványos MCP-függvény.
- Olyan beszélgetési hurkot implementál, amely feldolgozza a felhasználók kéréseit, és a válaszok eszközeit használja.
Az alkalmazás futtatása és tesztelése
A .NET-gazdagépalkalmazás teszteléséhez hajtsa végre az alábbi lépéseket:
A projekt gyökeréhez megnyitott terminálablakban futtassa a következő parancsot az alkalmazás elindításához:
dotnet run
Az alkalmazás futtatása után adja meg a következő tesztüzenetet:
List all of the resource groups in my subscription
Az előző parancssor kimenetének a következő szöveghez kell hasonlítania:
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!
Az Azure MCP-műveletek megismerése és tesztelése más vonatkozó kérésekkel, például:
List all of the storage accounts in my subscription Get the available tables in my storage accounts
Ebből a cikkből megtudhatja, hogyan végezheti el a következő feladatokat:
- Az Azure MCP Server telepítése és hitelesítése
- Csatlakozás az Azure MCP Serverhez egyéni Python-ügyfél használatával
- Az Azure MCP Server műveleteinek tesztelésére és az Azure-erőforrások kezelésére vonatkozó kérések futtatása
Előfeltételek
- Aktív előfizetéssel rendelkező Azure-fiók
- Helyileg telepített Python 3.9 vagy újabb
- helyileg telepített Node.js
Megjegyzés:
Az Azure MCP Serverrel elérni kívánt Azure-erőforrásoknak már létezniük kell az Azure-előfizetésben. Emellett a felhasználói fióknak rendelkeznie kell az erőforrásokhoz szükséges RBAC-szerepkörök és engedélyek hozzárendelésével .
Bejelentkezés helyi fejlesztéshez
Az Azure MCP Server zökkenőmentes hitelesítési élményt nyújt token-alapú hitelesítéssel a Microsoft Entra ID-vel. Az Azure MCP Server belsőleg az DefaultAzureCredential
használja a felhasználók hitelesítését.
Az Azure MCP Server használatához be kell jelentkeznie az Azure-fiókjával helyileg támogatott DefaultAzureCredential
eszközök egyikére. Bejelentkezés terminálablakkal, például a Visual Studio Code terminállal:
az login
Miután sikeresen bejelentkezett az előző eszközök egyikére, az Azure MCP Server automatikusan felderítheti a hitelesítő adatait, és felhasználhatja őket az Azure-szolgáltatások hitelesítésére és műveleteinek végrehajtására.
Megjegyzés:
A Visual Studióval is bejelentkezhet az Azure-ba. Az Azure MCP Server csak olyan műveleteket képes futtatni, amelyekre a bejelentkezett felhasználónak engedélye van.
A Python-alkalmazás létrehozása
Python-alkalmazás létrehozásához hajtsa végre az alábbi lépéseket. Az alkalmazás csatlakozik egy AI modellhez, és MCP-ügyfél gazdaként működik, amely egy Azure MCP kiszolgálóhoz kapcsolódik.
A projekt létrehozása
Nyisson meg egy üres mappát a választott szerkesztőben.
Hozzon létre egy új, elnevezett
requirements.txt
fájlt, és adja hozzá a következő kódtár-függőségeket:mcp azure-identity openai logging
Ugyanabban a mappában hozzon létre egy új, elnevezett
.env
fájlt, és adja hozzá a következő környezeti változókat:AZURE_OPENAI_ENDPOINT=<your-azure-openai-endpoint> AZURE_OPENAI_MODEL=<your-model-deployment-name>
Hozzon létre egy üres fájlt, amely
main.py
az alkalmazás kódjának tárolására szolgál.
A környezet létrehozása és függőségek telepítése
Nyisson meg egy terminált az új mappában, és hozzon létre egy Python virtuális környezetet az alkalmazáshoz:
python -m venv venv
A virtuális környezet aktiválása:
venv\Scripts\activate
Telepítse a függőségeket a következő forrásból
requirements.txt
:pip install -r requirements.txt
Az alkalmazáskód hozzáadása
Frissítse a következő kód tartalmát 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())
Az előző kód a következő feladatokat hajtja végre:
- Beállítja a naplózási és betölti a környezeti változókat egy
.env
fájlból. - Az Azure OpenAI-ügyfelet a
azure-identity
ésopenai
könyvtárak használatával konfigurálja. - Inicializál egy MCP-ügyfelet az Azure MCP-kiszolgálóval való kommunikációhoz egy szabványos I/O-átvitel használatával.
- Lekéri és megjeleníti az MCP-kiszolgálóról elérhető eszközök listáját.
- Beszélgetési ciklust implementál a felhasználói kérések feldolgozásához, az eszközök használatához és az eszközhívások kezeléséhez.
Az alkalmazás futtatása és tesztelése
A .NET-gazdagépalkalmazás teszteléséhez hajtsa végre az alábbi lépéseket:
A projekt gyökeréhez megnyitott terminálablakban futtassa a következő parancsot az alkalmazás elindításához:
python main.py
Az alkalmazás futtatása után adja meg a következő tesztüzenetet:
List all of the resource groups in my subscription
Az előző parancssor kimenetének a következő szöveghez kell hasonlítania:
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!
Az Azure MCP-műveletek megismerése és tesztelése más vonatkozó kérésekkel, például:
List all of the storage accounts in my subscription Get the available tables in my storage accounts