目次
はじめに
こんにちは。クラウド事業部の田代です。
今回はAzure MCP Serverを構築して、Azureのリソースを操作していこうかと思います。
Azure MCP Serverの概要
Azure MCP Server は、Model Context Protocol(MCP) を実装した軽量サーバで、AI エージェントや各種クライアントから自然言語での Azure 操作を可能にします。
現時点(2025/12/5)ではパブリックプレビューなので、今後新たな機能などが追加される可能性があります。
- MCP(Model Context Protocol):LLM(大規模言語モデル)が外部のツールや API と安全かつ構造化された形でやり取りするためのプロトコルです。
- Azure MCP Server:MCPを利用し、自然言語プロンプトを受け取って Azure CLI や az コマンドを実行し、Azure リソースの操作を仲介するサーバです。LLM が直接 az コマンドを実行するのではなく、 MCP Server が安全な仲介役となることで、不適切なコマンド実行を防ぎセキュリティを担保します。
Azure MCP Server は、Azure Resource Manager(ARM)で管理されるリソース全般の操作が可能で、特にAIを活用した開発フローで頻繁に利用されるリソースに重点が置かれています。
操作可能なリソースは以下の通りです。
| カテゴリ | リソース/サービス | 主な操作内容 |
|---|---|---|
| 仮想マシン | Azure Virtual Machines (Azure VM) | 作成、起動/停止、管理 |
| Web/モバイル | Azure App Service | Webアプリのデプロイ、構成管理 |
| サーバーレス | Azure Functions | サーバーレス関数のデプロイ、管理 |
| コンテナ | Azure Kubernetes Service (AKS) | クラスターの管理、ノードリソースの操作 |
| ストレージ | Azure Storage (ストレージアカウント) | アカウント一覧の取得、管理 |
| NoSQL データベース | Azure Cosmos DB | アカウント、データベース、コンテナーのリストアップと管理、クエリ実行 |
| データ分析 | Azure Data Explorer | クラスター、データベース、テーブルのリストアップ、KQL (Kusto Query Language) クエリ実行 |
| AI 開発環境 | Azure AI Foundry | モデルのリストアップ、デプロイ、知識インデックスの管理 |
| データ処理 | Azure Databricks | 関連リソースの管理 |
| DevOps | Azure DevOps | 関連リソースの管理 |
| CLI 連携 | Azure Developer CLI Extension | az コマンドの直接実行、プロビジョニング、デプロイ |
| 構成管理 | Azure App Configuration | ストアのリストアップ、キーと値のペアの管理 |
| 機密情報 | Azure Key Vault | シークレット、証明書など機密情報へのアクセスと管理 (承認が必要) |
| ログ | Azure Monitor – Log Analytics | ワークスペースのリストアップ、KQLによるログクエリ |
| メトリック | Azure Monitor – Metrics | リソースのメトリッククエリ、メトリック定義のリストアップ |
| ヘルスチェック | Azure Service Health | 特定リソースの可用性ステータス取得 |
| 基本管理 | Azure リソースグループ | リストアップ、作成、管理 |
| ネットワーク | VNet (仮想ネットワーク) | VNetおよび関連リソースの操作 |
| 可視化 | Azure Workbooks | リストアップ、作成、更新、削除 |
Azure MCP Serverの構築
それでは、Azure MCP Server をローカルに導入してみようと思います。
今回は VS Code と GitHub Copilot を使いました。
前提条件
- Node.js(v18.0以降)がインストールされていること。(以下のURLからインストールします。)
docs.npmjs.com
MCP Server が主にネットワーク通信(I/O)を仲介する役割を担うため、その処理に特化した Node.js が最適な基盤となっています。 - npm(v8.0以降)がインストールされていること。(Node.js に内包されています。)
- VS Code が最新のバージョンになっていること
Azure MCP Server インストール
① VS Code の拡張機能から「Azure MCP Server」と検索してインストールします。

ローカルで Azure MCP Server を起動し、Github Copilot for Azureと通信するための土台となります。
② ユーザープロファイル配下のフォルダにmcp.jsonファイルを作成します。

参考:
code.visualstudio.com
【補足】mcp.jsonファイルの役割
このファイルは、Github Copilot for Azure に対して、どの外部ツールやサービス(今回は Azure MCP Server )を連携させて利用可能にするかを定義する設定ファイルです。
つまり、Github Copilot for Azure が mcp.jsonファイルで指定されたサーバーを経由し、自然言語の指示を Azure リソース操作に変換するための「連携設定」を担っています。
③ GitHub Copilot の「ツールの構成」をクリックして、Azure MCP Server が起動できていることを確認します。

Azure MCP Serverを使ってみる
ここからは実際にAzure MCP Serverを使ってみました。
リソースグループの一覧を出力するように指示しましたが、、以下の通りAzureへのサインイン画面が出力されてしまいました。

サインイン後、GitHub Copilot for Azure へログインするように促されました。
はじめて使用する場合はこのポップアップが出力されるようです。

リソースグループの一覧を出力した結果は以下の通りです。(Japan Eastリージョンに属するリソースグループがあまりにも多かったので、省くように指示しました。)

次に、仮想マシンの作成をするための設定値を出力するように指示しました。

結果は以下の通りです。しっかりと設定値を表示してくれました。

作成はせずに設定確認後に実行してくれます。

今回はVMは作成しないように指示しました。

苦戦した点
Azure リソースグループの一覧を取得するようなプロンプトを投げていたのですが、想定と異なるサブスクリプションから情報を拾ってきてしまい焦りました。。
GitHub Copilot for Azure が Azure 環境に対してクエリを実行する際に、どの Azure AD (Microsoft Entra ID) テナントを既定として参照するかを制御する項目があるので、そこを更新して想定通り指示が通るようになりました。
<設定方法>
① VSCode の拡張機能から GitHub Copilot for Azure を検索して、歯車マークをクリックします。

② 「@azure: Arg Tenant」という項目に、情報を取得したいディレクトリID(組織のテナントを識別するためのID)を入力します。

GitHub Copilot for Azure が既定で参照する Azure AD(Microsoft Entra ID)テナントを切り替える設定です。
終わりに
いかがでしたでしょうか。今回は Azure MCP Server のセットアップから、VS Code 上での実際の操作までをご紹介しました。
途中、テナントの参照先設定で少し躓きましたが、設定さえクリアできれば、普段行っているリソース確認や構成案の作成がチャットベースでスムーズに行えることが分かりました。特に「仮想マシンの設定値案を出してから、作成はしない」といった柔軟な指示が通るのは便利ですね。
導入のハードルはそれほど高くないので、VS Code と Node.js 環境がある方は、ぜひ一度お手元の環境でも試してみてください。