Skip to main content

At a glance

Credentials

Set these per environment. See Connect an integration. With a managed OAuth app, Connect works without these variables; set them to use your own OAuth app instead.
VariableRequiredDescription
MICROSOFT_CLIENT_IDYesMicrosoft Azure App Client ID (Application ID) Docs.
MICROSOFT_CLIENT_SECRETYesMicrosoft Azure App Client Secret Docs.

Setup

  1. Get an Azure subscription: Sign in at https://portal.azure.com with a Microsoft account. New accounts can create a free subscription with trial credit at https://azure.microsoft.com/free, which is enough to test every tool in this connector.
  2. Register an Azure app: In the Azure portal, open Microsoft Entra ID > App registrations > New registration. Choose ‘Accounts in any organizational directory and personal Microsoft accounts’ (or your single tenant) and add your callback URL as a Web redirect URI.
  3. Add the Azure Service Management delegated permission: Under API permissions, select Add a permission > Azure Service Management > Delegated permissions, and add user_impersonation. This lets the connector call Azure Resource Manager as the signed-in user.
  4. Create a client secret: Under Certificates & secrets, create a client secret. Set MICROSOFT_CLIENT_ID to the Application (client) ID and MICROSOFT_CLIENT_SECRET to the secret value.
  5. Create test resources: Create a resource group with a small VM (e.g. B1s) and a storage account so the list and VM power tools have something to return. Deallocate the VM when done to avoid charges.
  • The signed-in user needs Azure RBAC roles on the subscription: Reader is enough for the list tools, and Virtual Machine Contributor (or Contributor) is required to start and deallocate VMs.
  • Start and deallocate are asynchronous: a 202 Accepted response means the operation was queued, not that it has finished; re-run List Virtual Machines with statusOnly=true to check the power state.
  • Deallocate (not just stop) releases the compute hardware so the VM stops incurring compute charges; disks continue to bill.
  • Each Azure resource provider versions its API independently, which is why every tool carries its own api-version default.
  • List Function and Web Apps returns all Microsoft.Web/sites resources; filter client-side on the ‘kind’ field (e.g. ‘functionapp’) to isolate function apps.
Provider API reference: https://learn.microsoft.com/en-us/rest/api/azure/

Tools

ToolAccessDescription
List SubscriptionsReadList all Azure subscriptions the signed-in user can access; use this first to get subscription IDs for the other tools
List Resource GroupsReadList the resource groups in an Azure subscription
List Virtual MachinesReadList all virtual machines in an Azure subscription, optionally with runtime power state
Start Virtual MachineWriteStart a stopped or deallocated virtual machine (returns 202 Accepted; the operation completes asynchronously)
Deallocate Virtual MachineWriteShut down a virtual machine and release its compute resources so it stops incurring compute charges (returns 202 Accepted)
List Storage AccountsReadList all storage accounts in an Azure subscription (storage keys are not returned)
List Function and Web AppsReadList all App Service sites (function apps and web apps, Microsoft.Web/sites) in an Azure subscription; function apps have kind ‘functionapp’
Restart Virtual MachineWriteRestart a running virtual machine (returns 202 Accepted; the operation completes asynchronously)
Get VM Instance ViewReadGet the runtime state of a single virtual machine, including power state (statuses with code PowerState/running etc.), OS info, and boot diagnostics - cheaper than listing all VMs with statusOnly
List ResourcesReadList all resources in an Azure subscription across every resource type - a generic inventory beyond the dedicated list tools

Example prompts

  • List my Azure subscriptions and summarize the resource groups, virtual machines, storage accounts, and function apps in each one.
  • List my Azure virtual machines with their power states and point out any running VMs that look idle or forgotten.
  • Help me deallocate an Azure virtual machine so it stops incurring compute charges, and confirm the operation was accepted.