mcpField
M
mcp-azure

mcp-azure

本地服务
github.com/dockndevai云与基础设施13 天前更新

关于 mcp-azure

mcp-azure 是通过 Azure Resource Manager 清点和操作 Azure 资源的 MCP 服务。其治理设置可限制操作范围和写入权限,并为破坏性操作提供确认与审计选项。

主要功能

  1. 01列出订阅与资源
  2. 02创建资源组并合并标签
  3. 03控制 VM 电源状态
  4. 04通过权限门控删除资源
  5. 05配置允许列表与访问模式
  6. 06试运行与 JSON 审计日志

适用场景

  1. 01查看订阅和资源组清单
  2. 02为资源添加标签或控制 VM
  3. 03将 Agent 限定在获准的订阅和区域
  4. 04破坏性变更前要求确认

MCP 相关

向 MCP 客户端提供 Azure Resource Manager 清点和操作工具。可用工具取决于访问模式;破坏性操作可要求人工交互确认或输入指定确认文本。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dockndevai-mcp-azure": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-azure"
],
"env": {
"AZURE_TENANT_ID": "<AZURE_TENANT_ID>",
"AZURE_CLIENT_ID": "<AZURE_CLIENT_ID>",
"AZURE_CLIENT_SECRET": "<AZURE_CLIENT_SECRET>",
"AZURE_SUBSCRIPTION_ID": "<AZURE_SUBSCRIPTION_ID>",
"AZURE_MODE": "<AZURE_MODE>"
}
}
}
}
启动命令npx -y @dockndevai/mcp-azure
需要配置的环境变量
AZURE_TENANT_IDEntra ID tenant id.
AZURE_CLIENT_IDApp registration (service principal) client id.
AZURE_CLIENT_SECRET密钥Service principal client secret.
AZURE_SUBSCRIPTION_IDDefault subscription id.
AZURE_MODEAccess mode: read-only | read-write | admin.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@dockndevai/mcp-azure0.3.0

工具

5

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

mcp-azure

CI License: MIT npm

适用于 Azure 的 Model Context Protocol 服务(通过 Azure Resource Manager API——Azure Portal 背后的程序化层)。它使支持 MCP 的客户端(Claude Desktop、Claude Code、Cursor、Codex 等)能够盘点和操作 Azure 资源,并通过治理层确保 AI Agent 在安全范围内运行。

功能

  • 盘点 — 列出订阅、位置、资源组和资源;通过 ARM id 获取任意资源。
  • 操作 — 在获准区域中创建资源组、为任意资源合并标签,以及控制 VM 电源状态(启动 / 停止 / 重启 / 解除分配)。
  • 生命周期管理 — 删除资源组和单个资源,并受到防护。
  • 内置治理 — 访问模式、订阅 / 资源组允许列表、受保护的资源组、新建资源组的位置允许列表、删除门控、高影响删除的输入确认、试运行和 JSON 审计日志。

治理与安全模型

关注点标志默认值效果
服务可以执行哪些操作?AZURE_MODEread-onlyread-only → 盘点;read-write → 创建 RG、标记资源、控制 VM 电源;admin → 删除。高于当前模式的工具绝不会注册。
哪些订阅?AZURE_SUBSCRIPTION_ALLOWLIST(全部)拒绝对其他订阅执行操作。
哪些资源组?AZURE_RESOURCE_GROUP_ALLOWLIST(全部)拒绝对列表以外的资源组执行操作。
永久只读的资源组AZURE_PROTECTED_RESOURCE_GROUPS(无)可读取,但绝不允许修改。
获准区域AZURE_LOCATION_ALLOWLIST(任意)只能在此处创建新的资源组。
是否可以删除?AZURE_ALLOW_DELETEfalse删除需要同时启用此选项和 admin 模式。
输入确认AZURE_REQUIRE_CONFIRMATIONtrue删除时要求 confirm 与目标名称一致,而非仅提供布尔值。
预览AZURE_DRY_RUNfalse写入 / 管理工具会验证并记录操作意图,然后返回。
审计跟踪AZURE_AUDIT_LOGtrue每次受保护操作都会向 stderr 写入一行 JSON。
交互式确认(自动)—执行破坏性和高影响操作前,会通过 MCP elicitation 请求人工批准;不支持 elicitation 的客户端会回退到 *_ALLOW_* 门控。

工具

读取(read-only+):list_subscriptions、list_locations、list_resource_groups、list_resources、get_resource

写入(read-write+):create_resource_group、tag_resource、control_vm

管理(admin):delete_resource_group、delete_resource(两者都需要 AZURE_ALLOW_DELETE 和输入确认 confirm)

快速入门 — 添加到你的 Agent

已发布到 npm,包名为 @dockndevai/mcp-azure。通过 npx 使用 Entra ID 服务主体运行。所有客户端请参阅 docs/CLIENTS.md,所有变量请参阅 .env.example。

Claude Code

claude mcp add azure -e AZURE_TENANT_ID="…" -e AZURE_CLIENT_ID="…" -e AZURE_CLIENT_SECRET="…" -e AZURE_SUBSCRIPTION_ID="…" -e AZURE_MODE="read-only" -- npx -y @dockndevai/mcp-azure

Claude Desktop · Cursor · Windsurf

{
  "mcpServers": {
    "azure": {
      "command": "npx",
      "args": ["-y", "@dockndevai/mcp-azure"],
      "env": {
        "AZURE_TENANT_ID": "…",
        "AZURE_CLIENT_ID": "…",
        "AZURE_CLIENT_SECRET": "…",
        "AZURE_SUBSCRIPTION_ID": "…",
        "AZURE_MODE": "read-only"
      }
    }
  }
}

示例提示词

  • “列出我订阅中的所有资源组,以及各自所在的区域”
  • “显示 rg-web 组中的所有资源”
  • “为 app-plan 资源添加 env=prod 和 owner=team-a 标签”(需要 read-write)
  • “停止 rg-ci 中的 build-agent VM”(需要 read-write)

从源代码运行(开发)

npm install
npm run build
node dist/index.js   # with the environment variables set

开发

npm run dev
npm test          # governance policy: modes, scoping, location allowlist, delete + confirmation
npm run typecheck

发布

提供用于官方 MCP 注册表的 server.json,以及用于 npm 所有权验证的 mcpName。请参阅 PUBLISHING.md。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。