NewAgent Observability is live.
Back to directory
Azure Cost Management logo

Azure Cost Management MCP: real spend, two clients

What the 14 cost tools return, which 5 need no configuration, and why the preview reaches GitHub Copilot and little else.

Connector
Official, hosted by Microsoft
Coverage
Actual spend, AKS costs, forecasts, budgets, reservations and retail prices
Tools
14 cost and pricing tools. 5 are on by default and 9 need a header.
Biggest risk for an agent
Two supported clients, both GitHub Copilot

Last verified 1 September 2026 · from The Azure Resource Manager MCP server's README, its Cost Management tool reference and the GitHub API

This page is one of 90 in a directory of monitoring and developer tools. Each page checks what an AI coding agent can get out of the tool through its MCP server, the connector that lets the agent query the tool directly.

Summary

An Azure Cost Management MCP server exists, under another name. Microsoft ships the cost tools inside the Azure Resource Manager MCP server, a hosted endpoint at https://mcp.management.azure.com.

Five cost tools are on by default. query_costs, query_aks_costs, get_retail_prices, start_pricesheet_download and get_pricesheet_status need no configuration at all.

Nine more arrive with a header. Setting x-mcp-toolset: CostManagement on the connection adds forecasting, dimensions, budgets, alerts and benefit insights, for 14 in total.

query_costs answers what a subscription actually spent, not what it would list at. It takes an Azure scope and returns 100 cost rows by default.

The preview is client-limited. The README names GitHub Copilot Chat in VS Code and GitHub Copilot CLI, and every other client needs an Azure app registration.

What is the Azure Cost Management MCP server?

Azure Cost Management is the service that holds actual spend. It covers usage records, amortized reservation costs, budgets, alerts and exports.

MCP is an open protocol that lets an AI coding agent call a tool's functions, such as running a log search, without anyone writing code against the tool's API. Microsoft's server puts the Cost Management APIs behind that protocol.

Cost is the stage this page grades, and the same endpoint reaches further. It also deploys ARM templates and runs Azure Resource Graph queries, which arrive on the same connection.

What answers an Azure cost question:

RouteWhat it reachesState
ARM MCP server, default toolsActual and amortized spend, AKS costs, retail prices, pricesheetsOfficial. On without configuration
ARM MCP server, CostManagement toolsetForecasts, dimensions, budgets, alerts, reservations and savings plansOfficial. One header away
Azure MCP Server, pricingRetail rates, estimates, SKU and region detailOfficial, and a separate local server. Prices, not spend
msftnadavbh/AzurePricingMCPEstimates, spot prices, savings analysis, idle resourcesMIT · 55 stars · pushed 23 June 2026. Still pricing
glassity/focus-mcpFOCUS billing data, an open billing format, across AWS, Azure and GCPApache-2.0 · 11 stars · pushed 1 September 2026

The first two rows are the same endpoint, and the difference between them is one header. The third is a different server that Microsoft also publishes, and it answers rate-card questions rather than billed ones.

Azure Cost Management is named for the cost stage, and the cost stage is the one this connector serves best.

Part of the workWhat Azure Cost Management has hereCan an agent reach it
Code, tests & reviewNoneNothing for code or review
CI & releaseARM template deployment, on the same endpointPartial. Deployments are reachable, and they are not a cost surface
Production observabilityNone. Azure Monitor and Resource Health sit outside Cost ManagementNo. Those areas belong to the separate local Azure MCP Server
Agent observability & evalsNoneNo traces or evaluations of model behavior
AI cost managementActual spend, forecasts, budgets, benefits and pricesheetsYes. query_costs returns billed spend, and 9 further tools arrive with the CostManagement header

The cost stage is where this endpoint is strongest. What limits it is not coverage but the short list of clients the preview will accept.

What can an AI agent do with Azure Cost Management?

The 5 default tools answer what a cost review opens with. query_costs returns actual or amortized spend for a subscription, management group or billing scope, grouped and filtered as asked. query_aks_costs splits an AKS bill by cluster, namespace, idle time and service category, at subscription scope only. get_retail_prices needs no sign-in. The pricesheet pair fetches a negotiated EA or MCA rate card as an asynchronous download. Budgets and forecasts wait behind the CostManagement header.

14 cost and pricing tools, 5 on by default and 9 behind the CostManagement header.

