Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede ampliar las funcionalidades del agente de Azure AI Foundry conectándolo a herramientas hospedadas en servidores remotos del Protocolo de contexto de modelo (MCP), aportando su propio punto de conexión del servidor MCP.
Uso de la herramienta Protocolo de contexto de modelo
En esta sección se explica cómo crear un agente de IA mediante Azure Foundry (Azure AI) con una integración del servidor hospedado del Protocolo de contexto de modelo (MCP). El agente puede usar herramientas de MCP administradas y ejecutadas por el servicio Azure Foundry, lo que permite el acceso seguro y controlado a recursos externos.
Características clave
- Servidor MCP hospedado: El servidor MCP se hospeda y administra mediante Azure AI Foundry, lo que elimina la necesidad de administrar la infraestructura del servidor.
- Agentes persistentes: los agentes se crean y almacenan en el servidor, lo que permite conversaciones con estado.
- Flujo de trabajo de aprobación de herramientas: mecanismos de aprobación configurables para invocaciones de herramientas MCP
Funcionamiento
1. Configuración del entorno
El ejemplo requiere dos variables de entorno:
-
AZURE_FOUNDRY_PROJECT_ENDPOINT: dirección URL del punto de conexión del proyecto de Azure AI Foundry -
AZURE_FOUNDRY_PROJECT_MODEL_ID: el nombre de implementación del modelo (el valor predeterminado es "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. Configuración del agente
El agente se configura con instrucciones y metadatos específicos:
const string AgentName = "MicrosoftLearnAgent";
const string AgentInstructions = "You answer questions by searching the Microsoft Learn content only.";
Esto crea un agente especializado para responder preguntas mediante la documentación de Microsoft Learn.
3. Definición de la herramienta MCP
El ejemplo crea una definición de herramienta MCP que apunta a un servidor MCP hospedado:
var mcpTool = new MCPToolDefinition(
serverLabel: "microsoft_learn",
serverUrl: "https://learn.microsoft.com/api/mcp");
mcpTool.AllowedTools.Add("microsoft_docs_search");
Componentes clave:
- serverLabel: identificador único para la instancia del servidor MCP
- serverUrl: la dirección URL del servidor MCP hospedado
- AllowedTools: especifica qué herramientas del servidor MCP puede usar el agente.
4. Creación persistente del agente
El agente se crea en el lado servidor mediante el SDK de agentes persistentes de Azure AI Foundry:
var persistentAgentsClient = new PersistentAgentsClient(endpoint, new AzureCliCredential());
var agentMetadata = await persistentAgentsClient.Administration.CreateAgentAsync(
model: model,
name: AgentName,
instructions: AgentInstructions,
tools: [mcpTool]);
Esto crea un agente persistente que:
- Reside en el servicio Azure AI Foundry
- Tiene acceso a las herramientas de MCP especificadas.
- Puede mantener el estado de la conversación entre varias interacciones
5. Recuperación y ejecución del agente
El agente creado se recupera como una AIAgent instancia de :
AIAgent agent = await persistentAgentsClient.GetAIAgentAsync(agentMetadata.Value.Id);
6. Configuración de recursos de herramientas
En el ejemplo se configuran los recursos de la herramienta con la configuración de aprobación:
var runOptions = new ChatClientAgentRunOptions()
{
ChatOptions = new()
{
RawRepresentationFactory = (_) => new ThreadAndRunOptions()
{
ToolResources = new MCPToolResource(serverLabel: "microsoft_learn")
{
RequireApproval = new MCPApproval("never"),
}.ToToolResources()
}
}
};
Configuración de claves:
- MCPToolResource: vincula la instancia del servidor MCP a la ejecución del agente
-
RequireApproval: controla cuándo se necesita la aprobación del usuario para las invocaciones de herramientas
-
"never": las herramientas se ejecutan automáticamente sin aprobación. -
"always": todas las invocaciones de herramientas requieren aprobación del usuario. - También se pueden configurar reglas de aprobación personalizadas.
-
7. Ejecución del agente
El agente se invoca con una pregunta y se ejecuta mediante las herramientas de MCP configuradas:
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. Limpieza
En el ejemplo se muestra la limpieza de recursos adecuada:
await persistentAgentsClient.Administration.DeleteAgentAsync(agent.Id);
Integración de MCP con Azure AI Foundry de Python
Azure AI Foundry proporciona una integración perfecta con los servidores del Protocolo de contexto de modelo (MCP) a través del marco del agente de Python. El servicio administra el hospedaje y la ejecución del servidor MCP, lo que elimina la administración de la infraestructura al tiempo que proporciona acceso seguro y controlado a herramientas externas.
Configuración del entorno
Configure las credenciales del proyecto de Azure AI Foundry mediante variables de entorno:
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
Integración básica de MCP
Cree un agente de Azure AI Foundry con herramientas de MCP hospedadas:
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())
Configuración de MCP de varias herramientas
Use varias herramientas de MCP hospedadas con un solo agente:
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())
El marco del agente de Python proporciona una integración perfecta con las funcionalidades de MCP hospedadas de Azure AI Foundry, lo que permite el acceso seguro y escalable a herramientas externas, a la vez que mantiene la flexibilidad y el control necesarios para las aplicaciones de producción.