APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

Azure MCP Server がパブリックプレビューになったので試してみた

こんにちは、ACS 事業部の埜下です。

先日、GitHub 公式の GitHub MCP Server が登場しましたね。

そしてついに!
Microsoft から 「Azure MCP Server」が登場しました!

そこで今回は「Azure MCP Server とは」、「GitHub Copilot Agent mode で Azure MCP Server を動かす方法」について紹介します。

「MCP とは」や「Windows の WSL2 で MCP を動かす方法」については、以前 GitHub MCP Server について紹介した記事をご覧ください。

techblog.ap-com.co.jp

Azure MCP Server とは

Azure MCP Server は Microsoft が開発している Azure 用 MCP サーバです。

github.com

Azure MCP Server を使うことで、「MCP」というプロトコルを介して GitHub Copilot Agent mode などの MCP クライアントが Azure リソースを参照しながら回答できるようになります。 つまり、GitHub Copilot Agent mode などの MCP クライアントの利用者が自然言語で Azure を参照、操作できる ようになります。

Microsoft による紹介記事が出ていますので、こちらもご覧ください。

devblogs.microsoft.com

Azure MCP Server でできること

Azure MCP Server を使うことで、GitHub Copilot Agent mode などの MCP クライアントから以下を実行できます。 現在 (2025/4/18 時点)、Azure MCP Server はパブリックプレビューの状態ですので、今後も増えていくと思われます。

  • Azure サービス
    • Azure Cosmos DB (NoSQL データベース)
      • Cosmos DB アカウントの一覧表示
      • データベースの一覧表示とクエリ実行
      • コンテナとアイテムの管理
      • コンテナのクエリ実行
    • Azure ストレージ
      • ストレージアカウントの一覧表示
      • BLOB コンテナと BLOB の管理
      • Table Storage の一覧表示とクエリ実行
      • コンテナのプロパティとメタデータの取得
    • Azure Monitor (Log Analytics)
      • Log Analytics ワークスペースの一覧表示
      • Kusto クエリ言語 (KQL) の実行
      • 利用可能なテーブルの一覧
      • 監視オプションの講師絵
    • Azure App Configuration
      • App Configuration ストアの一覧表示
      • Key-Value の管理
      • ラベル付き構成の管理
      • 構成設定のロック/ロック解除
    • Azure リソース グループ
      • リソースグループの一覧表示
      • リソースグループ管理操作
  • Azureツール
    • Azure CLI
      • Azure CLI コマンドの直接実行
      • すべての Azure CLI 機能のサポート
      • JSON フォーマットの出力
    • Azure Developer CLI (azd)
      • azd コマンドの直接実行
      • テンプレートの検出、テンプレートの初期化、プロビジョニング、およびデプロイメントのサポート

Azure MCP Server はこれらの機能を MCP の「ツール」として提供します。 GitHub Copilot Agent mode などの MCP クライアントはこのツールを利用してやりたいことを実現します。

前提条件

VS Code の GitHub Copilot Agent mode から Azure MCP Server を使う場合、いくつか前提条件があります。

  1. VS Code バージョン 1.99 以上にする
  2. Node.js のバージョンを 18.0.0 以上にする
  3. npx コマンドを実行できる状態にする

1 つ目は、VS Code で GitHub Copilot Agent mode を使うために必要な要件です。 1.99 未満の場合は VS Code をバージョンアップしてください。

2 つ目と 3 つ目は、Azure MCP Server を動かすための要件です。 Azure MCP Server の起動には npx コマンドを実行します。 また、@azure/mcp というパッケージを利用するので、npm をインストールして npx コマンドを実行できる状態にしておきます。

インストール

Azure MCP Server リポジトリ の README には VS Code へ簡単に Azure MCP Server をインストールするボタンも用意されています。

README にあるインストール ボタン

このボタンを押下すると VS Code の設定ファイル settings.json に Azure MCP Server の設定が追加されます。 この設定は手動で追加しても構いません。

{
  "servers": {
    "Azure MCP Server": {
      "command": "npx",
      "args": [
        "-y",
        "@azure/mcp@latest",
        "server",
        "start"
      ]
    }
  }
}

画像のように Azure MCP Server の設定に「▷Start」という文字が表示されています。 「▷Start」を選択すると、VS Code で Azure MCP Server が起動します。

Azure MCP Server の起動

GitHub Copilot Agent mode から利用

起動した Azure MCP Server を GitHub Copilot Agent mode から利用するには、GitHub Copilot Chat のウィンドウで "Agent" を選択します。

GitHub Copilot Chat で "Agent" を選択

すると、画面左上に⚒️のアイコンと数字が出てきます。 これは MCP サーバーから提供されている「ツール」の状態と利用できる数を表しています。 settings.json で指定した MCP サーバーとうまく連携できていない場合、この⚒️がエラーアイコンになります。

エラーがない状態で GitHub Copilot に Azure に関する質問をすると、Azure MCP Server 経由で Azure の情報を使って回答してくれます。

GitHub Copilot for Azure との組み合わせ

既に GitHub Copilot には「GitHub Copilot for Azure」という拡張機能が存在しています。