Enabled by default5
query_costsquery_aks_costsget_retail_pricesstart_pricesheet_downloadget_pricesheet_status
Query and forecast2
forecast_costslist_dimensions
Budgets and alerts4Write
list_budgetsget_budgetcreate_budgetlist_alerts
Reservations and savings plans3
list_benefit_utilizationget_benefit_recommendationslist_reservation_transactions

The list comes from the server's Cost Management and Pricing tool reference, read 1 September 2026. The last three groups are the optional CostManagement toolset, so a default connection shows the first group only. The count of writes is 1. The reference marks create_budget as a write, and the other thirteen only read, fetch or start a download.

Azure Cost Management MCP server limits: where answers come back incomplete

The first limit below decides whether the connector is reachable at all. The rest change what an answer means once it is.

The agent says: Connected to Azure Resource Manager. From 2 clients, both GitHub Copilot.

The README states the server can only be used with a set of MCP clients during the preview, and names GitHub Copilot Chat in VS Code and GitHub Copilot CLI.

A third-party client is possible and not simple. It needs an app registration requesting the server's application ID, a service principal, a client secret and a redirect URI.

Guard: Confirm your client is on the list before planning around this server. Budget an Azure app registration if it is not.

The agent says: There is no budget tool here. There are 4, behind one header.

9 of the 14 cost tools live in the CostManagement toolset, which is off until x-mcp-toolset: CostManagement is set on the connection.

The default connection carries only 5 cost tools, so budgets, forecasts, alerts, dimensions and benefit data are all absent from the tool list an agent sees.

Guard: Set the header in the client config, restart the server, and check that 14 cost tools appear rather than 5.

The agent says: The subscription costs $8,400 a month. That was the rate card, not the bill.

2 of the 5 default tools answer money questions in different currencies of meaning. query_costs returns what was charged, and get_retail_prices returns published pay-as-you-go rates.

Retail rates carry no enterprise agreement, no reservation and no credit, because get_retail_prices is a public lookup that needs no scope and no sign-in.

Guard: Require the agent to name the tool it called, as the disclosure block above does. Rates and spend read identically otherwise.

The agent says: Here is your spend across tenants. 1 tenant, the account's default.

The FAQ states only one tenant can be queried at a time, with no way to specify a tenant per the logged-in user. It attributes the limitation to VS Code and links an open issue.

The workaround it suggests is a second account with subscription write access in the target tenant, switched to in VS Code before running the query.

Guard: State the tenant in the answer. A cross-tenant total from one sign-in is a partial total wearing a complete one's name.

How to configure Azure Cost Management MCP for agents

  1. 1

    Set the header if you need budgets

    Without x-mcp-toolset: CostManagement, an agent sees 5 cost tools rather than 14.

  2. 2

    Check your client before anything else

    The preview names two, and both are GitHub Copilot. Anything else needs an app registration.

  3. 3

    Know which tool writes

    create_budget creates a budget with threshold notifications. The other 13 cost tools return data.

  4. 4

    Expect one tenant at a time

    The FAQ states there is no way to name a tenant per request, so the signed-in account decides.

  5. 5

    Query a billing scope for wide comparisons

    The reference advises one call against a billing scope instead of one call per subscription.

Paste this into your agent’s instructions

Actual spend and a retail rate are both currency figures in a sentence, and this server returns both. Nothing in an answer separates them unless the agent is made to say which tool produced it.

Terminal
When you answer an Azure cost question, state:
- Whether the figure is actual spend, amortized cost or a
  retail list price. query_costs returns what was charged
  and get_retail_prices returns published rates.
- The scope, the timeframe and the currency it applies to.
- Whether the CostManagement toolset is enabled, because
  budgets, forecasts and benefit data need that header.
- That a cost query returns 100 rows by default, so a
  total may be partial.
Never state that data does not exist. State which tool you
called and what it returned.
Write your answer in ASD-STE100 Simplified Technical
English. Use short sentences with one idea in each.

Do you need the MCP server at all?

You do not need it for a single figure, because Cost Management already answers through the Azure portal and its REST API. The server matters when an agent has to ask the question mid-conversation.

Cost Management exports write usage and amortized cost to storage on a schedule. That stays the route for a complete bill, because a cost query returns 100 rows by default.

For more than one cloud, FOCUS is an open billing format, and glassity/focus-mcp reads AWS, Azure and GCP through it.

msftnadavbh/AzurePricingMCP remains a pricing tool. It estimates and compares rates, which is a different question from what a subscription was charged.

