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.
In diesem Lernprogramm erfahren Sie, wie Sie einen Agent als Tool über das Model Context Protocol (MCP) verfügbar machen, damit er von anderen Systemen verwendet werden kann, die MCP-Tools unterstützen.
Voraussetzungen
Die Voraussetzungen finden Sie im Schritt Erstellen und Ausführen eines einfachen Agenten in diesem Lernprogramm.
Installieren von NuGet-Paketen
Um Microsoft Agent Framework mit Azure OpenAI zu verwenden, müssen Sie die folgenden NuGet-Pakete installieren:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Um auch Unterstützung für das Hosten eines Tools über das Model Context Protocol (MCP) hinzuzufügen, fügen Sie die folgenden NuGet-Pakete hinzu
dotnet add package Microsoft.Extensions.Hosting --prerelease
dotnet add package ModelContextProtocol --prerelease
Verfügbarmachen eines Agents als MCP-Tool
Sie können ein AIAgent als MCP-Tool verfügbar machen, indem Sie es in eine Funktion umschließen und McpServerTool verwenden. Sie müssen sie dann bei einem MCP-Server registrieren. Dadurch kann der Agent von jedem MCP-kompatiblen Client als Tool aufgerufen werden.
Erstellen Sie zunächst einen Agent, den Sie als MCP-Tool verfügbar machen.
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");
Verwandeln Sie den Agent in ein Funktionstool und dann in ein MCP-Tool. Der Agentname und die Beschreibung werden als Name und Beschreibung des Mcp-Tools verwendet.
using ModelContextProtocol.Server;
McpServerTool tool = McpServerTool.Create(agent.AsAIFunction());
Richten Sie den MCP-Server so ein, dass er eingehende Anforderungen über die Standardeingabe/-ausgabe entgegennimmt und das MCP-Tool bereitstellt.
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();
Dadurch wird ein MCP-Server gestartet, der den Agent als Tool über das MCP-Protokoll verfügbar macht.
In diesem Lernprogramm erfahren Sie, wie Sie einen Agent als Tool über das Model Context Protocol (MCP) verfügbar machen, damit er von anderen Systemen verwendet werden kann, die MCP-Tools unterstützen.
Voraussetzungen
Die erforderlichen Komponenten und die Installation von Python-Paketen finden Sie im Abschnitt zum Erstellen und Ausführen eines einfachen Agent-Schritts in diesem Lernprogramm.
Verfügbarmachen eines Agents als MCP-Server
Sie können einen Agent mithilfe der as_mcp_server() Methode als MCP-Server verfügbar machen. Dadurch kann der Agent von jedem MCP-kompatiblen Client als Tool aufgerufen werden.
Erstellen Sie zunächst einen Agent, den Sie als MCP-Server verfügbar machen. Sie können dem Agent auch Tools hinzufügen:
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],
)
Wandeln Sie den Agent in einen MCP-Server um. Der Agentname und die Beschreibung werden als MCP-Servermetadaten verwendet:
# Expose the agent as an MCP server
server = agent.as_mcp_server()
Richten Sie den MCP-Server so ein, dass er auf eingehende Anforderungen über die Standardeingabe/Ausgabe wartet.
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)
Dadurch wird ein MCP-Server gestartet, der den Agent über das MCP-Protokoll verfügbar macht, sodass er von MCP-kompatiblen Clients wie VS Code GitHub Copilot Agents verwendet werden kann.