【Microsoft×生成AI連載】GitHub CopilotとAzure MCP Serverを用いて自然言語のみでAzure上のリソースを操作を検証してみた

皆様、はじめまして。

今回は【Microsoft × 生成AI 連載】の一環として、GitHub Copilot と Azure MCP Server を活用した環境構築手順と、Azure リソースに対してどのような操作が可能かを検証しました。

先に結論を申し上げると、Azure MCP Serverはリソースの参照・調査・軽微な管理操作を中心に提供される仕組みであり、基本的には安全性を重視した動作となります。

一方で、リソースの新規作成・変更・削除といった破壊的操作は、エージェントによって実行が抑制されるケースが多く、代替として CLI コマンドの利用を提案される挙動が確認できました。

初投稿のため至らない点もあるかもしれませんが、本記事が皆様の検証や業務の一助となれば幸いです。

※ 本記事はあくまで検証結果の共有であり、推奨手順を示すものではありません。

これまでの連載

これまでの連載記事一覧はこちらの記事にまとめておりますので、過去の連載を確認されたい方はこちらの記載をご参照ください。

blog.jbs.co.jp

本記事の目的とゴール

今回は、VS Code 上で動作する GitHub Copilot(エージェントモード) と Azure MCP Server を組み合わせ、自然言語だけで Azure リソースに対してどのような操作が可能か/不可能か を検証します。

応用的なシナリオには踏み込まず、まずは 環境構築と基本操作(作成・参照・編集・削除) を中心に、基礎的な動作を確認することを目的としています。

検証の過程で躓いた点や注意が必要だと感じた点についても、本記事の備忘録としてまとめています。

皆さまが GitHub Copilot や Azure MCP Server を活用する際の参考になれば幸いです。

GitHub CopilotとAzure MCP Serverの簡単な説明

まず、本記事でメインとなるGitHub CopilotとAzure MCP Serverについて簡潔に紹介したいと思います。

GitHub Copilotとは

GitHub Copilotは生成AIを活用したコーディングアシスタントで、IDEやブラウザ上でコードの自動補完、関数の提案、ドキュメント生成などを素早く行えます。

チャット形式による質問応答や、エージェントモードにも対応しており、自然言語をインプットとしてアプリケーションの開発をサポートし開発者の生産性を向上させることができるツールです。

本記事ではVisual Studio Code内で利用しますが、Visual StudioやJetBrains IDEなどその他IDEでも利用可能です。

docs.github.com

Azure MCP Serverとは

Azure MCP Server は、Model Context Protocol (MCP) に準拠したバックエンドで、AI エージェントやカスタム アプリケーションが自然言語経由で Microsoft Azure の各種リソースを操作できるようにします。

認証にはAzure Entra ID を利用し、Azure CLI や SDK 経由で安全かつ構造化された手段でクラウド操作を可能とします。

これにより、開発者はツール連携を簡素化しつつインフラ操作を自動化できます。

※ 2025/10/28に「Azure MCP server 1.0.0」として安定板がリリースされたばかりとなります。

learn.microsoft.com

codezine.jp

事前準備

Azureの環境構築

今回の検証では個人用のMicrosoftアカウントを用意し、Azure上の個人テナント内に検証用サブスクリプションを1個用意しています。

サブスクリプション配下にはリソースグループを一つ作成しており、中身の構成は以下のようになっています。

リソース内の細かな設定や登録内容は以下の通りです。

  • シークレット情報の取得と変更を検証するため、上記添付画像の一つ目のApp Serviceリソースへ、テスト用の環境変数を二つ登録しています。
  • Azure OpenAIにはMicrosoft Foundory上にgpt-5-miniモデルをデプロイしています。

Azure CLIのインストール

Azureの操作(後続処理のログインやサブスクリプション指定)にはAzure CLIを利用する必要があります。

Microsoft Learnに導入手順が記載されているため、以下を参考にインストールを行います。

learn.microsoft.com

Visual Studio Codeの設定

拡張機能のインストール

まずは、Visual Studio Codeに下記の拡張機能をインストールします。

  • GitHub Copilot Chat
  • GitHub Copilot for Azure
  • Azure MCP Server (GitHub Copilot for Azure 経由で入っている場合あり)
GitHub Copilot for Azureの確認