With MCP, spend, forecasts and budgets arrive in the same conversation as the resources that caused them, over one endpoint with nothing installed.

Connect it if a supported client can reach it. Otherwise read an export or call the REST API, and keep the app registration in reserve.

Azure Cost Management MCP server setup

Nothing gets installed. Microsoft hosts the server at https://mcp.management.azure.com, and a client reaches it as an HTTP MCP server.

What you need first is an Azure account with access to a subscription, and a client the preview accepts. The server acts as the signed-in user, so Azure roles decide what it can read.

Adding x-mcp-toolset: CostManagement to the same entry is what turns 5 cost tools into 14.

VS Code, with GitHub Copilot Chat

Opening https://aka.ms/JoinARMMCP launches VS Code and offers the server for install. The sign-in prompt uses Azure credentials, so no key is written into the file.

Adding the toolset by hand means editing .vscode/mcp.json in the repository, or the user-level mcp.json from MCP: Open User Configuration. Restart the server afterwards.

Terminal
{"servers":{"azure-resource-manager-mcp":{
  "type":"http",
  "url":"https://mcp.management.azure.com",
  "headers":{"x-mcp-toolset":"CostManagement"}}}}

GitHub Copilot CLI

The second supported client reads ~/.copilot/mcp-config.json. The shape is the same, under mcpServers rather than servers.

Exit and relaunch copilot to pick up the change, then confirm the server is running with the /mcp show command. No credentials go in the file.

Terminal
{"mcpServers":{"azure-resource-manager-mcp":{
  "type":"http",
  "url":"https://mcp.management.azure.com",
  "headers":{"x-mcp-toolset":"CostManagement"}}}}

Claude Code and other clients

Not supported by the preview, and documented anyway. docs/OtherClientSupport.md describes an Azure app registration whose manifest requests access to the server's application ID.

The steps are a redirect URI of https://claude.ai/api/mcp/auth_callback/, a service principal, and a client secret used in a custom connector. The guide states the account needs at least Owner on one subscription.

Terminal
az ad sp create --id 22bfbae3-f4e7-485f-be43-8cee15065084
# then add the redirect URI, create a client secret,
# and use it in the custom connector definition

Every other client

Each block below is the configuration for one client, with the file path and the key that client expects.

The other Azure MCP server

Microsoft publishes two. The FAQ describes the Azure MCP Server as a local server on the client machine, and this one as remote and cloud-hosted.

The local server documents a pricing area for retail rates, plus quota and advisor. It has no Cost Management area, so spend questions belong to the hosted endpoint. No credentials go into its configuration, because it reuses the Azure sign-in on the machine.

Terminal
{"mcpServers":{"azure":{
  "command":"npx",
  "args":["-y","@azure/mcp@latest","server","start"]}}}

Read-only access, permissions and security

  • The server acts as the signed-in user

    The README states that every tool call is made on that user's behalf, under the same Azure permissions.

  • Spend data is commercially sensitive

    What a company spends on which service describes what it is building, so scope the role before connecting.

  • One cost tool changes state

    create_budget writes a budget with notification rules, and the reference marks it as the only write among the 14.

  • The connection reaches past cost

    The same endpoint registers deployment and resource-creation tools, so a cost question carries them along.

  • Deployments can be denied by policy

    The README documents an Azure Policy sample that blocks create_deployment by the server's application ID.

  • The third-party route is a broad grant

    An app registration with a client secret, plus Owner on a subscription, is a larger ask than a read-only connector.

Troubleshooting

Your client cannot connect
The preview accepts GitHub Copilot Chat in VS Code and GitHub Copilot CLI. Other clients need the app registration route in docs/OtherClientSupport.md.
There is no budget or forecast tool
Those 9 tools sit in the CostManagement toolset. Add x-mcp-toolset: CostManagement to the server entry, then restart the server in the client.
AADSTS500200 on sign-in
The troubleshooting guide attributes this to a personal account. It suggests an organizational account, or inviting the personal account into the tenant as a guest.
The costs are from the wrong tenant
The FAQ states one tenant can be queried at a time, with no per-request tenant setting. The account falls back to its default tenant.
A total looks too small
A cost query returns 100 rows by default. The top parameter is registered up to 5,000, and a wide question may still need a narrower grouping.

Azure Cost Management MCP server: Reference

