Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten konfigurerar du GitHub Copilot SDK för att använda MCP-verktyg (Azure Model Context Protocol) så att dina program kan interagera med Azure resurser via naturligt språk.
Azure MCP innehåller verktyg som gör att AI-assistenter kan interagera med Azure resurser direkt. När du integrerar dessa verktyg med Copilot SDK kan du skapa program som använder naturligt språk för att hantera Azure-prenumerationer, resursgrupper, lagringskonton med mera.
Förutsättningar
- GitHub Copilot CLI installerat.
-
Node.js installerat (för att köra servern via
npx). -
Azure CLI installerat och autentiserat (
az login).
Logga in på Azure MCP Server för lokal utveckling
Azure MCP Server autentiserar till Microsoft Entra-ID med hjälp av Azure Identity-biblioteket för .NET. Servern stöder två autentiseringslägen:
-
Koordinatorläge: Använder operativsystemets interna autentisering (till exempel Windows Web Account Manager) med
InteractiveBrowserCredential. - Kedjeläge för autentiseringsuppgifter: Provar flera autentiseringsmetoder i följd: miljövariabler, Visual Studio Code, Visual Studio, Azure CLI, Azure PowerShell, Azure Developer CLI och interaktiv webbläsarautentisering.
Logga in med någon av följande metoder:
- Öppna kommandopaletten (
Ctrl+Shift+PellerCmd+Shift+Ppå Mac). - Kör Azure: Logga in och följ anvisningarna.
När du har loggat in kan Azure MCP Server autentisera och köra åtgärder på Azure-tjänster baserat på dina behörigheter.
Konfigurationsexempel för Azure MCP Server
Oavsett vilken programmerings-SDK du använder måste du konfigurera Azure MCP Server i appkontexten så att dess verktyg är tillgängliga. I följande exempel visas den minimala konfigurationen:
{
"mcp_servers": {
"azure-mcp": {
"type": "local",
"command": "npx",
"args": ["-y", "@azure/mcp@latest", "server", "start"],
"tools": ["*"]
}
}
}
Parametern tools: ["*"] aktiverar alla verktyg från MCP-servern för sessionen. I många fall bör du ange en specifik lista över verktygsnamn i stället, så att Copilot-sessionen bara kan anropa Azure MCP-verktyg som din app behöver. I följande exempel begränsas sessionen till en liten uppsättning verktyg:
{
"mcp_servers": {
"azure-mcp": {
"type": "local",
"command": "npx",
"args": ["-y", "@azure/mcp@latest", "server", "start"],
"tools": ["group_list", "storage_account_list", "subscription_list"]
}
}
}
En fullständig lista över tillgängliga verktygsnamn finns i Azure MCP Server-verktyg.
Integreringsexempel
I följande exempel visas hur du integrerar SDK:t på olika språk.
Anmärkning
För snabbare start kan du installera Azure MCP Server globalt med hjälp av npm install -g @azure/mcp@latest.
Anmärkning
Följande exempel använder --allow-all-tools och --allow-all-paths för att hålla exemplen enkla. Dessa flaggor krävs inte eller rekommenderas inte för varje app. Begränsa CLI-behörigheterna och MCP-konfigurationen tools till det som appen faktiskt behöver – breda inställningar av typen "tillåt alla" kan ge åtkomst till fler verktyg och mer filsystemåtkomst än vad Azure MCP-integrationen kräver.
Installation
Installera Python SDK-paketet med pip.
pip install github-copilot-sdk
Exempelkod
Följande kod visar ett fullständigt flöde:
import asyncio
from copilot import CopilotClient
from copilot.generated.session_events import SessionEventType
async def main():
# Initialize the Copilot client
client = CopilotClient({
"cli_args": [
"--allow-all-tools",
"--allow-all-paths",
]
})
await client.start()
# Configure Azure MCP server in session config
azure_mcp_config = {
"azure-mcp": {
"type": "local",
"command": "npx",
"args": ["-y", "@azure/mcp@latest", "server", "start"],
"tools": ["*"], # Enable all Azure MCP tools
}
}
# Create session with MCP servers
session = await client.create_session({
"model": "gpt-4.1", # Default model; BYOK can override
"streaming": True,
"mcp_servers": azure_mcp_config,
})
# Handle events
def handle_event(event):
if event.type == SessionEventType.ASSISTANT_MESSAGE_DELTA:
if hasattr(event.data, 'delta_content') and event.data.delta_content:
print(event.data.delta_content, end="", flush=True)
elif event.type == SessionEventType.TOOL_EXECUTION_START:
tool_name = getattr(event.data, 'tool_name', 'unknown')
print(f"\n[TOOL: {tool_name}]")
session.on(handle_event)
# Send prompt
await session.send_and_wait({
"prompt": "List all resource groups in my Azure subscription"
})
await client.stop()
if __name__ == "__main__":
asyncio.run(main())
Föregående kod:
- Initierar Copilot-klienten.
- Konfigurerar Azure MCP-servern med .
npx - Skapar en session med GPT-4.1-modellen och strömning aktiverat.
- Hanterar händelser för att skriva ut assistentens svar och loggar för verktygsutförande.
- Skickar en uppmaning om att lista Azure-resursgrupper.