Azure CLI MCP

by jdubois
MIT License
61
  • Linux
  • Apple

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 存储帐户。
  • 创建资源。例如,您可以要求它创建一个 Azure 容器应用实例和一个 Azure 容器注册表,并使用托管标识将它们连接起来。

使用安全吗?

由于 MCP 服务器由 LLM 驱动,我们建议您谨慎操作并验证其生成的命令。如果您使用的是像 Claude 3.7 或 GPT-4o 这样的优秀 LLM,它们在 Azure 上拥有出色的训练数据,我们的体验非常好。

请阅读我们的许可证,其中规定“该软件按原样提供,不提供任何形式的担保”,因此您自行承担使用此 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 Code

要从 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环境变量设置为服务主体创建时的 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 Desktop

要使用 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 的服务器上运行。虽然此安装最初最简单,但请注意:

  • 您将需要一个AZURE_CREDENTIALS密钥,如下面 Docker 安装部分所述,该密钥将被发送到 Smithery.ai。
  • Smithery.ai 是第三方服务,您需要信任他们为您构建此 MCP 服务器(它使用与我们的 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 Code
  • 安装 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 Desktop

要使用 Claude Desktop 中的服务器,请将其添加到claude_desktop_config.json文件中。请注意,您需要指向下载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. 演示
    1. Claude Desktop 的 2 分钟简短演示
    2. 使用 VS Code 完成 18 分钟演示
  2. 它能做什么?
    1. 使用安全吗?
      1. 它安全吗?我应该在远程服务器上运行它吗?
        1. 我该如何安装它?
          1. 使用 Docker 安装并配置服务器
          2. 使用 Smithery.ai 安装
          3. 使用 Java 安装和配置服务器

        Related MCP Servers

        • A
          security
          A
          license
          A
          quality
          Integrates Cline with Azure DevOps services, enabling access to work items, repositories, and pull requests through configurable MCP tools.
          Last updated -
          15
          11
          TypeScript
          MIT License
        • A
          security
          A
          license
          A
          quality
          This server provides a convenient API for interacting with Azure DevOps services, enabling AI assistants and other tools to manage work items, code repositories, boards, sprints, and more. Built with the Model Context Protocol, it provides a standardized interface for communicating with Azure DevOps
          Last updated -
          96
          10
          TypeScript
          MIT License
        • -
          security
          F
          license
          -
          quality
          Provides tools for listing and querying Azure resources directly from any MCP client, allowing you to efficiently browse your Azure infrastructure and analyze costs without leaving your workflow.
          Last updated -
          Python
          • Apple
          • Linux
        • A
          security
          A
          license
          A
          quality
          A server that enables LLMs (like Claude and VSCode Copilot) to interact with Azure Cosmos DB data through natural language queries, acting as a translator between AI assistants and your database.
          Last updated -
          3
          11
          1
          JavaScript
          MIT License
          • Apple

        View all related MCP servers

        ID: 5z4pogsrhe