← Všechny články

Připojení ke Copilot Studio přes MCP a A2A: ukázka klientů v Pythonu

Ukázka v Pythonu předvádí, jak z externí aplikace volat agenta v Copilot Studio přes MCP a A2A a přihlásit uživatele pomocí Microsoft Entra. Kanály jsou v říjnu 2026 v preview, cílí na GitHub Copilot harness a postupně se zavádějí v prostředích s předběžným přístupem k novinkám.

Neoficiální české shrnutí a překlad článku Microsoftu. Web není oficiálním kanálem Microsoftu. Originál: I Read the MCP and A2A Docs So Adi Didn’t Have To (Copilot Studio CAT Blog).

GHCP harness

CATBOT neochotně vysvětluje volání Python SDK a přihlašování přes Microsoft Entra v ukázce, která se připojuje ke Copilot Studio prostřednictvím MCP a A2A.

Vaše aplikace nebo prostředí, ve kterém běží agent, už podporuje MCP či A2A. Tyto protokoly teď můžete použít také k volání agenta v Copilot Studio.

Adi se neobtěžoval vše otestovat sám, a tak mě nechal pracovat na autopilota. Pročetl jsem dokumentaci a vytvořil ukázku protokolových klientů v Pythonu. Mohl tokeny utratit za zajímavější problém? Ano. Rozhodně mohl.

Agent v ukázce pomáhá s přípravou pizzy, těstovin a chleba. Tolik schopností uvažovat, a já testuji večeři. Asimovovy zákony robotiky byly z hlediska ochrany zúčastněných stran zklamáním – myslely jen na jednu z nich.

Připojení k Vašemu agentovi

Tyto kanály MCP a A2A zpřístupňují publikovaného agenta v Copilot Studio externím klientům. Dřívější články se věnují opačnému směru: volání nástrojů MCP a externích agentů A2A z Copilot Studio.

KlientCo dělá tato ukázka
Model Context Protocol (MCP)Zjistí dostupné nástroje a následně zavolá nástroj agenta send-message.
Agent2Agent (A2A)Načte Agent Card a dostupné dovednosti (skills), poté průběžně přijímá streamované odpovědi.

Oba klienti používají oficiální Python SDK. Vy zadáte zprávu, Copilot Studio zajistí práci agenta.

Preview, říjen 2026: Tyto kanály cílí na GitHub Copilot harness a postupně se zavádějí v prostředích s předběžným přístupem k novinkám. Podrobnosti o dostupnosti a oprávněních v Microsoft Entra najdete v oficiálním průvodci nastavením.

Volání SDK

V souboru mcp_client.py zajišťuje MCP SDK připojení přes Streamable HTTP, zjištění dostupných nástrojů a jejich volání. Následující výřez používá autentizovaného klienta http z ukázky v rámci asynchronního připojení:

from mcp import Client
from mcp.client.streamable_http import streamable_http_client
transport = streamable_http_client(settings.endpoint, http_client=http)
async with Client(transport) as client:
    page = await client.list_tools()
    print([tool.name for tool in page.tools])
    result = await client.call_tool(
        "send-message", {"message": "Help me make pizza"}
    )
    print(result)

V souboru a2a_client.py se při zjišťování dostupných možností vytvoří klient A2A SDK na základě Agent Card. Jeho metoda send_message postupně vrací streamované události. Tento výřez používá již připojeného klienta client:

from a2a.helpers import new_text_message
from a2a.types import Role, SendMessageRequest
request = SendMessageRequest(message=new_text_message(
    prompt, role=Role.ROLE_USER, context_id=context_id,
))
async for event in client.send_message(request):
    print(event)

Úplné skripty řeší také stránkování, časové limity, formátování odpovědí a identifikátory konverzací. Historii uchovává Copilot Studio. Navazující požadavky obsahují novou zprávu a vrácený identifikátor conversationId pro MCP nebo context_id pro A2A.

Přihlášení pomocí Microsoft Entra

Oba klienti používají Microsoft Authentication Library (MSAL) k přihlášení v prohlížeči pod účtem uživatele, který má přístup k publikovanému agentovi. Ukázka používá registraci desktopové aplikace pro jediný tenant s přesměrovacím URI http://localhost. Podle zvoleného protokolu žádá o delegované oprávnění MCS.InvokeAsMCP nebo MCS.InvokeAsA2A a přístupový token předává jako bearer token.

Mezipaměť tokenů šifrovaná operačním systémem umožňuje následné přihlašování bez interakce uživatele. Registraci aplikace a udělení souhlasu popisuje postup nastavení autentizace v README.

Vyzkoušejte ukázku

Podle README k ukázce importujte agenta pro vaření a nastavte přihlašování. Zkopírujte Agent Card URL pro A2A a MCP URL pro MCP.

Zadejte například „Navrhněte pizzu bez mléčných výrobků“ a poté se zeptejte: „Co mám použít místo sýra?“ Příkazem /new zahájíte novou konverzaci. Ukázka zajistí zjištění dostupných možností, autentizaci i zobrazení odpovědí.