拡張機能を導入した時点で自動的にオンになっている場合もありますが、念のため右下にあるCopilotチャットのツールアイコンをクリックし、Github Copilot for Azureにチェックがついていることを確認してください。

Azure MCP Serverの確認

Azure MCP Serverが起動されている事を確認します。

ctrl + shift + pでコマンドパレットを開き、MCP: List Serversを実行します。

Azure MCP (Azure MCP Server Provider) の表記が「実行中」となっていることを確認してください。

Azure MCP ServerGitHub Copilot for Azure拡張機能をインストールした時点で自動登録されます。

Azureへのサインイン

ターミナルで以下のコマンドを実行し、対象サブスクリプションとアカウントになっているか確認します。

az login --tenant [用意したテナントID]
az account set --[サブスクリプションID]
az account show

Azure MCP ServerAzure CLIなど既存の開発者資格情報を自動的に検出し、それを認証に利用します。

GitHub Copilotのツール利用確認

Azure MCP ServerGitHub Copilot for AzureGitHub Copilot エージェントが利用できる状況になっているか確認を行います。

  1. Visual Studio CodeでCopilot Chatを開く。
  2. チャット入力欄付近のモード切替からAgentを選択。
  3. 画面右下のツール一覧(レンチアイコンなど)を開き、以下のような項目が見えることを確認。
    • Azure MCP
    • GitHub Copilot for Azure
  4. チェックがされていることを確認(されていない場合はチェックしてください)

もし、初回利用時にCopilotからAzureへのサインインや権限付与のダイアログが出たら、ブラウザで承認します。

環境構築時のトラブル

「テナント所有者が@azureへのアクセスを無効にしました」と表示される

現在サインインしているMicrosoft Entra IDテナントで、管理者(テナント所有者)がGitHub CopilotのAzure プラグイン(@azure MCP Server)へのアクセスを無効化しているため発生しています。

アクセス権限の制約が少ない別テナントへ切り替えるか、あるいは現在ご利用中のテナントの管理者(テナント所有者)へお問い合わせください。

Azure MCP Serverが自動で登録されない場合

GtiHub Copilot for Azure導入時にAzure MCP Serverが自動で登録されていない場合は手動でセットアップが可能です。

.vscode/mcp.jsonを作成して下記記載のコードを張り付けてください。

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

保存後、Visual Studio Codeを再起動にctrl + shift + pでコマンドパレットを開き、MCP: List Serversを実行します。Azure MCP Serverが実行中となっていれば成功です。

検証

検証目的

  • GitHub Copilot(エージェントモード)を通じて、自然言語で Azure 上のリソースに対して操作命令を実行できるかを確認する。
  • Azure MCP Server の機能範囲を明確化する。

実現できたことの詳細

リソースの参照

まずは既存リソースの参照を試しました。

デプロイ済みリソースが正しく取得されるかを確認するため、以下のようにプロンプトを送信しました。

実行結果では、名称・リージョン・SKU などの属性が正しく取得されました。

  • リソース名に意図的な文字列を混在させても適切に認識された
  • リージョンをバラバラに配置しても正確に参照できた

参照に関しては期待どおりの結果であり、Azure MCP Server の主要機能の一つであることが確認できました。

実現できなかったことの詳細

シークレット情報の参照

下記のようにプロンプトを送信し、App Service内に存在する環境変数の情報を確認する指示を行いました。

アプリ設定接続文字列にそれぞれ同名のmcp_server_testを作成していましたが、情報が取得できないとなりました。

情報の参照は問題なくできていたことから、シークレット情報の取得は対応していないのか、Azureリソースに対する権限不足による結果なのか追加の検証が必要です。

リソース外の情報の参照

現在、Azure OpenAIリソースから連携されているMicrosoft Foundry上にデプロイされているモデルを確認できるか、以下のようにプロンプトを送信しました。

結果としては、直接取得できないとの出力となりました。

Microsoft Foundryは正確にはAzureリソースではないため、今回のAzure MCP Serverの機能では範囲外であることが考えられます。

リソースの新規作成

下記のようにプロンプトを送信し、Azure Functionsリソースの作成を指示を行いました。

しかし、結果はリソース作成ではなく IaC(Bicep / Terraform)による作成を推奨する提案となりました。

Microsoft Learn にも以下の記載があります。

