プログラミング・スキルアップ

Azure MCP Server 2.0入門|AIからAzure操作を自動化

読了時間: 約12分

276のツール。57のAzureサービス。この数字が、2026年4月にStableリリースされたAzure MCP Server 2.0のカバー範囲だ。

MCPは「AIエージェントが外部サービスと会話するための共通プロトコル」で、Claude CodeやGitHub Copilotといったツールが裏側で使っている。Azure MCP Serverを接続すると、自然言語のプロンプトだけでAzureリソースの作成・監視・デプロイが回る。KQL(Kusto Query Language)を覚えなくてもLog Analyticsを叩けるし、CLIコマンドを暗記しなくてもApp Serviceをデプロイできる。

筆者はClaude CodeのMCP環境をすでに運用していたが、Azure MCP Serverを追加してからインフラ操作の手数が目に見えて減った。セットアップから実践的なユースケースまで、手を動かした結果を残す。

Azure MCP Serverとは何か

MicrosoftがオープンソースでリリースしたAzure専用のMCPサーバーだ。AIエージェントやコーディングツールが、MCPを介してAzureのクラウドリソースを直接操作する。

噛み砕くと、こういう構図になる。

  • AIクライアント(Claude Code、GitHub Copilot、VS Code等)が「App Serviceのログを見たい」と要求
  • Azure MCP Serverがその要求をAzure APIコールに変換し、結果を返す
  • 開発者はAzure Portalを開かずにターミナルから全てを済ませる

MCPを「AIが使うUSBハブ」と考えるとわかりやすい。USBポートに外付けHDDやプリンタをつなぐように、MCPポートにAzure、GitHub、データベースをつなぐ。Azure MCP Serverはそのうちの「Azure用アダプタ」にあたる。

AWS MCPサーバーとの違い

AWSもawslabs/mcpでMCPサーバー群を公開しているが、サービスごとに個別のサーバーが分かれている(Lambda用、Documentation用、Cost Explorer用など)。Azure MCP Serverは1つのサーバーに57サービス・276ツールを集約している点が異なる。管理が楽な反面、不要なツールまでロードされるトレードオフがある。

2.0で何が変わったか

1.0からの最大の変更はセルフホスト型リモートMCPサーバーへの対応だ。1.0はローカルマシン上でしか動かせなかったが、2.0ではチームの共有サーバーやAzure上のコンテナとしてデプロイできる。

項目 1.0 2.0
デプロイ方式 ローカルのみ ローカル + リモート(セルフホスト)
認証 Azure CLI / 環境変数 Managed Identity / OBO (OAuth 2.1) / Azure CLI
HTTP転送 stdio stdio + Streamable HTTP
ガバナンス 個人設定 中央管理・ポリシー適用可
コンテナイメージ 標準サイズ 縮小(軽量化)
ツール数 約200+ 276(57サービス)

エンタープライズ環境で一番刺さるのは「中央管理」だ。チーム全員が同じリモートMCPサーバーを参照する構成にすれば、誰がどのAzureリソースを触れるかを1箇所で制御できる。クレデンシャルが個人のローカルマシンに散らばらない。情シス部門がセキュリティ監査で頭を抱える事態を避けられる。

個人開発でも恩恵はある。コンテナイメージが軽量化されて起動が速くなった。Streamable HTTPトランスポートが加わり、ネットワーク越しの応答が安定している。正直なところ、1.0ではstdioのみで不安定さを感じていたので、この改善は地味だが効いた。

対応サービスとツール一覧

全276ツールのリストはMicrosoft Learnのリファレンスにある。以下は、Webアプリ開発者がまず触ることになる8カテゴリに絞った。

カテゴリ 主なサービス できること(例)
コンピュート App Service, Functions, Container Apps デプロイ、スケール設定、ログ取得
データベース Cosmos DB, SQL Database, PostgreSQL クエリ実行、スキーマ確認、バックアップ管理
ストレージ Blob Storage, Table Storage ファイルのアップロード・一覧・削除
監視・分析 Azure Monitor, Log Analytics KQLなしでログ検索、メトリクス取得、アラート管理
AI/ML Azure AI Foundry, Cognitive Services モデルデプロイ、エンドポイント管理
コンテナ AKS, Container Registry クラスタ管理、イメージ一覧、ノード状態確認
ネットワーク Virtual Network, DNS, Front Door NSG設定、DNS管理、トラフィック制御
DevOps Azure DevOps(別サーバー) パイプライン管理、Work Item操作、PR管理

