Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğreticide bir aracıyı Model Bağlam Protokolü (MCP) üzerinde bir araç olarak kullanıma sunma işlemi gösterilmektedir; böylece MCP araçlarını destekleyen diğer sistemler tarafından kullanılabilir.
Önkoşullar
Önkoşullar için bu öğreticideki Basit bir aracı oluşturma ve çalıştırma adımına bakın.
NuGet paketlerini yükleme
Microsoft Agent Framework'ü Azure OpenAI ile kullanmak için aşağıdaki NuGet paketlerini yüklemeniz gerekir:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Model Bağlam Protokolü (MCP) üzerinden bir araç barındırma desteği de eklemek için aşağıdaki NuGet paketlerini ekleyin
dotnet add package Microsoft.Extensions.Hosting --prerelease
dotnet add package ModelContextProtocol --prerelease
Aracıyı MCP aracı olarak açığa çıkarma
Bir işlev içine sararak AIAgent'yi bir MCP aracı olarak McpServerTool kullanıma sunabilirsiniz. Ardından bunu bir MCP sunucusuna kaydetmeniz gerekir. Bu, aracının MCP uyumlu herhangi bir istemci tarafından bir araç olarak çağrılmasını sağlar.
İlk olarak, MCP aracı olarak kullanıma sağlayacağınız bir aracı oluşturun.
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");
Aracıyı bir işlev aracısına ve ardından bir MCP aracına dönüştürün. Aracı adı ve açıklaması, mcp aracının adı ve açıklaması olarak kullanılır.
using ModelContextProtocol.Server;
McpServerTool tool = McpServerTool.Create(agent.AsAIFunction());
McP sunucusunu standart giriş/çıkış üzerinden gelen istekleri dinleyecek ve MCP aracını kullanıma sunulacak şekilde ayarlayın:
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();
Bu, aracıyı MCP protokolü üzerinde bir araç olarak kullanıma sunan bir MCP sunucusu başlatır.
Bu öğreticide bir aracıyı Model Bağlam Protokolü (MCP) üzerinde bir araç olarak kullanıma sunma işlemi gösterilmektedir; böylece MCP araçlarını destekleyen diğer sistemler tarafından kullanılabilir.
Önkoşullar
Önkoşullar ve Python paketlerini yükleme için bu öğreticideki Basit bir aracı oluşturma ve çalıştırma adımına bakın.
Bir aracıyı MCP sunucusu olarak açığa çıkarma
Bir aracıyı as_mcp_server() yöntemiyle MCP sunucusu olarak açığa çıkarabilirsiniz. Bu, aracının MCP uyumlu herhangi bir istemci tarafından bir araç olarak çağrılmasını sağlar.
İlk olarak, MCP sunucusu olarak kullanıma sağlayacağınız bir aracı oluşturun. Ajan'a araçlar da ekleyebilirsiniz.
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],
)
Aracıyı bir MCP sunucusuna dönüştürün. Aracı adı ve açıklaması MCP sunucusu meta verileri olarak kullanılır:
# Expose the agent as an MCP server
server = agent.as_mcp_server()
Standart giriş/çıkış üzerinden gelen istekleri dinlemek için MCP sunucusunu ayarlayın:
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)
Bu, aracıyı MCP protokolü üzerinden kullanıma sunan ve VS Code GitHub Copilot Aracıları gibi MCP uyumlu istemciler tarafından kullanılmasına olanak sağlayan bir MCP sunucusu başlatır.