Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Microsoft Agent Framework podporuje integraci se servery MCP (Model Context Protocol), což umožňuje vašim agentům přístup k externím nástrojům a službám. Tato příručka ukazuje, jak se připojit k serveru MCP a používat jeho nástroje v rámci vašeho agenta.
Verzi rozhraní Agent Framework pro .NET je možné použít společně s oficiální sadou MCP C# SDK , která umožňuje vašemu agentu volat nástroje MCP.
Následující ukázka ukazuje, jak:
- Nastavení a server MCP
- Načtení seznamu dostupných nástrojů ze serveru MCP
- Převeďte nástroje MCP na
AIFunction's, aby je bylo možné přidat do agenta. - Vyvolání nástrojů z agenta pomocí volání funkce
Nastavení klienta MCP
Nejprve vytvořte klienta MCP, který se připojí k požadovanému serveru MCP:
// 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"],
}));
V tomto příkladu:
- Název: Popisný název připojení k serveru MCP
- Příkaz: Spustitelný soubor pro spuštění serveru MCP (tady pomocí npx ke spuštění balíčku Node.js)
- Argumenty: Argumenty příkazového řádku předané serveru MCP
Načítání dostupných nástrojů
Po připojení načtěte seznam nástrojů dostupných ze serveru MCP:
// Retrieve the list of tools available on the GitHub server
var mcpTools = await mcpClient.ListToolsAsync().ConfigureAwait(false);
Tato ListToolsAsync() metoda vrátí kolekci nástrojů, které server MCP zveřejňuje. Tyto nástroje se automaticky převedou na objekty AITool, které může používat váš agent.
Vytvoření agenta pomocí nástrojů MCP
Vytvořte agenta a během inicializace zadejte nástroje MCP:
AIAgent agent = new AzureOpenAIClient(
new Uri(endpoint),
new AzureCliCredential())
.GetChatClient(deploymentName)
.AsAIAgent(
instructions: "You answer questions related to GitHub repositories only.",
tools: [.. mcpTools.Cast<AITool>()]);
Klíčové body:
- Pokyny: Poskytněte jasné pokyny, které odpovídají možnostem nástrojů MCP.
-
Nástroje: Přetypování nástrojů MCP na
AIToolobjekty a jejich rozložení do pole nástrojů - Agent bude mít automaticky přístup ke všem nástrojům poskytovaným serverem MCP.
Použití agenta
Po nakonfigurování může váš agent automaticky používat nástroje MCP ke splnění uživatelských požadavků:
// Invoke the agent and output the text result
Console.WriteLine(await agent.RunAsync("Summarize the last four commits to the microsoft/semantic-kernel repository?"));
Agent bude:
- Analýza žádosti uživatele
- Určení potřebných nástrojů MCP
- Volání příslušných nástrojů prostřednictvím serveru MCP
- Syntetizování výsledků do koherentní odpovědi
Konfigurace prostředí
Nezapomeňte nastavit požadované proměnné prostředí:
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";
Správa zdrojů
Vždy správně vyřaďte prostředky klienta MCP:
await using var mcpClient = await McpClientFactory.CreateAsync(...);
Použití await using zajišťuje, že je připojení klienta MCP správně uzavřeno, když přestane být vymezeno.
Běžné servery MCP
Mezi oblíbené servery MCP patří:
-
@modelcontextprotocol/server-github: Přístup k úložištím a datům GitHubu -
@modelcontextprotocol/server-filesystem: Operace systému souborů -
@modelcontextprotocol/server-sqlite: Přístup k databázi SQLite
Každý server poskytuje různé nástroje a možnosti, které rozšiřují funkce agenta. Tato integrace umožňuje vašim agentům bezproblémově přistupovat k externím datům a službám a současně udržovat výhody zabezpečení a standardizace protokolu Model Context Protocol.
Úplný zdrojový kód a pokyny ke spuštění této ukázky jsou k dispozici na adrese https://github.com/microsoft/agent-framework/tree/main/dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server.
Architektura agenta Pythonu poskytuje komplexní podporu pro integraci se servery MCP (Model Context Protocol) prostřednictvím několika typů připojení. To umožňuje vašim agentům bezproblémový přístup k externím nástrojům a službám.
Typy nástrojů MCP
Rozhraní Agent Framework podporuje tři typy připojení MCP:
MCPStdioTool – místní servery MCP
Slouží MCPStdioTool k připojení k serverům MCP, které běží jako místní procesy pomocí standardního vstupu a výstupu:
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 – Servery HTTP/SSE MCP
Slouží MCPStreamableHTTPTool k připojení k serverům MCP přes protokol HTTP pomocí událostí Server-Sent:
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 – Servery WEBSocket MCP
Slouží MCPWebsocketTool k připojení k serverům MCP přes připojení WebSocket:
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())
Oblíbené servery MCP
Běžné servery MCP, které můžete použít s architekturou agenta Pythonu:
-
Kalkulačka:
uvx mcp-server-calculator– matematické výpočty -
Systém souborů:
uvx mcp-server-filesystem– Operace systému souborů -
GitHub:
npx @modelcontextprotocol/server-github– Přístup k úložišti GitHub -
SQLite:
uvx mcp-server-sqlite– Databázové operace
Každý server poskytuje různé nástroje a možnosti, které rozšiřují funkce agenta a současně udržují výhody zabezpečení a standardizace protokolu Model Context Protocol.