次の方法で共有


クイック スタート: Azure MCP Server と GitHub Copilot SDK の統合

このガイドでは、Azure リソースと対話するために Azure Model Context Protocol (MCP) ツールを使用するように GitHub Copilot SDK を構成する方法について説明します。

Azure MCP には、AI アシスタントが Azure リソースと直接やり取りできるようにする一連のツールが用意されています。 Copilot SDK と統合すると、自然言語を利用して Azure サブスクリプション、リソース グループ、ストレージ アカウントなどを管理するアプリケーションを構築できます。

[前提条件]

  • GitHub Copilot CLI がインストールされています。
  • Node.js インストールされます ( npx経由でサーバーを実行する場合)。
  • Azure CLI のインストールと認証 (az login)。

ローカル開発のために Azure MCP Server にサインインする

Azure MCP Server は、.NET 用 Azure ID ライブラリを使用して Microsoft Entra ID に対して認証を行います。 サーバーでは、 次の 2 つの認証モードがサポートされています。

  • ブローカー モード: InteractiveBrowserCredentialでオペレーティング システムのネイティブ認証 (Windows Web アカウント マネージャーなど) を使用します。
  • 資格情報チェーン モード: 環境変数、Visual Studio Code、Visual Studio、Azure CLI、Azure PowerShell、Azure Developer CLI、対話型ブラウザー認証など、複数の認証方法を順番に試行します。

次のいずれかの方法を使用してサインインします。

  1. コマンド パレットを開きます (Mac のCtrl+Shift+P または Cmd+Shift+P )。
  2. Azure を実行する: サインインし、指示に従います。

サインイン後、Azure MCP Server は、アクセス許可に基づいて Azure サービスに対する操作を認証して実行できます。

Azure MCP サーバーの構成例

使用するプログラミング SDK に関係なく、ツールを使用できるように Azure MCP サーバーをアプリ コンテキストで構成する必要があります。 重要な構成は次のようになります。

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

tools: ["*"] パラメーターは必須です。MCP サーバーからのすべてのツールをセッションに対して有効にします。

統合の例

次の例は、さまざまな言語で SDK を統合する方法を示しています。

起動を高速化するために、 npm install -g @azure/mcp@latestを使用して Azure MCP Server をグローバルにインストールできます。

インストール作業

pip を使用して Python SDK パッケージをインストールします。

pip install github-copilot-sdk

サンプル コード

次のコードは、完全なフローを示しています。

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

前述のコード:

  • Copilot クライアントを初期化します。
  • npxを使用して Azure MCP サーバーを構成します。
  • GPT-4.1 モデルを使用してセッションを作成し、ストリーミングを有効にします。
  • アシスタントの応答とツール実行ログを出力するイベントを処理します。
  • Azure リソース グループを一覧表示するプロンプトを送信します。