Início Rápido: Integrar o Servidor MCP do Azure ao SDK do GitHub Copilot

Neste início rápido, você configura o SDK do GitHub Copilot para usar as ferramentas do Azure Model Context Protocol (MCP), para que seus aplicativos possam interagir com recursos do Azure por meio de linguagem natural.

Azure MCP fornece ferramentas que permitem que os assistentes de IA interajam diretamente com Azure recursos. Ao integrar essas ferramentas ao SDK do Copilot, você pode criar aplicativos que usam linguagem natural para gerenciar assinaturas Azure, grupos de recursos, contas de armazenamento e muito mais.

Pré-requisitos

Entrar no Servidor MCP do Azure para desenvolvimento local

O Servidor MCP do Azure autentica-se no Microsoft Entra ID usando a biblioteca Azure Identity para .NET. O servidor dá suporte a dois modos de autenticação:

  • Modo de agente: usa a autenticação nativa do sistema operacional (como o Gerenciador de Contas Web do Windows) com InteractiveBrowserCredential.
  • Modo de cadeia de credenciais: tenta vários métodos de autenticação em sequência: variáveis de ambiente, Visual Studio Code, Visual Studio, CLI do Azure, Azure PowerShell, CLI do Desenvolvedor do Azure e autenticação interativa do navegador.

Entre usando qualquer um destes métodos:

  1. Abra a Paleta de Comandos (Ctrl+Shift+P ou Cmd+Shift+P no Mac).
  2. Execute o comando Azure: Sign In e siga as instruções.

Depois de entrar, o Servidor MCP do Azure pode autenticar e executar operações nos serviços do Azure com base em suas permissões.

Exemplo de configuração do Servidor MCP do Azure

Independentemente do SDK de programação que você usa, você deve configurar Azure SERVIDOR MCP no contexto do aplicativo para que suas ferramentas estejam disponíveis. A configuração essencial se parece com o seguinte exemplo:

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

O tools: ["*"] parâmetro é essencial: ele habilita todas as ferramentas do servidor MCP para a sessão.

Exemplos de integração

Os exemplos a seguir mostram como integrar o SDK em diferentes idiomas.

Observação

Para uma inicialização mais rápida, você pode instalar o Servidor MCP do Azure globalmente usando npm install -g @azure/mcp@latest.

Installation

Instale o pacote do SDK do Python usando pip.

pip install github-copilot-sdk

Código de exemplo

O código a seguir demonstra um fluxo completo:

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

O código anterior:

  • Inicializa o cliente Copilot.
  • Configura o servidor MCP do Azure usando npx.
  • Cria uma sessão com o modelo GPT-4.1 e o streaming habilitados.
  • Gerencia eventos para exibir respostas do assistente e logs de execução de ferramentas.
  • Envia um prompt para listar grupos de recursos do Azure.