Inicio rápido: Integración de Azure MCP Server con el SDK de GitHub Copilot

En esta guía de inicio rápido, configura el SDK de GitHub Copilot para usar las herramientas de Azure Model Context Protocol (MCP), de modo que tus aplicaciones puedan interactuar con recursos de Azure mediante lenguaje natural.

Azure MCP proporciona herramientas que permiten a los asistentes de inteligencia artificial interactuar directamente con los recursos de Azure. Al integrar estas herramientas con el SDK de Copilot, puede crear aplicaciones que usen lenguaje natural para administrar suscripciones Azure, grupos de recursos, cuentas de almacenamiento, etc.

Prerrequisitos

Inicia sesión en Azure MCP Server para desarrollo local

Azure MCP Server se autentica con Microsoft Entra ID mediante la biblioteca de identidad de Azure para .NET. El servidor admite dos modos de autenticación:

  • Modo de agente: usa la autenticación nativa del sistema operativo (como el Administrador de cuentas web de Windows) con InteractiveBrowserCredential.
  • Modo de cadena de credenciales: intenta varios métodos de autenticación en secuencia: variables de entorno, Visual Studio Code, Visual Studio, CLI de Azure, Azure PowerShell, CLI para desarrolladores de Azure y autenticación interactiva del explorador.

Inicie sesión con cualquiera de estos métodos:

  1. Abra la paleta de comandos (Ctrl+Shift+P o Cmd+Shift+P en Mac).
  2. Ejecución de Azure: inicie sesión y siga las indicaciones.

Después de iniciar sesión, Azure MCP Server puede autenticar y ejecutar operaciones en los servicios de Azure en función de los permisos.

Ejemplo de configuración del servidor MCP de Azure

Independientemente del SDK de programación que use, debe configurar Azure servidor MCP en el contexto de la aplicación para que sus herramientas estén disponibles. En el ejemplo siguiente se muestra la configuración mínima:

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

El tools: ["*"] parámetro habilita todas las herramientas del servidor MCP para la sesión. En muchos casos, debes proporcionar una lista específica de nombres de herramientas en su lugar, por lo que la sesión de Copilot solo puede llamar a las herramientas de MCP de Azure que la aplicación necesita. En el ejemplo siguiente se restringe la sesión a un pequeño conjunto de herramientas:

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

Para ver una lista completa de los nombres de herramientas disponibles, consulte herramientas de Azure MCP Server.

Ejemplos de integración

En los ejemplos siguientes se muestra cómo integrar el SDK en distintos lenguajes.

Nota:

Para un inicio más rápido, puede instalar Azure MCP Server globalmente mediante npm install -g @azure/mcp@latest.

Nota:

Los ejemplos siguientes usan --allow-all-tools y --allow-all-paths para simplificar los ejemplos. Estas marcas no son necesarias ni recomendadas para cada aplicación. Limita los permisos de la CLI y la configuración de MCP tools a lo que tu aplicación realmente necesita: las opciones amplias de «permitir todo» pueden exponer más herramientas y más acceso al sistema de archivos del que requiere tu integración de Azure MCP.

Installation

Instale el paquete del SDK de Python mediante pip.

pip install github-copilot-sdk

Código de ejemplo

El código siguiente muestra un flujo 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())

El código anterior:

  • Inicializa el cliente de Copilot.
  • Configura el servidor MCP de Azure mediante npx.
  • Crea una sesión con el modelo GPT-4.1 y el streaming habilitados.
  • Controla eventos para imprimir respuestas del asistente y registros de ejecución de herramientas.
  • Envía un mensaje para enumerar los grupos de recursos de Azure.