こんにちは、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 について紹介した記事をご覧ください。
Azure MCP Server とは
Azure MCP Server は Microsoft が開発している Azure 用 MCP サーバです。
Azure MCP Server を使うことで、「MCP」というプロトコルを介して GitHub Copilot Agent mode などの MCP クライアントが Azure リソースを参照しながら回答できるようになります。 つまり、GitHub Copilot Agent mode などの MCP クライアントの利用者が自然言語で Azure を参照、操作できる ようになります。
Microsoft による紹介記事が出ていますので、こちらもご覧ください。
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 Cosmos DB (NoSQL データベース)
- Azureツール
- Azure CLI
- Azure CLI コマンドの直接実行
- すべての Azure CLI 機能のサポート
- JSON フォーマットの出力
- Azure Developer CLI (azd)
- azd コマンドの直接実行
- テンプレートの検出、テンプレートの初期化、プロビジョニング、およびデプロイメントのサポート
- Azure CLI
Azure MCP Server はこれらの機能を MCP の「ツール」として提供します。 GitHub Copilot Agent mode などの MCP クライアントはこのツールを利用してやりたいことを実現します。
前提条件
VS Code の GitHub Copilot Agent mode から Azure MCP Server を使う場合、いくつか前提条件があります。
- VS Code バージョン 1.99 以上にする
- Node.js のバージョンを 18.0.0 以上にする
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 をインストールするボタンも用意されています。
このボタンを押下すると 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 が起動します。
GitHub Copilot Agent mode から利用
起動した Azure MCP Server を GitHub Copilot Agent mode から利用するには、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 を無効化しました。
そして、GitHub Copilot Agent mode に「@azure ストレージアカウントのデータを参照できますか?」と聞いてみました。 すると、GitHub Copilot for Azure の機能でサブスクリプションの確認やストレージアカウント一覧の表示がされました。 内部的には Azure Resource Graph を使ってリソースの情報を取ってきているようです。
今回は Terraform の tfstate を格納したストレージアカウントに対してデータ参照を指示しました。
すると、Azure CLI (az
コマンド) の実行を提案されました。
Continue を選択すると、VS Code で新しいターミナルが表示され、GitHub Copilot Agent mode によって Azure CLI が実行されました。
GitHub Copilot Agent mode はターミナルで実行した 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
の実行を提案されました。
Continue を選択してツールを実行すると、サインイン済みのサブスクリプション一覧が表示されました。
GitHub Copilot はすべてのサブスクリプションを対象にしてストレージアカウントのデータを参照しようとしたので、特定のサブスクリプションのみを対象としてデータ参照するように指示しました。
今度は Azure MCP Server のツール azmcp-storage-account-list
の実行を提案されたので、実行してもらうとサブスクリプション内のストレージアカウント一覧が表示されました。
Azure MCP Server を使わないときと同じく、tfstate 用のストレージアカウントを指定します。 こちらも Azure MCP Server のツールが提案されました。
実行すると、ストレージアカウント内のコンテナが表示され、Azure MCP Server のツールを使った BLOB データの参照を提案されました。
実行してもらうと、BLOB データについての情報が回答されました。
さらに詳しく情報が取れるということなので指示したところ、Azure CLI を実行するツール azmcp-extension-az
を提案されました。
ツール azmcp-extension-az
でどんなものが実行されるのか確認したところ、Azure CLI のサブコマンド以降の情報が含まれていました。
Azure MCP Server の個別のツールで対応できない命令に対しては、azmcp-extension-az
ツールを使って Azure CLI コマンドを実行するようです。
残念ながら 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 される日が待ち遠しいですね。