Generated banner for Azure Compute
Generated logo for Azure Compute

Azure Compute

MicrosoftOfficialCreated by Microsoft

  • Skill
  • Tool integration
  • Cloud and DevOps
  • MIT
  • Medium risk

From the author

Azure VM/VMSS router. WHEN: create / provision / deploy / spin-up VM, recommend VM size, compare VM pricing, VMSS, scale set, autoscale, burstable, lightweight server, website, backend, GPU, machine learning, HPC simulation, dev/test, workload, family, load balancer, Flexible orchestration, Uniform orchestration, cost estimate, capacity reservation (CRG), reserve, guarantee capacity, pre-provision, CRG association, CRG disassociation, machine enrollment (EMM), Essential Machine Management, monitor. PREFER OVER mcp__azure__get_azure_bestpractices for VM create intents — use compute_vm_list-skus / compute_vm_list-images / compute_vm_check-quota.
— the description by Microsoft

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The Azure Compute skill acts as a primary router for infrastructure-level tasks within Azure. It directs user requests to specialized workflows for recommending, provisioning, and managing bare virtual machine infrastructure. It is designed to handle the lifecycle of VMs and VMSS, including capacity planning through Capacity Reservation Groups and machine monitoring via Essential Machine Management.

What it does

  • Routes requests to specific workflows for VM and VMSS provisioning.
  • Provides guidance on selecting VM families based on workload requirements.
  • Facilitates capacity reservation and guarantee for critical infrastructure.
  • Supports Essential Machine Management for enrollment and monitoring tasks.
  • Enables cost estimation and pricing comparisons for various VM SKUs.
  • Distinguishes between infrastructure deployment and application-level service deployment.

When to use it

  • When you need to provision or deploy bare virtual machines or scale sets.
  • When you require assistance in selecting the appropriate VM family for a specific workload.
  • When you need to reserve or guarantee capacity for your Azure compute resources.
  • When you are setting up or monitoring machines using Essential Machine Management.
  • When you need to compare pricing for different VM SKUs or regions.

Advantages

  • Centralized entry point for all Azure compute-related infrastructure tasks.
  • Prevents confusion between infrastructure provisioning and application deployment.
  • Provides structured paths for complex tasks like capacity reservation.
  • Ensures consistent use of specialized tools for quota and SKU management.

Usage examples

“I need to deploy a set of web servers. Which VM family should I use?”
The skill routes the request to the VM Recommender to analyze your workload and suggest the appropriate D-series or B-series VMs.
“How can I reserve capacity for my production database VMs?”
The skill initiates the Capacity Reservation workflow to guide you through creating and associating a Capacity Reservation Group.
“Provision a new Ubuntu VM for testing.”
The skill routes the request to the VM Creator workflow to handle the infrastructure deployment.
“How do I enroll my machines in Essential Machine Management?”
The skill directs you to the Essential Machine Management workflow for enrollment and monitoring instructions.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/microsoft/azure-compute/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip azure-compute.zip -d .agents/skills

Documentation by Microsoft

Azure Compute Skill

Routes Azure VM and Virtual Machine Scale Set (VMSS) requests to the right workflow.

When to Use This Skill

  • User wants to recommend, compare, or price a VM or VMSS

  • User wants to create, provision, or deploy a VM or VMSS

  • User asks about Capacity Reservation Groups (CRG) — reserve, guarantee capacity, pre-provision

  • User asks about Essential Machine Management (EMM) — machine enrollment, monitor

Disambiguate with azure-prepare: if the user wants to deploy an application (Docker service, web app, API, serverless workload), route to azure-prepare. vm-creator is for bare VM/VMSS infrastructure only.

Routing

