Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Den här handledningen visar hur du exponerar en agent som ett verktyg över Model Context-protokollet (MCP), så att den kan användas av andra system som stöder MCP-verktyg.
Förutsättningar
Förutsättningar finns i steget Skapa och kör en enkel agent i den här självstudien.
Installera NuGet-paket
Om du vill använda Microsoft Agent Framework med Azure OpenAI måste du installera följande NuGet-paket:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Lägg även till stöd för att vara värd för ett verktyg via Model Context Protocol (MCP) genom att lägga till följande NuGet-paket
dotnet add package Microsoft.Extensions.Hosting --prerelease
dotnet add package ModelContextProtocol --prerelease
Exponera en agent som ett MCP-verktyg
Du kan exponera ett AIAgent MCP-verktyg genom att omsluta det i en funktion och använda McpServerTool. Du måste sedan registrera den med en MCP-server. Detta gör att agenten kan anropas som ett verktyg av alla MCP-kompatibla klienter.
Skapa först en agent som du ska exponera som ett MCP-verktyg.
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");
Förvandla agenten till ett funktionsverktyg och sedan ett MCP-verktyg. Agentnamnet och beskrivningen används som mcp-verktygsnamn och beskrivning.
using ModelContextProtocol.Server;
McpServerTool tool = McpServerTool.Create(agent.AsAIFunction());
Konfigurera MCP-servern för att lyssna efter inkommande begäranden via standardindata/utdata och exponera MCP-verktyget:
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();
Detta startar en MCP-server som exponerar agenten som ett verktyg över MCP-protokollet.
Den här handledningen visar hur du exponerar en agent som ett verktyg över Model Context-protokollet (MCP), så att den kan användas av andra system som stöder MCP-verktyg.
Förutsättningar
Förutsättningar och installation av Python-paket finns i steget Skapa och kör en enkel agent i den här självstudien.
Exponera en agent som en MCP-server
Du kan exponera en agent som en MCP-server genom att använda as_mcp_server() metoden. Detta gör att agenten kan anropas som ett verktyg av alla MCP-kompatibla klienter.
Skapa först en agent som du ska exponera som en MCP-server. Du kan också lägga till verktyg i agenten:
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],
)
Förvandla agenten till en MCP-server. Agentnamnet och beskrivningen används som MCP-servermetadata:
# Expose the agent as an MCP server
server = agent.as_mcp_server()
Konfigurera MCP-servern för att lyssna efter inkommande begäranden via standardindata/utdata:
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)
Detta startar en MCP-server som exponerar agenten via MCP-protokollet, så att den kan användas av MCP-kompatibla klienter som VS Code GitHub Copilot Agents.