ItemValue
Official serverAzure Resource Manager MCP server, hosted by Microsoft
Endpointhttps://mcp.management.azure.com
Feedback repositoryAzure/Azure-Resource-Manager-MCP · MIT · 29 stars · pushed 19 August 2026
Cost and pricing tools14
On by default5
Behind the CostManagement header9
Tools that write1, create_budget
Supported preview clientsGitHub Copilot Chat in VS Code, GitHub Copilot CLI
Other clientsApp registration, service principal and a client secret
Rows per cost query100 by default, with top registered up to 5,000
Scopes acceptedSubscription, management group and billing
The other Azure serverAzure MCP Server, in microsoft/mcp, local, with pricing but no spend
Inventory sourceThe server's Cost Management and Pricing reference, read 1 September 2026

What the vendor documents

Public practitioner writing about these tools is thin, so the quotations below are Microsoft's own words about its own server.

What was checkedWhat it shows
Cost and pricing tools14
On by default5
Behind the CostManagement header9
Cost tools that write1
Supported preview clients2
Azure/Azure-Resource-Manager-MCP stars29

“Several Cost Management & Pricing tools are enabled by default and need no extra configuration”

“During this preview, Azure Resource Manager MCP server can only be used with a set of MCP Clients.”

“The Azure Resource Manager MCP server ships a Cost Management & Pricing tool surface that lets agents answer cost, budget, savings, and pricing questions in natural language, on behalf of the signed-in user.”

The tool inventory was read from the server's Cost Management and Pricing reference and its README on 1 September 2026, and the two lists reconcile at 5 plus 9. Repository facts come from the GitHub API on the same date.

Should you connect an agent to Azure Cost Management?

Yes, with one of the four checks failing. Best for cost questions asked inside Copilot, with budgets and forecasts switched on by header.

Strongest fit
Teams working in GitHub Copilot who want an agent to read real Azure spend without leaving the editor.
Main advantage
Billed and amortized spend from a first-party hosted endpoint, with no package to install and no key to store.
Main weakness
The preview accepts two clients. Reaching it from anywhere else needs an Azure app registration and a client secret.
Operational risk
A default connection that carries deployment and resource-creation tools alongside the cost ones.

From Oodle

One platform for agent traces and infrastructure

Agent traces usually sit in a different product from the rest of your telemetry, so when a slow database makes an agent slow the symptom is in one tool and the cause is in another. Oodle keeps both in one query surface, from $10 per million spans.

See agent observability

Frequently asked questions

Does Azure Cost Management have an MCP server?

Yes. Microsoft's Azure Resource Manager MCP server carries 14 cost and pricing tools at https://mcp.management.azure.com, and 5 of them are on by default.

Can an agent read what my subscription actually spent?

Yes. query_costs returns actual or amortized cost and usage rows for a subscription, management group or billing scope, and it is on by default.

How do I get the budget and forecast tools?

Add the header x-mcp-toolset: CostManagement to the server entry in your client config, then restart the server. That adds the other 9 tools.

Which clients can connect?

The preview names GitHub Copilot Chat in VS Code and GitHub Copilot CLI. Other clients need an Azure app registration, a service principal and a client secret.

Does any cost tool change my Azure account?

One does. create_budget creates a budget with threshold notifications, and the other 13 cost and pricing tools return data.

What about the Azure MCP Server in microsoft/mcp?

It is a separate local server. Its documented areas include pricing, quota and advisor, but no Cost Management area, so it answers rates rather than spend.

Changelog

  • 19 August 2026. Last push to Azure/Azure-Resource-Manager-MCP, per the GitHub API.
  • 23 June 2026. msftnadavbh/AzurePricingMCP last push. That repository has never tagged a GitHub release.
  • 27 January 2026. Azure/Azure-Resource-Manager-MCP created on GitHub.

Sources

Every number on this page traces to one of these

  1. Cost Management and Pricing tools · read 1 September 2026
  2. Azure Resource Manager MCP server README · read 1 September 2026
  3. Other client support · read 1 September 2026
  4. Frequently asked questions · read 1 September 2026
  5. Troubleshooting guide · read 1 September 2026
  6. Azure MCP Server tools index · read 1 September 2026
  7. GitHub API · repository facts for Azure/Azure-Resource-Manager-MCP, msftnadavbh/AzurePricingMCP and glassity/focus-mcp · 1 September 2026

Azure Cost Management’s own MCP documentation

The same question at other providers:

Servers built for spend: