Azure CLI MCP

by jdubois
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Integrates with GitHub Copilot in VS Code, allowing you to deploy projects to Azure using natural language commands in the Copilot chat interface

  • Enables management of Azure OpenAI resources, including checking rate limits of deployed models and other configurations

Azure CLI MCP サーバー

これは、 Azure CLIをラップし、動作を改善するための適切なプロンプトを追加して公開するMCP サーバーです。

デモ

Claude Desktop による 2 分間の短いデモ

VS Code を使った 18 分間のデモを完了する

それは何ができるのでしょうか?

Azure CLI に完全アクセスできるため、Azure CLI で実行できるすべての操作を実行できます。以下にいくつかのシナリオを示します。

  • リソースを一覧表示し、構成を確認します。たとえば、Azure OpenAI にデプロイされたモデルのレート制限を取得できます。
  • 設定やセキュリティに関する問題を修正します。例えば、Blob Storage アカウントのセキュリティ保護を依頼できます。
  • リソースの作成。たとえば、Azure Container Apps インスタンスと Azure Container Registry を作成し、マネージド ID を使用してそれらを接続するように要求できます。

使用しても安全ですか?

MCPサーバーはLLMによって駆動されるため、生成されるコマンドを慎重に検証することをお勧めします。Azure上で優れた学習データを持つClaude 3.7やGPT-4oなどの優れたLLMを使用している場合は、私たちの経験では非常に良好な結果が得られています。

「ソフトウェアは現状のまま、いかなる保証もなく提供されます」と記載されている当社のライセンスをよく読んでください。したがって、この MCP サーバーは自己責任で使用してください。

これは安全ですか? また、リモート サーバーでこれを実行する必要がありますか?

短い答え:いいえ

このMCPサーバーはazコマンドを実行しますが、攻撃者によってハッキングされ、他のコマンドを実行する可能性があります。現在の実装は、ほとんどのMCPサーバーと同様に、 stioトランスポートでのみ動作します。つまり、Azure CLIの資格情報を使用して、ユーザーが自分で行うのと同じように、ローカルマシン上で実行されるはずです。

将来的には、このMCPサーバーがhttpトランスポートとAzureトークン認証をサポートし、複数のユーザーがリモートで使用できるようになる可能性も十分にあります。これは第二段階であり、MCP仕様とSDKがより安定した段階で実施される予定です。

どうやってインストールするのですか?

このサーバーは、Docker コンテナ内または Java 実行可能 JAR ファイルとして実行できます。

どちらのオプションでも、 stioトランスポートのみが利用可能です。http httpポートは後日利用可能になります。

Dockerを使用してサーバーをインストールして構成する

Azureサービスプリンシパルを作成し、 AZURE_CREDENTIALS環境変数を設定します。これは、ターミナルで次のコマンドを実行することで実行できます。

az ad sp create-for-rbac --name "azure-cli-mcp" --role contributor --scopes /subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group> --json-auth

これにより、指定された名前とロールを持つ新しいサービス プリンシパルが作成され、資格情報が JSON 形式で出力されます。

次のコマンドでDockerを使ってサーバーを実行できます。認証するには、前のコマンドの出力をAZURE_CREDENTIALSに設定してください。

docker run --rm -p 6273:6273 -e AZURE_CREDENTIALS="{"clientId":"....","clientSecret":"....",...}" -i ghcr.io/jdubois/azure-cli-mcp:latest

VSコードの使用

VS Code からサーバーを使用するには:

  • GitHub Copilotをインストールする
  • コマンド パレットを使用してこの MCP サーバーをインストールします: MCP: Add Server...
    • 構成はstioトランスポートを使用してサーバーに接続します
    • 実行するコマンドはdocker run -i --rm -e AZURE_CREDENTIALS ghcr.io/jdubois/azure-cli-mcp:latest``AZURE_CREDENTIALS 。AZURE_CREDENTIALS 環境変数に、サービスプリンシパル作成時のJSON出力を設定する必要があります。引用符はエスケープしてください。完全かつ安全な例については、以下をご覧ください。
  • チャットウィンドウの下部にある矢印をクリックして、GitHub CopilotをAgentモードで実行するように設定します。
  • チャットウィンドウの上部に、ツールとして構成されたazure-cli-mcpサーバーが表示されます。

ドキュメントに記載されている方法を使用してAZURE_CREDENTIALS環境を保護できます。完全な例を次に示します。

