Schnellstart: Integrieren von Azure MCP-Server in GitHub Copilot SDK

In dieser Schnellstartanleitung konfigurieren Sie das GitHub Copilot SDK so, dass Azure Model Context Protocol (MCP)-Tools verwendet werden, damit Ihre Anwendungen mit Azure Ressourcen über natürliche Sprache interagieren können.

Azure MCP bietet Tools, mit denen KI-Assistenten direkt mit Azure Ressourcen interagieren können. Wenn Sie diese Tools in das Copilot SDK integrieren, können Sie Anwendungen erstellen, die natürliche Sprache verwenden, um Azure Abonnements, Ressourcengruppen, Speicherkonten und vieles mehr zu verwalten.

Voraussetzungen

Anmelden bei Azure MCP Server für die lokale Entwicklung

Azure MCP Server authentifiziert sich bei Microsoft Entra ID mithilfe der Azure Identity-Bibliothek für .NET. Der Server unterstützt zwei Authentifizierungsmodi:

  • Brokermodus: Verwendet die systemeigene Authentifizierung Ihres Betriebssystems (z. B. Windows Web Account Manager) mit InteractiveBrowserCredential.
  • Anmeldeinformationsketten-Modus: Es wird versucht, mehrere Authentifizierungsmethoden in einer festgelegten Reihenfolge zu verwenden: Umgebungsvariablen, Visual Studio Code, Visual Studio, Azure CLI, Azure PowerShell, Azure Developer CLI und interaktive Browserauthentifizierung.

Melden Sie sich mit einer der folgenden Methoden an:

  1. Öffnen Sie die Befehlspalette (Ctrl+Shift+P oder Cmd+Shift+P auf dem Mac).
  2. Führen Sie Azure aus: Melden Sie sich an , und folgen Sie den Anweisungen.

Nach der Anmeldung kann Azure MCP Server Vorgänge für Azure-Dienste basierend auf Ihren Berechtigungen authentifizieren und ausführen.

Azure MCP Server-Konfigurationsbeispiel

Unabhängig vom verwendeten Programmier-SDK müssen Sie Azure MCP-Server im App-Kontext so konfigurieren, dass seine Tools verfügbar sind. Die grundlegende Konfiguration sieht wie im folgenden Beispiel aus:

{
  "mcp_servers": {
    "azure-mcp": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start"],
      "tools": ["*"]
    }
  }
}

Der tools: ["*"] Parameter ist unerlässlich – es ermöglicht alle Tools vom MCP-Server für die Sitzung.

Integrationsbeispiele

Die folgenden Beispiele zeigen, wie das SDK in verschiedene Sprachen integriert wird.

Hinweis

Für einen schnelleren Start können Sie den Azure MCP Server global installieren, indem Sie npm install -g @azure/mcp@latest verwenden.

Installation

Installieren Sie das Python SDK-Paket mit pip.

pip install github-copilot-sdk

Beispielcode

Der folgende Code veranschaulicht einen vollständigen Fluss:

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())

Der vorherige Code:

  • Initialisiert den Copilot-Client.
  • Konfiguriert den Azure MCP-Server mithilfe von npx.
  • Erstellt eine Sitzung mit dem GPT-4.1-Modell und aktiviertem Streaming.
  • Behandelt Ereignisse zum Drucken von Assistentenantworten und Toolausführungsprotokollen.
  • Sendet eine Aufforderung zum Auflisten von Azure-Ressourcengruppen.