「KQLなしでログ検索」はセールストークに聞こえるかもしれない。だが試すと戻れなくなる。Azure Monitorのツールに「過去1時間の500エラーを表示して」と投げるだけで、裏側でKQLクエリが生成されて結果が返る。PortalでLog Analyticsを開き、KQLを書き、where句を調整していた一連の動作が、プロンプト1行に圧縮される。

Azure DevOpsは別サーバー

Azure DevOps(パイプライン、Work Item、リポジトリ等)はAzure MCP Serverの範囲外だ。別途azure-devops-mcpをセットアップする必要がある。名前が紛らわしいので注意。

セットアップ3パターン

接続方法は3つ。環境と用途に応じて選ぶ。

パターンA: Claude Code / Claude Desktop(最速)

インストール不要。npxで直接起動する。

bash
# Claude Codeに追加(1行で完了)
claude mcp add azure-mcp -- npx -y @azure/mcp@latest

# Azure CLIでログイン済みであること
az login

これだけだ。Claude Codeを再起動すると、プロンプトからAzureリソースを操作できるようになる。初回は依存パッケージのダウンロードで30秒ほどかかるが、2回目以降はキャッシュが効いて一瞬で立ち上がる。

Claude Desktopの場合は設定ファイルに直接書く。

JSON
{
  "mcpServers": {
    "azure-mcp": {
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest"]
    }
  }
}

パターンB: Docker(チーム共有向け)

チームで共有するなら、リモートサーバーとしてDockerコンテナで立ち上げる。クレデンシャルは.envにまとめてコンテナに渡す。

bash
# .envファイルを作成
cat > .env << EOF
AZURE_TENANT_ID=your-tenant-id
AZURE_CLIENT_ID=your-client-id
AZURE_CLIENT_SECRET=your-client-secret
EOF

# Dockerでリモート起動
docker run -i --rm \
  --env-file .env \
  mcr.microsoft.com/azure-sdk/azure-mcp:latest

Claude Desktopから接続する場合の設定は以下。

JSON
{
  "mcpServers": {
    "azure-mcp": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "--env-file", "/path/to/.env",
        "mcr.microsoft.com/azure-sdk/azure-mcp:latest"
      ]
    }
  }
}

パターンC: VS Code拡張機能

GitHub Copilotと組み合わせるならVS Code拡張が手軽だ。

bash
# VS Code Marketplaceからインストール
code --install-extension ms-azuretools.vscode-azure-mcp-server

インストール後、Copilot Chatのエージェントモードで@azureメンションを使うと、Azureリソースへの問い合わせが走る。「@azure このリソースグループのApp Service一覧を出して」と打てば一覧が返る。

以降の実践例はパターンA(Claude Code)で進める。

実践: AIからAzureリソースを操作する

朝イチのAzure確認で最初に打つのは、サブスクリプション全体の俯瞰だ。

リソースグループの一覧取得

プロンプト
サブスクリプション内のリソースグループを一覧表示して、
各グループのリソース数も教えて

Azure Portalでリソースグループを開き、各グループをクリックしてリソース数を数える作業が、プロンプト1行で済む。返ってくるのは整形されたテーブルで、リソースグループ名・リージョン・リソース数が並ぶ。

Log Analyticsでエラー調査

プロンプト
ワークスペース「prod-logs」で過去24時間の500エラーを
時間帯別に集計して、最も多い時間帯のログ詳細を5件見せて

裏側ではKQLクエリが2本生成されて実行される。集計クエリとフィルタクエリを手書きすると10分はかかる作業が、自然言語で30秒。もちろんKQLを直接書ける人にはオーバーキルだが、インフラエンジニアでないアプリ開発者がログ調査する場面では劇的に敷居が下がる。

App Serviceのデプロイ状態確認

プロンプト
App Service「api-prod」の最新デプロイのステータスと、
直近のHTTPエラー率を確認して