Azure を利用するうえで GitHub Copilot for Azure はとても便利な機能ですが、直接データプレーンを対象にした操作はできないようです。 たとえば、「ストレージアカウント内のデータの参照」や「CosmosDB に対するクエリ実行」などです。 GitHub Copilot for Azure は Azure リソースの参照には Azure Resource Graph を使い、データプレーンの参照などには VS Code 上で Azure CLI を実行して目的を達成しようとします。

一方、Azure MCP Server はデータプレーンの操作をサポートしており、多くの場合 Azure CLI を実行せずに GitHub Copilot Agent mode から直接データプレーンを参照できるようです。

そのため、Azure MCP Server と GitHub Copilot for Azure を使い分けるのではなく、GitHub Copilot Agent mode で両者を組み合わせて使うことで、より効率的に Azure に対する操作ができるようになります。

Azure MCP Server を使ってみる

それでは、Azure MCP Server を使ってみましょう。

今回はストレージアカウント内の BLOB データを GitHub Copilot Agent mode で参照してみます。 違いが分かるように、「Azure MCP Server を使わず GitHub Copilot for Azure を使うパターン」と「Azure MCP Server と GitHub Copilot for Azure を使うパターン」で試してみました。

Azure MCP Server がないとき

まずは Azure MCP Server が使われないようにするために、GitHub Copilot の画面から Azure MCP Server を無効化しました。

Azure MCP Server を無効化

そして、GitHub Copilot Agent mode に「@azure ストレージアカウントのデータを参照できますか?」と聞いてみました。 すると、GitHub Copilot for Azure の機能でサブスクリプションの確認やストレージアカウント一覧の表示がされました。 内部的には Azure Resource Graph を使ってリソースの情報を取ってきているようです。

ストレージアカウントのデータを参照してみる

今回は Terraform の tfstate を格納したストレージアカウントに対してデータ参照を指示しました。 すると、Azure CLI (az コマンド) の実行を提案されました。

ストレージアカウントの参照には Azure CLI が使われる

Continue を選択すると、VS Code で新しいターミナルが表示され、GitHub Copilot Agent mode によって Azure CLI が実行されました。

Azure CLI が実行される

GitHub Copilot Agent mode はターミナルで実行した Azure CLI の結果を解析して、次の作業を判断して提案してくれました。

Azure CLI の実行結果から次の作業を判断

以降は引き続き Azure CLI を使って BLOB データを参照する流れとなったので割愛します。

このように、GitHub Copilot for Azure のみの場合はデータプレーンに対する操作は、利用者の代わって GitHub Copilot Agent mode が Azure CLI を実行します。

Azure MCP Server があるとき

続いて、Azure MCP Server を有効化して同じ「@azure ストレージアカウントのデータを参照できますか?」という質問をしてみます。

そうすると、Azure MCP Server のツール azmcp-subscription-list の実行を提案されました。

Azure MCP Server を使って利用可能なサブスクリプションが確認される

Continue を選択してツールを実行すると、サインイン済みのサブスクリプション一覧が表示されました。

Azure MCP Server を使ってサブスクリプション一覧が取得された

GitHub Copilot はすべてのサブスクリプションを対象にしてストレージアカウントのデータを参照しようとしたので、特定のサブスクリプションのみを対象としてデータ参照するように指示しました。 今度は Azure MCP Server のツール azmcp-storage-account-list の実行を提案されたので、実行してもらうとサブスクリプション内のストレージアカウント一覧が表示されました。

特定サブスクリプションのみ参照するように指示

Azure MCP Server を使わないときと同じく、tfstate 用のストレージアカウントを指定します。 こちらも Azure MCP Server のツールが提案されました。

tfstate のストレージアカウントを指定

実行すると、ストレージアカウント内のコンテナが表示され、Azure MCP Server のツールを使った BLOB データの参照を提案されました。

ストレージアカウント内のコンテナが表示された

実行してもらうと、BLOB データについての情報が回答されました。

BLOB データの情報を回答

さらに詳しく情報が取れるということなので指示したところ、Azure CLI を実行するツール azmcp-extension-az を提案されました。

Azure CLI を実行するツールが提案された

ツール azmcp-extension-az でどんなものが実行されるのか確認したところ、Azure CLI のサブコマンド以降の情報が含まれていました。 Azure MCP Server の個別のツールで対応できない命令に対しては、azmcp-extension-az ツールを使って Azure CLI コマンドを実行するようです。

azmcp-extension-az では Azure CLI のサブコマンドの情報が含まれている

残念ながら BLOB データをダウンロードしてきて中身を確認することまではできませんでした。

BLOB データのダウンロードは実行できなかった

Azure MCP Server を使った場合のストレージアカウントの参照は以上としました。

このように、Azure MCP Server を使った場合は GitHub Copilot Agent mode から直接データプレーンへの操作が可能です。 Azure CLI が必要になった場合でも MCP サーバ上で Azure CLI を実行してくれます。 VS Code のターミナルで Azure CLI が実行されるわけではありません。

まとめ

今回はパブリックプレビューとして公開された Azure MCP Server について紹介しました。

  • GitHub Copilot Agent mode から利用可能な Azure 向け MCP サーバ
  • Azure MCP Server はデータプレーンの操作をサポート
  • GitHub Copilot for Azure と組み合わせることでより効率的に

Azure MCP Server と GitHub Copilot for Azure を使うことで、GitHub Copilot Agent mode はより便利になっていくと思います。 GA される日が待ち遠しいですね。