Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tutorial ini menunjukkan kepada Anda cara mengekspos agen sebagai alat melalui Protokol Konteks Model (MCP), sehingga dapat digunakan oleh sistem lain yang mendukung alat MCP.
Prasyarat
Untuk prasyarat, lihat langkah Buat dan jalankan agen sederhana dalam tutorial ini.
Menginstal paket NuGet
Untuk menggunakan Microsoft Agent Framework dengan Azure OpenAI, Anda perlu menginstal paket NuGet berikut:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Untuk juga menambahkan dukungan untuk menghosting alat melalui Model Context Protocol (MCP), tambahkan paket NuGet berikut
dotnet add package Microsoft.Extensions.Hosting --prerelease
dotnet add package ModelContextProtocol --prerelease
Mengekspos agen sebagai alat MCP
Anda dapat mengekspos AIAgent sebagai alat MCP dengan membungkusnya dalam fungsi dan menggunakan McpServerTool. Anda kemudian perlu mendaftarkannya dengan server MCP. Ini memungkinkan agen untuk dipanggil sebagai alat oleh klien yang kompatibel dengan MCP.
Pertama, buat agen yang akan Anda ekspos sebagai alat 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")
.AsAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
Ubah agen menjadi alat fungsional, kemudian alat MCP. Nama dan deskripsi agen akan digunakan sebagai nama dan deskripsi alat MCP.
using ModelContextProtocol.Server;
McpServerTool tool = McpServerTool.Create(agent.AsAIFunction());
Siapkan server MCP untuk mendengarkan permintaan masuk melalui input/output standar dan mengekspos alat 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();
Ini akan memulai server MCP yang mengekspos agen sebagai alat melalui protokol MCP.
Tutorial ini menunjukkan kepada Anda cara mengekspos agen sebagai alat melalui Protokol Konteks Model (MCP), sehingga dapat digunakan oleh sistem lain yang mendukung alat MCP.
Prasyarat
Untuk prasyarat dan menginstal paket Python, lihat langkah Membuat dan menjalankan agen sederhana dalam tutorial ini.
Mengekspos agen sebagai server MCP
Anda dapat mengekspos agen sebagai server MCP dengan menggunakan as_mcp_server() metode. Ini memungkinkan agen untuk dipanggil sebagai alat oleh klien yang kompatibel dengan MCP.
Pertama, buat agen yang akan Anda ekspos sebagai server MCP. Anda juga dapat menambahkan alat ke agen:
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().as_agent(
name="RestaurantAgent",
description="Answer questions about the menu.",
tools=[get_specials, get_item_price],
)
Ubah agen menjadi server MCP. Nama dan deskripsi agen akan digunakan sebagai metadata server MCP:
# Expose the agent as an MCP server
server = agent.as_mcp_server()
Siapkan server MCP untuk mendengarkan permintaan masuk melalui input/output standar:
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)
Ini akan memulai server MCP yang mengekspos agen melalui protokol MCP, memungkinkannya digunakan oleh klien yang kompatibel dengan MCP seperti Vs Code GitHub Copilot Agents.