{ "inputs": [ { "type": "promptString", "id": "azure-credentials", "description": "Azure Credentials", "password": true } ], "servers": { "azure-cli": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "AZURE_CREDENTIALS", "ghcr.io/jdubois/azure-cli-mcp:latest" ], "env": { "AZURE_CREDENTIALS": "${input:azure-credentials}" } } } }

Claudeデスクトップの使用

Claude Desktop のサーバーを使用するには、 claude_desktop_config.jsonファイルにサーバーを追加します。AZURE_CREDENTIALS 環境変数には、サービスプリンシパル作成AZURE_CREDENTIALSの JSON 出力を引用符でエスケープして設定する必要があります。

{ "mcpServers": { "azure-cli": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "AZURE_CREDENTIALS", "ghcr.io/jdubois/azure-cli-mcp:latest" ], "env": { "AZURE_CREDENTIALS": "{\"clientId\":\"...\",\"clientSecret\":\"...\",..." } } } }

Smithery.aiを使ったインストール

Smithery.ai を通じて MCP サーバーをインストールできます。

これは上記のDockerコンテナのインストールと似ていますが、Smithery.aiのサーバー上で実行されます。このインストールは最初は最も簡単ですが、以下の点にご注意ください。

  • 以下の Docker インストール セクションで説明するように、 AZURE_CREDENTIALSキーが必要になります。このキーは Smithery.ai に送信されます。
  • Smithery.ai はサードパーティのサービスであり、この MCP サーバーを構築するには Smithery.ai を信頼する必要があります (当社の Docker イメージと同じ Dockerfile を使用しますが、当社では構築していません)。
  • これはまだ初期のプレビュー サービスであるため、今後どのように進化するかは保証できません。

Javaを使用してサーバーをインストールして構成する

この構成では、サーバーをローカルで実行します。Docker よりもセットアップは簡単ですが、マシンに設定された Azure CLI を使用して資格情報を直接使用するため、セキュリティは低くなります。

  • Azure CLI をインストールします。これは、ここの手順に従って実行できます。
  • Azureアカウントの認証を行います。ターミナルでaz login実行することで認証できます。
  • Java 17以降がインストールされていることを確認してください。ターミナルでjava -version実行することで確認できます。

バイナリはGitHub リリース ページで入手できます。GitHub CLI を使用して最新のものをダウンロードする方法は次のとおりです。

  • 最新リリースをダウンロードします: gh release download --repo jdubois/azure-cli-mcp --pattern='azure-cli-mcp.jar'

VSコードの使用

  • GitHub Copilotをインストールする
  • コマンド パレットを使用してこの MCP サーバーをインストールします: MCP: Add Server...
    • 構成はstioトランスポートを使用してサーバーに接続します
    • 実行するコマンドはjava -jar ~/Downloads/azure-cli-mcp.jarです ( azure-cli-mcp.jarファイルをダウンロードした場所を指定する必要があります)
  • チャットウィンドウの下部にある矢印をクリックして、GitHub CopilotをAgentモードで実行するように設定します。
  • チャットウィンドウの上部に、ツールとして構成されたazure-cli-mcpサーバーが表示されます。

Claudeデスクトップの使用

Claude Desktop のサーバーを使用するには、 claude_desktop_config.jsonファイルにサーバーを追加してください。azure azure-cli-mcp.jarファイルをダウンロードした場所を指定する必要があります。

{ "mcpServers": { "azure-cli": { "command": "java", "args": [ "-jar", "~/Downloads/azure-cli-mcp.jar" ] } } }
-
security - not tested
A
license - permissive license
-
quality - not tested

Azure CLI をラップする MCP サーバー。

LLM は Azure CLI コマンドの生成に非常に優れているため、このサーバーを使用すると、LLM はリソースの一覧表示、リソースの更新/作成/削除、エラーの修正 (ログの確認による)、セキュリティ問題の修正などを行うことができます。

  1. Demos
    1. Short 2-minute demo with Claude Desktop
    2. Complete 18-minute demo with VS Code
  2. What can it do?
    1. Is it safe to use?
      1. Is it secured, and should I run this on a remote server?
        1. How do I install it?
          1. Install and configure the server with Docker
          2. Installation with Smithery.ai
          3. Install and configure the server with Java
        ID: 5z4pogsrhe