Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tutorial mostra como expor um agente como uma ferramenta sobre o MCP (Model Context Protocol), para que ele possa ser usado por outros sistemas que oferecem suporte a ferramentas MCP.
Pré-requisitos
Para obter os pré-requisitos, consulte a etapa Criar e executar um agente simples neste tutorial.
Instalar pacotes NuGet
Para usar o Microsoft Agent Framework com o Azure OpenAI, você precisa instalar os seguintes pacotes NuGet:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Para também adicionar suporte para hospedar uma ferramenta sobre o MCP (Model Context Protocol), adicione os seguintes pacotes NuGet
dotnet add package Microsoft.Extensions.Hosting --prerelease
dotnet add package ModelContextProtocol --prerelease
Expor um agente como uma ferramenta MCP
Você pode expor uma AIAgent ferramenta como MCP envolvendo-a em uma função e usando McpServerTool. Em seguida, você precisa registrá-lo com um servidor MCP. Isso permite que o agente seja invocado como uma ferramenta por qualquer cliente compatível com MCP.
Primeiro, crie um agente que você exporá como uma ferramenta MCP.
using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
using OpenAI;
AIAgent agent = new AzureOpenAIClient(
new Uri("https://<myresource>.openai.azure.com"),
new AzureCliCredential())
.GetChatClient("gpt-4o-mini")
.CreateAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
Transforme o agente em uma ferramenta de função e, em seguida, em uma ferramenta MCP. O nome e a descrição do agente serão usados como o nome e a descrição da ferramenta mcp.
using ModelContextProtocol.Server;
McpServerTool tool = McpServerTool.Create(agent.AsAIFunction());
Configure o servidor MCP para escutar solicitações recebidas através de entrada/saída padrão e disponibilize a ferramenta MCP.
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using ModelContextProtocol.Server;
HostApplicationBuilder builder = Host.CreateEmptyApplicationBuilder(settings: null);
builder.Services
.AddMcpServer()
.WithStdioServerTransport()
.WithTools([tool]);
await builder.Build().RunAsync();
Isso iniciará um servidor MCP que expõe o agente como uma ferramenta sobre o protocolo MCP.
Este tutorial mostra como expor um agente como uma ferramenta sobre o MCP (Model Context Protocol), para que ele possa ser usado por outros sistemas que oferecem suporte a ferramentas MCP.
Pré-requisitos
Para pré-requisitos e instalação de pacotes Python, consulte a etapa Criar e executar um agente simples neste tutorial.
Expor um agente como um servidor MCP
Você pode expor um agente como um servidor MCP usando o as_mcp_server() método. Isso permite que o agente seja invocado como uma ferramenta por qualquer cliente compatível com MCP.
Primeiro, crie um agente que você exporá como um servidor MCP. Você também pode adicionar ferramentas ao agente:
from typing import Annotated
from agent_framework.openai import OpenAIResponsesClient
def get_specials() -> Annotated[str, "Returns the specials from the menu."]:
return """
Special Soup: Clam Chowder
Special Salad: Cobb Salad
Special Drink: Chai Tea
"""
def get_item_price(
menu_item: Annotated[str, "The name of the menu item."],
) -> Annotated[str, "Returns the price of the menu item."]:
return "$9.99"
# Create an agent with tools
agent = OpenAIResponsesClient().create_agent(
name="RestaurantAgent",
description="Answer questions about the menu.",
tools=[get_specials, get_item_price],
)
Transforme o agente em um servidor MCP. O nome e a descrição do agente serão usados como metadados do servidor MCP:
# Expose the agent as an MCP server
server = agent.as_mcp_server()
Configure o servidor MCP para escutar solicitações de entrada sobre entrada/saída padrão:
import anyio
from mcp.server.stdio import stdio_server
async def run():
async def handle_stdin():
async with stdio_server() as (read_stream, write_stream):
await server.run(read_stream, write_stream, server.create_initialization_options())
await handle_stdin()
if __name__ == "__main__":
anyio.run(run)
Isso iniciará um servidor MCP que expõe o agente sobre o protocolo MCP, permitindo que ele seja usado por clientes compatíveis com MCP, como VS Code GitHub Copilot Agents.