Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können die Funktionen Ihres Azure AI Foundry-Agents erweitern, indem Sie sie mit Tools verbinden, die auf MCP-Servern (Remote Model Context Protocol) gehostet werden (bringen Sie Ihren eigenen MCP-Serverendpunkt).
So verwenden Sie das Modellkontextprotokoll-Tool
In diesem Abschnitt wird erläutert, wie Sie einen KI-Agent mit Azure Foundry (Azure AI) mit einer gehosteten MCP-Serverintegration (Model Context Protocol) erstellen. Der Agent kann MCP-Tools verwenden, die vom Azure Foundry-Dienst verwaltet und ausgeführt werden, sodass der sichere und kontrollierte Zugriff auf externe Ressourcen ermöglicht wird.
Wichtige Merkmale
- Gehosteter MCP-Server: Der MCP-Server wird von Azure AI Foundry gehostet und verwaltet, sodass keine Serverinfrastruktur verwaltet werden muss
- Persistent Agents: Agents werden auf serverseitiger Seite erstellt und gespeichert, sodass zustandsbehaftete Unterhaltungen möglich sind.
- Toolgenehmigungsworkflow: Konfigurierbare Genehmigungsmechanismen für MCP-Toolaufrufe
Funktionsweise
1. Umgebungseinrichtung
Für das Beispiel sind zwei Umgebungsvariablen erforderlich:
-
AZURE_FOUNDRY_PROJECT_ENDPOINT: Ihre Azure AI Foundry-Projektendpunkt-URL -
AZURE_FOUNDRY_PROJECT_MODEL_ID: Der Name der Modellbereitstellung (standardmäßig "gpt-4.1-mini")
var endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT")
?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set.");
var model = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_MODEL_ID") ?? "gpt-4.1-mini";
2. Agent-Konfiguration
Der Agent ist mit bestimmten Anweisungen und Metadaten konfiguriert:
const string AgentName = "MicrosoftLearnAgent";
const string AgentInstructions = "You answer questions by searching the Microsoft Learn content only.";
Dadurch wird ein Agent erstellt, der auf die Beantwortung von Fragen mit der Microsoft Learn-Dokumentation spezialisiert ist.
3. MCP-Tooldefinition
Im Beispiel wird eine MCP-Tooldefinition erstellt, die auf einen gehosteten MCP-Server verweist:
var mcpTool = new MCPToolDefinition(
serverLabel: "microsoft_learn",
serverUrl: "https://learn.microsoft.com/api/mcp");
mcpTool.AllowedTools.Add("microsoft_docs_search");
Schlüsselkomponenten:
- serverLabel: Ein eindeutiger Bezeichner für die MCP-Serverinstanz
- serverUrl: Die URL des gehosteten MCP-Servers
- AllowedTools: Gibt an, welche Tools vom MCP-Server, den der Agent verwenden kann
4. Erstellung persistenter Agent
Der Agent wird serverseitig mit dem Azure AI Foundry Persistent Agents SDK erstellt:
var persistentAgentsClient = new PersistentAgentsClient(endpoint, new AzureCliCredential());
var agentMetadata = await persistentAgentsClient.Administration.CreateAgentAsync(
model: model,
name: AgentName,
instructions: AgentInstructions,
tools: [mcpTool]);
Dadurch wird ein beständiger Agent erstellt, der:
- Lebt im Azure AI Foundry-Dienst
- Zugriff auf die angegebenen MCP-Tools
- Kann den Unterhaltungszustand über mehrere Interaktionen hinweg verwalten
5. Agentabruf und -ausführung
Der erstellte Agent wird als AIAgent Instanz abgerufen:
AIAgent agent = await persistentAgentsClient.GetAIAgentAsync(agentMetadata.Value.Id);
6. Toolressourcenkonfiguration
Im Beispiel werden Toolressourcen mit Genehmigungseinstellungen konfiguriert:
var runOptions = new ChatClientAgentRunOptions()
{
ChatOptions = new()
{
RawRepresentationFactory = (_) => new ThreadAndRunOptions()
{
ToolResources = new MCPToolResource(serverLabel: "microsoft_learn")
{
RequireApproval = new MCPApproval("never"),
}.ToToolResources()
}
}
};
Schlüsselkonfiguration:
- MCPToolResource: Verknüpft die MCP-Serverinstanz mit der Agentausführung
-
RequireApproval: Steuerelemente, wenn die Benutzergenehmigung für Toolaufrufe erforderlich ist
-
"never": Tools werden automatisch ohne Genehmigung ausgeführt -
"always": Alle Toolaufrufe erfordern eine Benutzergenehmigung. - Benutzerdefinierte Genehmigungsregeln können auch konfiguriert werden
-
7. Agentausführung
Der Agent wird mit einer Frage aufgerufen und mithilfe der konfigurierten MCP-Tools ausgeführt:
AgentThread thread = agent.GetNewThread();
var response = await agent.RunAsync(
"Please summarize the Azure AI Agent documentation related to MCP Tool calling?",
thread,
runOptions);
Console.WriteLine(response);
8. Bereinigung
Im Beispiel wird die richtige Ressourcenbereinigung veranschaulicht:
await persistentAgentsClient.Administration.DeleteAgentAsync(agent.Id);
Python Azure AI Foundry MCP Integration
Azure AI Foundry bietet eine nahtlose Integration mit MCP-Servern (Model Context Protocol) über das Python Agent Framework. Der Dienst verwaltet das MCP-Serverhosting und die Ausführung, wodurch die Infrastrukturverwaltung eliminiert und gleichzeitig sicheren, kontrollierten Zugriff auf externe Tools bereitgestellt wird.
Umgebungseinrichtung
Konfigurieren Sie Ihre Azure AI Foundry-Projektanmeldeinformationen über Umgebungsvariablen:
import os
from azure.identity.aio import AzureCliCredential
from agent_framework.azure import AzureAIAgentClient
# Required environment variables
os.environ["AZURE_AI_PROJECT_ENDPOINT"] = "https://<your-project>.services.ai.azure.com/api/projects/<project-id>"
os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"] = "gpt-4o-mini" # Optional, defaults to this
Grundlegende MCP-Integration
Erstellen Sie einen Azure AI Foundry-Agent mit gehosteten MCP-Tools:
import asyncio
from agent_framework import HostedMCPTool
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential
async def basic_foundry_mcp_example():
"""Basic example of Azure AI Foundry agent with hosted MCP tools."""
async with (
AzureCliCredential() as credential,
AzureAIAgentClient(async_credential=credential) as chat_client,
):
# Enable Azure AI observability (optional but recommended)
await chat_client.setup_azure_ai_observability()
# Create agent with hosted MCP tool
agent = chat_client.create_agent(
name="MicrosoftLearnAgent",
instructions="You answer questions by searching Microsoft Learn content only.",
tools=HostedMCPTool(
name="Microsoft Learn MCP",
url="https://learn.microsoft.com/api/mcp",
),
)
# Simple query without approval workflow
result = await agent.run(
"Please summarize the Azure AI Agent documentation related to MCP tool calling?"
)
print(result)
if __name__ == "__main__":
asyncio.run(basic_foundry_mcp_example())
Multitool-MCP-Konfiguration
Verwenden sie mehrere gehostete MCP-Tools mit einem einzigen Agent:
async def multi_tool_mcp_example():
"""Example using multiple hosted MCP tools."""
async with (
AzureCliCredential() as credential,
AzureAIAgentClient(async_credential=credential) as chat_client,
):
await chat_client.setup_azure_ai_observability()
# Create agent with multiple MCP tools
agent = chat_client.create_agent(
name="MultiToolAgent",
instructions="You can search documentation and access GitHub repositories.",
tools=[
HostedMCPTool(
name="Microsoft Learn MCP",
url="https://learn.microsoft.com/api/mcp",
approval_mode="never_require", # Auto-approve documentation searches
),
HostedMCPTool(
name="GitHub MCP",
url="https://api.github.com/mcp",
approval_mode="always_require", # Require approval for GitHub operations
headers={"Authorization": "Bearer github-token"},
),
],
)
result = await agent.run(
"Find Azure documentation and also check the latest commits in microsoft/semantic-kernel"
)
print(result)
if __name__ == "__main__":
asyncio.run(multi_tool_mcp_example())
Das Python Agent Framework bietet eine nahtlose Integration mit den gehosteten MCP-Funktionen von Azure AI Foundry, wodurch der sichere und skalierbare Zugriff auf externe Tools ermöglicht wird und gleichzeitig die für Produktionsanwendungen erforderliche Flexibilität und Kontrolle gewährleistet ist.