デプロイが失敗していれば原因のログも一緒に返る。Portalで「デプロイセンター → ログ → 診断設定」と画面を3回遷移していた動線が消える。先週、久しぶりにPortalで診断設定を開いたら、画面遷移が3回もあることに驚いた。MCPに慣れるとそうなる。

セキュリティと認証の設計

Owner権限を渡したMCPサーバーが乗っ取られると、Azureリソースを全削除される。冗談ではなく、実際にMCPの設定ファイルにクレデンシャルを直書きしてGitHubにpushした事故例がある。2.0では認証パターンが3種類あり、用途で選ぶ。

Azure CLI認証(個人開発向け)

az login済みの認証情報をそのまま使う。最もシンプルだが、操作権限が開発者個人のAzureアカウントに紐づく。ローカル開発専用。

Managed Identity(Azure上のコンテナ向け)

Azure Container AppsやAKS上にMCPサーバーをデプロイする場合はこれ。シークレットの管理が不要で、Azureのインフラ側でアクセス制御を完結させられる。Foundry Localとの組み合わせで、推論もインフラ操作もAzure内で閉じる構成が取れる。

OBO(On-Behalf-Of)フロー(エンタープライズ向け)

OpenID Connect委任を使い、サインインユーザーのコンテキストでAzure APIを呼ぶ。チームメンバーごとに異なる権限でMCPサーバーを利用させたい場合に有効。RBACと組み合わせれば「読み取り専用チーム」「デプロイ権限ありチーム」の棲み分けも1つのMCPサーバーで実現する。

やってはいけないこと

サービスプリンシパルのクレデンシャル(CLIENT_SECRET)をGitリポジトリにコミットしない。.envファイルは必ず.gitignoreに入れる。当たり前のことだが、MCPの設定ファイルにクレデンシャルを直書きしてしまう事故が実際に起きている。環境変数またはManaged Identityで渡すのが鉄則だ。

よくある質問

Q. 無料で使える?

Azure MCP Server自体は無料・オープンソース(MITライセンス)。ただし操作対象のAzureリソースには通常のAzure課金が発生する。

Q. AWS MCPサーバーとの併用は?

問題なく共存する。MCPクライアント(Claude Code等)は複数のMCPサーバーを同時に接続できるので、Azure用とAWS用を両方登録して使い分ければいい。マルチクラウド環境なら両方入れておくのが自然だ。

Q. 特定のツールだけ有効にできる?

できる。環境変数AZURE_MCP_TOOLSでツール名をカンマ区切りで指定すると、それ以外のツールは無効化される。本番環境では必要最小限のツールだけ有効にするのがセキュリティ上の推奨構成だ。

Q. オフラインで動く?

動かない。Azure MCP Serverはリクエストのたびに Azure REST APIを叩くので、インターネット接続が必須。ローカルLLMで推論を回しつつAzure操作だけクラウドに飛ばす構成は取れるが、完全オフラインは不可能だ。

Q. 破壊的な操作(リソース削除等)の安全策は?

MCPサーバー側に操作の制限機能はない。安全策はAzure側のRBAC(ロールベースアクセス制御)で担保する。サービスプリンシパルにはReader + 必要最小限の書き込み権限だけ付与し、Owner権限は絶対に渡さない。Claude Codeは実行前に確認プロンプトを出すが、それに頼るのは危険だ。

まとめ

Azure MCP Server 2.0は「AIエージェントにAzureの鍵を渡す」仕組みだ。276ツール・57サービスのカバー範囲は、2026年4月時点でクラウドプロバイダのMCPサーバーとしては最も広い。

自分がこのツールを入れてから変わったのは、Azure Portalを開く頻度だ。ログ調査、デプロイ確認、リソース一覧 -- これらがClaude Codeのプロンプト1行で片づくようになり、Portalはダッシュボードの俯瞰確認くらいにしか使わなくなった。セットアップはclaude mcp add azure-mcp -- npx -y @azure/mcp@latestの1行で終わる。Azureを日常的に触っている開発者なら、入れない理由がない。

ただし認証設計を雑にするとセキュリティリスクに直結する。個人開発ならaz loginで十分だが、チーム利用ならManaged IdentityかOBOフローで権限を絞ること。「便利だから全権限を渡す」は最悪の選択だ。RBACによる最小権限の原則を守った上で使えば、Azure MCP Serverはインフラ操作のスピードを確実に上げてくれる。