用途
mcp-azure 是一个基于 Model Context Protocol(MCP)的服务器,通过 Azure Resource Manager API(Azure 门户背后的编程层)连接 Azure。它使具备 MCP 能力的客户端(例如 Claude Desktop、Claude Code、Cursor、Codex 等)能够盘点并操作 Azure 资源,同时通过内置治理层确保 AI 智能体在安全边界内运行。
主要能力
资源清单(Inventory)
- 列出订阅、位置、资源组和资源
- 通过 ARM ID 获取任意资源
操作(Operations)
- 在已批准的区域中创建资源组
- 将标签合并到任意资源
- 控制虚拟机电源状态(启动 / 停止 / 重启 / 解除分配)
生命周期(Lifecycle)
- 删除资源组和单个资源,并带有保护措施
内置治理(Governance built in)
- 访问模式
- 订阅 / 资源组允许列表
- 受保护资源组
- 新资源组的位置允许列表
- 删除门控
- 高影响删除的类型化确认
- 试运行(dry-run)
- JSON 审计日志
治理与安全模型
工具按权限级别划分:
- 读取(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以及类型化确认)
使用方式
该工具以 npm 包 @dockndevai/mcp-azure 发布,通过 npx 运行,并使用 Entra ID 服务主体。可添加到 Claude Desktop、Cursor、Windsurf 等客户端。具体客户端配置参见 docs/CLIENTS.md,所有环境变量参见 .env.example。
示例提示词
- “列出我订阅中的所有资源组以及每个资源组所在的区域”
- “显示 rg-web 组中的每个资源”
- “为 app-plan 资源打上 env=prod 和 owner=team-a 标签”(需要 read-write)
- “停止 rg-ci 中的 build-agent 虚拟机”(需要 read-write)
从源码运行(开发)
仓库提供用于官方 MCP 注册表的 server.json 以及用于 npm 所有权验证的 mcpName。详见 PUBLISHING.md。
适用场景
- 需要让 AI 智能体安全地盘点 Azure 资源的场景
- 需要为资源批量打标签或管理虚拟机电源状态的自动化任务
- 需要在受控条件下执行资源删除等高风险操作
- 需要审计 AI 智能体对 Azure 资源操作的合规场景
限制
- 需要 Azure 订阅和 Entra ID 服务主体凭据
- 删除操作需要显式启用
AZURE_ALLOW_DELETE并进行类型化确认 - 新资源组的创建受位置允许列表限制
- 具体支持的区域、订阅类型等细节暂未提供