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.
Microsoft Agent Framework Model Bağlam Protokolü (MCP) sunucularıyla tümleştirmeyi destekleyerek aracılarınızın dış araçlara ve hizmetlere erişmesine olanak sağlar. Bu kılavuzda, bir MCP sunucusuna bağlanma ve aracınızdaki araçlarını kullanma gösterilmektedir.
Agent Framework'ün .NET sürümü, aracınızın MCP araçlarını çağırmasına izin vermek için resmi MCP C# SDK'sı ile birlikte kullanılabilir.
Aşağıdaki örnekte şunların nasıl yapılacağını gösterilmektedir:
- kurulum ve MCP sunucusu
- MCP Sunucusundan kullanılabilir araçların listesini alma
- MCP araçlarını aracıya
AIFunctioneklenebilmeleri için 'lere dönüştürün - İşlev çağrısını kullanarak aracıdan araçları çağırma
MCP İstemcisi Ayarlama
İlk olarak, istediğiniz MCP sunucusuna bağlanan bir MCP istemcisi oluşturun:
// Create an MCPClient for the GitHub server
await using var mcpClient = await McpClientFactory.CreateAsync(new StdioClientTransport(new()
{
Name = "MCPServer",
Command = "npx",
Arguments = ["-y", "--verbose", "@modelcontextprotocol/server-github"],
}));
Bu örnekte:
- Ad: MCP sunucu bağlantınız için kolay bir ad
- Komut: MCP sunucusunu çalıştırmak için yürütülebilir dosya (burada bir Node.js paketi çalıştırmak için npx kullanılarak)
- Bağımsız değişkenler: MCP sunucusuna geçirilen komut satırı bağımsız değişkenleri
Kullanılabilir Araçları Alma
Bağlandıktan sonra, MCP sunucusundan kullanılabilen araçların listesini alın:
// Retrieve the list of tools available on the GitHub server
var mcpTools = await mcpClient.ListToolsAsync().ConfigureAwait(false);
yöntemi, ListToolsAsync() MCP sunucusunun kullanıma sunulan bir araç koleksiyonu döndürür. Bu araçlar otomatik olarak aracınız tarafından kullanılabilecek AITool nesnelerine dönüştürülür.
MCP Araçları ile Aracı Oluşturma
Aracınızı oluşturun ve başlatma sırasında MCP araçlarını sağlayın:
AIAgent agent = new AzureOpenAIClient(
new Uri(endpoint),
new AzureCliCredential())
.GetChatClient(deploymentName)
.CreateAIAgent(
instructions: "You answer questions related to GitHub repositories only.",
tools: [.. mcpTools.Cast<AITool>()]);
Önemli noktalar:
- Yönergeler: MCP araçlarınızın özellikleriyle uyumlu net yönergeler sağlayın
-
Araçlar: MCP araçlarını nesnelere atama
AIToolve araçlar dizisine yayma - Aracı, MCP sunucusu tarafından sağlanan tüm araçlara otomatik olarak erişebilir
Aracıyı Kullanma
Aracınız yapılandırıldıktan sonra kullanıcı isteklerini yerine getirmek için otomatik olarak MCP araçlarını kullanabilir:
// Invoke the agent and output the text result
Console.WriteLine(await agent.RunAsync("Summarize the last four commits to the microsoft/semantic-kernel repository?"));
Aracı:
- Kullanıcının isteğini analiz etme
- Hangi MCP araçlarının gerekli olduğunu belirleme
- MCP sunucusu aracılığıyla uygun araçları çağırma
- Sonuçları tutarlı bir yanıt halinde sentezleyin
Ortam Yapılandırması
Gerekli ortam değişkenlerini ayarladığınızdan emin olun:
var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ??
throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini";
Kaynak Yönetimi
MCP istemci kaynaklarını her zaman düzgün bir şekilde atın:
await using var mcpClient = await McpClientFactory.CreateAsync(...);
kullanımı await using , MCP istemci bağlantısının kapsam dışına çıktığında düzgün bir şekilde kapatılmasını sağlar.
Yaygın MCP Sunucuları
Popüler MCP sunucuları şunlardır:
-
@modelcontextprotocol/server-github: GitHub depolarına ve verilerine erişme -
@modelcontextprotocol/server-filesystem: Dosya sistemi işlemleri -
@modelcontextprotocol/server-sqlite: SQLite veritabanı erişimi
Her sunucu, aracınızın işlevselliğini genişleten farklı araçlar ve özellikler sağlar. Bu tümleştirme aracılarınızın dış veri ve hizmetlere sorunsuz bir şekilde erişmesine olanak tanırken Model Bağlam Protokolü'nin güvenlik ve standartlaştırma avantajlarını korur.
Bu örneği çalıştırmaya ilişkin tam kaynak kodu ve yönergeler adresinde https://github.com/microsoft/agent-framework/tree/main/dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Serverbulunabilir.
Python Aracı Çerçevesi, birden çok bağlantı türü aracılığıyla Model Bağlam Protokolü (MCP) sunucularıyla tümleştirme için kapsamlı destek sağlar. Bu, aracılarınızın dış araçlara ve hizmetlere sorunsuz bir şekilde erişmesini sağlar.
MCP Araç Türleri
Agent Framework üç tür MCP bağlantısını destekler:
MCPStdioTool - Yerel MCP Sunucuları
Standart giriş/çıkış kullanarak yerel işlemler olarak çalışan MCP sunucularına bağlanmak için kullanın MCPStdioTool :
import asyncio
from agent_framework import ChatAgent, MCPStdioTool
from agent_framework.openai import OpenAIChatClient
async def local_mcp_example():
"""Example using a local MCP server via stdio."""
async with (
MCPStdioTool(
name="calculator",
command="uvx",
args=["mcp-server-calculator"]
) as mcp_server,
ChatAgent(
chat_client=OpenAIChatClient(),
name="MathAgent",
instructions="You are a helpful math assistant that can solve calculations.",
) as agent,
):
result = await agent.run(
"What is 15 * 23 + 45?",
tools=mcp_server
)
print(result)
if __name__ == "__main__":
asyncio.run(local_mcp_example())
MCPStreamableHTTPTool - HTTP/SSE MCP Sunucuları
Server-Sent Olayları ile HTTP üzerinden MCP sunucularına bağlanmak için kullanın MCPStreamableHTTPTool :
import asyncio
from agent_framework import ChatAgent, MCPStreamableHTTPTool
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import AzureCliCredential
async def http_mcp_example():
"""Example using an HTTP-based MCP server."""
async with (
AzureCliCredential() as credential,
MCPStreamableHTTPTool(
name="Microsoft Learn MCP",
url="https://learn.microsoft.com/api/mcp",
headers={"Authorization": "Bearer your-token"},
) as mcp_server,
ChatAgent(
chat_client=AzureAIAgentClient(async_credential=credential),
name="DocsAgent",
instructions="You help with Microsoft documentation questions.",
) as agent,
):
result = await agent.run(
"How to create an Azure storage account using az cli?",
tools=mcp_server
)
print(result)
if __name__ == "__main__":
asyncio.run(http_mcp_example())
MCPWebsocketTool - WebSocket MCP Sunucuları
WebSocket bağlantıları üzerinden MCP sunucularına bağlanmak için kullanın MCPWebsocketTool :
import asyncio
from agent_framework import ChatAgent, MCPWebsocketTool
from agent_framework.openai import OpenAIChatClient
async def websocket_mcp_example():
"""Example using a WebSocket-based MCP server."""
async with (
MCPWebsocketTool(
name="realtime-data",
url="wss://api.example.com/mcp",
) as mcp_server,
ChatAgent(
chat_client=OpenAIChatClient(),
name="DataAgent",
instructions="You provide real-time data insights.",
) as agent,
):
result = await agent.run(
"What is the current market status?",
tools=mcp_server
)
print(result)
if __name__ == "__main__":
asyncio.run(websocket_mcp_example())
Popüler MCP Sunucuları
Python Agent Framework ile kullanabileceğiniz yaygın MCP sunucuları:
-
Hesap Makinesi:
uvx mcp-server-calculator- Matematiksel hesaplamalar -
Dosya Sistemi:
uvx mcp-server-filesystem- Dosya sistemi işlemleri -
GitHub:
npx @modelcontextprotocol/server-github- GitHub deposu erişimi -
SQLite:
uvx mcp-server-sqlite- Veritabanı işlemleri
Her sunucu, model bağlam protokolünün güvenlik ve standartlaştırma avantajlarını korurken aracınızın işlevselliğini genişleten farklı araçlar ve özellikler sağlar.