Udostępnij za pośrednictwem


Szybki start: integrowanie serwera AZURE MCP z zestawem GITHub Copilot SDK

W tym przewodniku wyjaśniono, jak skonfigurować zestaw GITHub Copilot SDK do korzystania z narzędzi protokołu MCP (Azure Model Context Protocol) do interakcji z zasobami platformy Azure.

Usługa Azure MCP udostępnia zestaw narzędzi, które umożliwiają asystentom sztucznej inteligencji bezpośrednią interakcję z zasobami platformy Azure. Po zintegrowaniu z zestawem SDK Copilot można tworzyć aplikacje korzystające z języka naturalnego do zarządzania subskrypcjami platformy Azure, grupami zasobów, kontami magazynu i nie tylko.

Wymagania wstępne

Zaloguj się do serwera Azure MCP na potrzeby programowania lokalnego

Serwer MCP platformy Azure uwierzytelnia się w usłudze Microsoft Entra ID przy użyciu biblioteki tożsamości platformy Azure dla platformy .NET. Serwer obsługuje dwa tryby uwierzytelniania:

  • Tryb brokera: Używa natywnego uwierzytelniania systemu operacyjnego (na przykład Menedżera kont sieci Web systemu Windows) razem z InteractiveBrowserCredential.
  • Tryb łańcucha poświadczeń: Próbuje sekwencji wielu metod uwierzytelniania: zmienne środowiskowe, Visual Studio Code, Visual Studio, Azure CLI, Azure PowerShell, Azure Developer CLI i uwierzytelnianie interakcyjne przeglądarki.

Zaloguj się przy użyciu dowolnej z następujących metod:

  1. Otwórz paletę poleceń (Ctrl+Shift+P lub Cmd+Shift+P na komputerze Mac).
  2. Uruchom platformę Azure: zaloguj się i postępuj zgodnie z monitami.

Po zalogowaniu serwer MCP platformy Azure może uwierzytelniać i uruchamiać operacje na usługach platformy Azure na podstawie Twoich uprawnień.

Przykład konfiguracji serwera MCP platformy Azure

Niezależnie od używanego zestawu SDK programowania serwer usługi Azure MCP musi być skonfigurowany w kontekście aplikacji, aby można było korzystać z narzędzi. Podstawowa konfiguracja jest podobna do następującej:

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

Parametr tools: ["*"] jest niezbędny — włącza wszystkie narzędzia z serwera MCP dla sesji.

Przykłady integracji

W poniższych przykładach pokazano, jak zintegrować zestaw SDK w różnych językach.

Uwaga / Notatka

W celu szybszego uruchamiania można zainstalować serwer Azure MCP w skali globalnej przy użyciu polecenia npm install -g @azure/mcp@latest.

Instalacja

Zainstaluj pakiet zestawu SDK języka Python przy użyciu narzędzia pip.

pip install github-copilot-sdk

Przykładowy kod

Poniższy kod przedstawia pełny przepływ:

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

Poprzedni kod:

  • Inicjuje aplikację Copilot.
  • Konfiguruje serwer mcp platformy Azure przy użyciu polecenia npx.
  • Tworzy sesję dla modelu GPT-4.1 z włączonym przesyłaniem strumieniowym.
  • Obsługuje zdarzenia dotyczące wydruków odpowiedzi asystenta i dzienników wykonywania narzędzi.
  • Wysyła monit o wyświetlenie listy grup zasobów platformy Azure.