Azure MCP Server でアクセスするリソースは、サブスクリプション内に既に存在している必要がある。 https://learn.microsoft.com/ja-jp/azure/developer/azure-mcp-server/get-started/languages/dotnet?tabs=azure-cli

この記述に照らすと、新規リソース作成は Azure MCP Server の提供範囲外であると考えられます。

リソース設定の変更

次に App Service(Free F1)を Basic B1 にスケールアップする命令を送信しました。

しかし、ここでも実行は行われず、Azure CLI による代替手順を提案する応答となりました。

理由は公式ドキュメントに明記されています。

Azure App Service 向け MCP ツールは「データベース接続管理」のみを対象とし、インスタンス管理機能(プラン変更等)は含まれない。 https://learn.microsoft.com/ja-jp/azure/developer/azure-mcp-server/tools/azure-app-service

このため、プラン変更のようなリソース管理操作は MCP Server のサポート対象外であることが確認できました。

リソースの削除

リソース削除についても検証しました。 Azure Functionsリソースに対し削除命令を送信したところ、まず対象の確認が行われました。

確認プロンプトに応答すると次の段階へ進みましたが、最終的には削除操作は実行されず、CLI で削除する代替手段が案内される結果となりました。

削除は破壊的操作であるため、現状の MCP Server の安全設計上、操作対象外となっている可能性があります。

参考情報

まとめ

Azure MCP Serverの挙動を今回の検証を通して確認した結果、同サービスは「安全性を最優先に設計されている」ことがまず明確になりました。

LLMを介した自然言語操作では、意図しないリソースの作成・変更・削除が環境全体に重大な影響を与える可能性があります。

そのためAzure MCP Serverでは、破壊的な操作が制限されていると考えられます。

その設計思想を反映するように、現時点でAzure MCP Serverが提供する機能の中心は既存リソースの参照です。

リソース一覧や属性の取得といった読み取り系の操作は問題なく実行できる一方で、リソース作成やプラン変更、削除といった変更系の操作はほとんどサポートされていませんでした。

さらに、各 Azure サービスごとに提供されている MCP ツールの機能範囲もまだ限定的です。

たとえば App Service ではデータベース接続の管理のみがサポートされており、スケール操作や構成変更などの管理機能は対象外となっています。

今後アップデートやツール追加によって操作範囲が拡張される可能性はありますが、現段階では「参照に特化した補助的インターフェース」として活用していくのが適切だといえるでしょう。

おまけ(Copilot Chatによる本記事の要約)

本記事ここまでの執筆内容をCopilot Chatに転記し、記事内容の要約をしてもらいました。

本記事では、GitHub Copilot(エージェントモード)とAzure MCP Serverを組み合わせ、自然言語でAzureリソースを操作できるかを検証しました。目的は、VS Code上で環境構築と基本操作(作成・参照・編集・削除)がどこまで可能かを確認することです。GitHub Copilotは生成AIによるコーディング支援ツールで、自然言語入力からコード提案や補完が可能。一方、Azure MCP ServerはModel Context Protocol準拠のバックエンドで、AIエージェントがAzureリソースを安全に操作できる仕組みを提供します。 検証の結果、既存リソースの参照は正常に動作し、名称やリージョンなどの情報を取得できました。しかし、リソースの新規作成、スケール変更、削除といった破壊的操作はほぼ実行されず、代替手段としてAzure CLIやIaCの利用を提案される挙動が確認されました。これはAzure MCP Serverが既存リソースへの参照を前提とし、安全性を重視した設計であるためと考えられます。また、App Serviceなど一部サービスではデータベース接続管理のみがサポートされ、プラン変更や構成変更は対象外でした。 総じて、Azure MCP Serverは「参照・調査・軽度の管理」に特化したツールであり、Azure PortalやCLIを使わず自然言語で情報を取得できる点は開発者や運用担当者にとって有用です。ただし、現状では機能が限定的で、インフラ構築や大規模変更には不向きです。今後のアップデートで操作範囲が拡張される可能性はありますが、現段階では補助的インターフェースとして活用するのが適切といえるでしょう。

執筆担当者プロフィール
真栄城 魁人

真栄城 魁人(日本ビジネスシステムズ株式会社)

Azureを基盤とするSaaS運用、Webアプリケーション開発、技術研究などを担当。

担当記事一覧