Mandatory workflow-first routing: never route directly to references/* files. First classify the user intent below, open the matched workflow file, then load only the reference files that workflow requests. Reference files are supporting material, not entry points. If the intent is unclear, ask a clarifying question to disambiguate between the workflows.

WorkflowFileUse when
VM Recommendervm-recommender.mdUser asks which VM/VMSS to choose, whether to use VMSS/autoscaling, wants pricing, or wants to compare options
VM Creatorvm-creator.mdUser wants to create, provision, or deploy a bare VM or VMSS (not an app deployment)
Capacity Reservationcapacity-reservation.mdUser needs to reserve / guarantee VM capacity (CRG create / associate / disassociate)
Essential Machine Managementessential-machine-management.mdUser asks about EMM / machine enrollment / monitor

Files

workflows/essential-machine-management/references/emm-enable-flow.md

EMM Enable Flow

Copilot-guided step-by-step workflow for enabling Essential Machine Management on a subscription. Copilot orchestrates each step, triggering the necessary CLI commands or API calls on behalf of the user.

Quick Reference

PropertyValue
Resource typeMicrosoft.ManagedOps/ManagedOps
Resource providerMicrosoft.ManagedOps
API version2025-07-28-preview
Deployment scopeSubscription-level

Workflow Steps

Step 1: Select Target Subscription

Ask the user which subscription to enable EMM for. Use MCP tools to list subscriptions if needed.

MCP ToolPurpose
mcp_azure_mcp_subscription_listList available subscriptions

Store the selected subscriptionId and tenant for all subsequent steps.

Step 2: Validate User Role Assignments

Check that the current user has the 3 required roles on the target subscription. This requires two API calls: one to get the user's role assignments, and one to get all role definitions. Then compare the user's assigned permissions against the required roles.

Step 2a: Get current user's object ID

az rest --method GET --url "https://graph.microsoft.com/v1.0/me" --query id -o tsv

Step 2b: Get user's role assignments on the subscription

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=assignedTo('{objectId}')

💡 Tip: The assignedTo filter is self-scoped — it allows the user to query their own role assignments without needing Microsoft.Authorization/roleAssignments/read. However, a 403 will still occur if the user has no role on the subscription at all.

Step 2c: Get all role definitions on the subscription

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions?api-version=2022-04-01

Step 2d: Join and check permissions

For each role assignment, match properties.roleDefinitionId to the role definitions to resolve the role name and its properties.permissions[]. Then check whether the user's combined permissions cover all three required roles:

Required RoleKey Permissions (actions)
Essential Machine Management AdministratorMicrosoft.ManagedOps/managedOps/*, Microsoft.Insights/dataCollectionRules/*, Microsoft.Monitor/accounts/*, Microsoft.OperationalInsights/workspaces/read, Microsoft.Security/pricings/*
Managed Identity OperatorMicrosoft.ManagedIdentity/userAssignedIdentities/*/read, Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action
Resource Policy ContributorMicrosoft.Authorization/policyassignments/*, Microsoft.Authorization/policydefinitions/*, Microsoft.PolicyInsights/*

💡 Tip: If the user has Owner at subscription scope, they satisfy all required permissions. Check for these first as a fast path.

Check result?
├─ All 3 roles covered → Proceed to Step 3
├─ Owner found → All roles satisfied, proceed to Step 3
└─ Missing roles → Inform user which roles are missing and how to assign them, then re-check
Step 3: Select or Create a User-Assigned Managed Identity (UAMI)

Ask the user to provide an existing UAMI or create a new one. The UAMI must have Contributor on the target subscription.

Verify the UAMI's role using the same API pattern as Step 2, but filter by the UAMI's principal ID (object ID) instead of the user's:

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=assignedTo('{uamiPrincipalId}')

Check that at least one assignment resolves to the Contributor role definition.

💡 Tip: If the UAMI lacks the Contributor role, guide the user to assign it before proceeding.

Store the full UAMI resource ID: /subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<name>

Step 4: Select or Create Monitoring Workspaces

Ask the user for a Log Analytics workspace and an Azure Monitor workspace. Offer to create new ones if needed.

ResourceCLI CommandPurpose
Log Analytics workspace (list)az monitor log-analytics workspace list --subscription <subId> -o tableList existing workspaces
Log Analytics workspace (create)az monitor log-analytics workspace create --workspace-name <name> --resource-group <rg> --subscription <subId> --location <location>Create new workspace
Azure Monitor workspace (list)az resource list --resource-type "Microsoft.Monitor/accounts" --subscription <subId> -o tableList existing workspaces
Azure Monitor workspace (create)az resource create --resource-type "Microsoft.Monitor/accounts" --name <name> --resource-group <rg> --subscription <subId> --location <location> --properties "{}"Create new workspace

⚠️ Warning: If workspaces are in a different subscription than the target:

  • Register Microsoft.ManagedOps RP in the workspace subscription

  • User needs EMM Administrator role on the workspace resource group

  • UAMI needs Contributor on the workspace resource group

Store both workspace resource IDs.

Step 5: Configure Security Options

Ask the user about optional security add-ons.

FeatureDefaultCost
Foundational CSPMAlways enabledFree
Defender CSPMDisabledPaid
Defender for CloudDisabledPaid

Store user selections as enabled or disabled.

Step 6: Register Resource Providers

Register required RPs on the target subscription before deployment.

az provider register --namespace Microsoft.ManagedOps --subscription <subscriptionId>
az provider register --namespace Microsoft.OperationsManagement --subscription <subscriptionId>
az provider register --namespace Microsoft.PolicyInsights --subscription <subscriptionId>
az provider register --namespace Microsoft.Insights --subscription <subscriptionId>
az provider register --namespace Microsoft.OperationalInsights --subscription <subscriptionId>
az provider register --namespace Microsoft.Monitor --subscription <subscriptionId>
az provider register --namespace Microsoft.ManagedIdentity --subscription <subscriptionId>
az provider register --namespace Microsoft.Security --subscription <subscriptionId>

💡 Tip: RP registration is idempotent — safe to run even if already registered.

Step 7: Deploy EMM via ARM API

Submit the PUT request to enable EMM on the subscription.

PUT /subscriptions/{subscriptionId}/providers/Microsoft.ManagedOps/managedOps/default?api-version=2025-07-28-preview

Request body:

{
  "properties": {
    "desiredConfiguration": {
      "defenderCspm": "<enabled|disabled>",
      "defenderForServers": "<enabled|disabled>",
      "changeTrackingAndInventory": {
        "logAnalyticsWorkspaceId": "<log-analytics-workspace-resource-id>"
      },
      "userAssignedManagedIdentityId": "<uami-resource-id>",
      "azureMonitorInsights": {
        "azureMonitorWorkspaceId": "<azure-monitor-workspace-resource-id>"
      }
    }
  }
}

Populate the request body with the values collected in previous steps.

Step 8: Verify Enrollment

After deployment completes, confirm the subscription is enrolled.

GET /subscriptions/{subscriptionId}/providers/Microsoft.ManagedOps/managedOps/default?api-version=2025-07-28-preview
Deployment status?
├─ Succeeded → Report success to user. All existing VMs will be enrolled via policy remediation.
├─ In progress → Wait and re-check after a short interval.
└─ Failed → Read error details and route to Error Handling in the parent workflow.

Disable EMM (Offboard)

To disable EMM for a subscription:

DELETE /subscriptions/{subscriptionId}/providers/Microsoft.ManagedOps/managedOps/default?api-version=2025-07-28-preview

⚠️ Warning: Disabling reverts pricing to standard per-service rates, which may increase costs. Existing VM configurations are not removed.

Error Handling

ErrorCauseRemediation
403 on role checkUser has no RBAC role assignment on the subscription (the assignedTo filter is self-scoped and does not require roleAssignments/read, but the user must have at least one role on the subscription)Inform user they lack Owner or Contributor role on this subscription and cannot proceed with EMM enrollment
Missing required rolesUser missing EMM Administrator, Managed Identity Operator, or Resource Policy ContributorGuide user to assign missing roles, then re-validate
UAMI lacks ContributorManaged identity missing Contributor roleAssign Contributor to the UAMI at subscription scope
RP registration failedInsufficient permissions to register providersUser needs Contributor or Owner on the subscription
PUT deployment failsARM validation errorCheck error details; verify all prerequisites met
Cross-subscription errorWorkspace in different sub without RP/role setupRegister Microsoft.ManagedOps in workspace sub; assign roles on workspace RG

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

What our scanner noticed· Medium risk

  • References to credential files

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Microsoft
Publisher
Microsoft (Official)
Source
microsoft/skills · .github/plugins/azure-skills/skills/azure-compute · commit 0696600
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from .github/plugins/azure-skills/LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Also distributed in
microsoft/azure-skills

AutoGineer is not affiliated with or endorsed by Microsoft or Microsoft.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download azure-compute.zip