# The Azure Resource Manager MCP Server Hits Public Preview


Microsoft just announced the public preview of the [Azure Resource Manager MCP Server](https://techcommunity.microsoft.com/blog/azuregovernanceandmanagementblog/introducing-the-azure-resource-manager-mcp-server/4517521) — a remote, hosted MCP server that lets AI agents talk to Azure infrastructure through ARM. At this year's MVP Summit I got proper hands-on time with this: a lab session walking through it, followed by preview access on my own tenant so I could poke at it with real resources for a while. Now everyone else gets to do the same.

<!--more-->

## Wait, didn't we already have an Azure MCP server?

Fair question — and yes, the [existing Azure MCP server](https://github.com/microsoft/mcp) has been around for a while. The difference here is twofold:

1. **It's a remote server.** No local install, no `npx`, no Docker. Microsoft hosts it; your client connects to a hosted endpoint
2. **Authentication is handled for you.** Sign in with your Azure credentials once, and the server runs every operation in the context of your signed-in user — respecting your existing permissions and policies

It's also more focused in scope: this server is specifically about **Azure Resource Manager** — querying your resources and managing template deployments — rather than a kitchen-sink wrapper around every Azure service.

## What it actually does

The capability surface is small but pointed, split into two areas.

### Natural language → Azure Resource Graph

This is the headline. Instead of hand-writing [KQL](https://learn.microsoft.com/en-us/azure/governance/resource-graph/concepts/query-language) against Resource Graph, you describe what you want in plain English and the server generates, validates, and executes the query for you. Because Resource Graph spans every Azure resource type in your tenant, the same conversation can pivot from VMs to storage accounts to policy assignments without changing tooling.

### ARM template deployments

Hand it an ARM template and it'll deploy to a target resource group, report status as the deployment runs, and cancel a deployment that's clearly going sideways. Worth flagging Steven's caveat from the announcement: Copilot can also *generate* the template for you, but there's no quality guarantee on a generated one — so bring your own if you care about predictable output.

### The full tool list

Six tools in this preview:

- `generate_query`
- `validate_query`
- `execute_query`
- `create_template_deployment`
- `get_arm_template_deployment_status`
- `cancel_arm_template_deployment`

## A query that actually worked

One of the things I tried during my tenant preview was:

> *"Which resources aren't compliant with policies? Can you tell me what policies apply and how to resolve it?"*

That's a real question a platform engineer would ask, and the server handled it end-to-end — generated the Resource Graph query, executed it, returned the non-compliant resources, and walked through the applied policy assignments. Doing the same thing manually means at least three portal tabs and remembering the right join in KQL.

The official announcement uses a tagging audit as their example (*"show me all resources created in the last 30 days that don't have required tags"*), which is the same shape of problem and works equally well.

## The honest preview caveats

It's a preview, and it shows in a few places.

**Most actions are read-only today.** The tooling is heavily skewed toward `GET`-style operations — query, validate, get status. Not a bad thing in my view: handing an AI agent the ability to `POST` and `DELETE` across your Azure estate needs guardrails that Microsoft is presumably still building. Read access first, write access once the safety story is solid, is the right order.

**No cost questions.** Cost Management isn't part of ARM, so asking *"what did this resource cost me last month?"* won't get you anywhere. That's the question I most wanted to ask during the preview, and the one I most often couldn't. Hopefully a future iteration plugs Cost Management in — but for now it's outside the scope of this server.

**VS Code + GitHub Copilot only for now.** The current install flow runs through VS Code with a GitHub Copilot subscription. The announcement specifically calls out Claude support as "next up", which is great news if (like me) that's where most of your AI work happens day-to-day.

## Try it

If you've got a Copilot subscription and VS Code, install is one click:

- **Install:** [aka.ms/JoinARMMCP](https://aka.ms/JoinARMMCP)
- **Issues / feedback:** [aka.ms/ARMMCPIssue](https://aka.ms/ARMMCPIssue)

A good first prompt to throw at it: ask it about your own non-compliant resources, or anything where you'd normally crack open the Azure portal and squint at filters. That's where the natural-language layer earns its keep.

Happy querying 😊

