Partager via


Démarrage rapide : Intégrer Azure MCP Server à GitHub Copilot SDK

Ce guide explique comment configurer le Kit de développement logiciel (SDK) GitHub Copilot pour utiliser les outils MCP (Model Context Protocol) Azure pour interagir avec les ressources Azure.

Azure MCP fournit un ensemble d’outils qui permettent aux assistants IA d’interagir directement avec les ressources Azure. Lorsqu’il est intégré au Kit de développement logiciel (SDK) Copilot, vous pouvez créer des applications qui tirent parti du langage naturel pour gérer les abonnements Azure, les groupes de ressources, les comptes de stockage, etc.

Prerequisites

Se connecter au serveur Azure MCP pour le développement local

Azure MCP Server s’authentifie auprès de Microsoft Entra ID à l’aide de la bibliothèque Azure Identity pour .NET. Le serveur prend en charge deux modes d’authentification :

  • Mode Broker : utilise l’authentification native de votre système d’exploitation (comme le Gestionnaire de comptes web Windows) avec InteractiveBrowserCredential.
  • Mode chaîne des informations d'identification : essaie plusieurs méthodes d’authentification successivement : variables d’environnement, Visual Studio Code, Visual Studio, Azure CLI, Azure PowerShell, Azure Developer CLI et authentification interactive par navigateur.

Connectez-vous à l’aide de l’une de ces méthodes :

  1. Ouvrez la palette de commandes (Ctrl+Shift+P ou Cmd+Shift+P sur Mac).
  2. Exécutez Azure : connectez-vous et suivez les invites.

Une fois connecté, azure MCP Server peut authentifier et exécuter des opérations sur les services Azure en fonction de vos autorisations.

Exemple de configuration de serveur MCP Azure

Quel que soit le Kit de développement logiciel (SDK) de programmation que vous utilisez, le serveur Azure MCP doit être configuré dans le contexte de l’application pour que les outils soient disponibles. La configuration essentielle ressemble à ce qui suit :

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

Le tools: ["*"] paramètre est essentiel : il active tous les outils du serveur MCP pour la session.

Exemples d’intégration

Les exemples suivants montrent comment intégrer le Kit de développement logiciel (SDK) dans différents langages.

Note

Pour un démarrage plus rapide, vous pouvez installer Azure MCP Server globalement à l’aide de npm install -g @azure/mcp@latest.

Installation

Installez le package du Kit de développement logiciel (SDK) Python à l’aide de pip.

pip install github-copilot-sdk

Exemple de code

Le code suivant illustre un flux complet :

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

Code précédent :

  • Initialise le client Copilot.
  • Configurez le serveur Azure MCP à l’aide de npx.
  • Crée une session avec le modèle GPT-4.1 et la diffusion en continu activées.
  • Gère les événements pour imprimer les réponses de l’Assistant et les journaux d’exécution des outils.
  • Envoie une invite pour répertorier les groupes de ressources Azure.