azure-cost
Azure Cost Management Skill
Unified skill for all Azure cost management tasks: querying historical costs, forecasting future spending, and optimizing to reduce waste.
When to Use This Skill
Activate this skill when user wants to:
- Query or analyze Azure costs (how much am I spending, show my bill, cost breakdown)
- Break down costs by service, resource, location, or tag
- Analyze cost trends over time
- Forecast future Azure spending or project end-of-month costs
- Optimize Azure costs, reduce spending, or find savings
- Find orphaned or unused resources
- Rightsize Azure VMs, containers, or services
- Generate cost optimization reports
Quick Reference
| Property | Value |
|---|---|
| Query API Endpoint | POST {scope}/providers/Microsoft.CostManagement/query?api-version=2023-11-01 |
| Forecast API Endpoint | POST {scope}/providers/Microsoft.CostManagement/forecast?api-version=2023-11-01 |
| MCP Tools | azure__documentation, azure__extension_cli_generate, azure__get_azure_bestpractices |
| CLI | az rest, az monitor metrics list, az resource list |
| Required Role | Cost Management Reader + Monitoring Reader + Reader on scope |
MCP Tools
| Tool | Description | Parameters | When to Use |
|---|---|---|---|
azure__documentation |
Search Azure documentation | query (Required): search terms |
Research Cost Management API parameters and options |
azure__extension_cli_generate |
Generate Azure CLI commands | intent (Required): task description, cli-type (Required): "az" |
Construct az rest commands for cost queries |
azure__get_azure_bestpractices |
Get Azure best practices | intent (Required): optimization context |
Inform query design with cost management best practices |
azure__extension_azqr |
Run Azure Quick Review compliance scan | subscription (Required): subscription ID, resource-group (Optional): resource group name |
Find orphaned resources and cost optimization opportunities |
azure__aks |
Azure Kubernetes Service operations | varies by sub-command | AKS cost analysis: list clusters, get node pools, inspect configuration |
💡 Tip: Prefer MCP tools over direct CLI commands. Use
az restonly when MCP tools don't cover the specific operation.
Routing
Read the user's request and follow the appropriate workflow below.
| User Intent | Workflow | Example Prompts |
|---|---|---|
| Understand current costs | Cost Query Workflow | "how much am I spending", "cost by service", "show my bill" |
| Reduce costs / find waste | Cost Optimization Workflow | "optimize costs", "find orphaned resources", "reduce spending" |
| Project future costs | Cost Forecast Workflow | "forecast costs", "end of month estimate", "how much will I spend" |
| Full cost picture | All three workflows combined | "give me the full picture of my Azure costs" |
Important: When optimizing costs, always present the total bill and cost breakdown alongside optimization recommendations.
Scope Reference (Shared Across All Workflows)
| Scope | URL Pattern |
|---|---|
| Subscription | /subscriptions/<subscription-id> |
| Resource Group | /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> |
| Management Group | /providers/Microsoft.Management/managementGroups/<management-group-id> |
| Billing Account | /providers/Microsoft.Billing/billingAccounts/<billing-account-id> |
| Billing Profile | /providers/Microsoft.Billing/billingAccounts/<billing-account-id>/billingProfiles/<billing-profile-id> |
💡 Tip: These are scope paths only — not complete URLs. Combine with the API endpoint and version.
Part 1: Cost Query Workflow
For the full cost query workflow (scope selection, report types, timeframes, dataset configuration, API calls, pagination, guardrails, examples, and error handling), see:
Part 2: Cost Optimization Workflow
For the full cost optimization workflow (prerequisites, best practices, Redis/AKS-specific analysis, Azure Quick Review, resource discovery, cost queries, pricing validation, utilization metrics, and report generation), see:
Part 3: Cost Forecast Workflow
For the full cost forecast workflow (scope selection, time period rules, dataset configuration, forecast-specific options, API calls, response interpretation, guardrails, and error handling), see:
Data Classification
- ACTUAL DATA = Retrieved from Azure Cost Management API
- ACTUAL METRICS = Retrieved from Azure Monitor
- VALIDATED PRICING = Retrieved from official Azure pricing pages
- ESTIMATED SAVINGS = Calculated based on actual data and validated pricing
Best Practices
- Always query actual costs first — never estimate or assume
- Always present the total bill alongside optimization recommendations
- Validate pricing from official sources — account for free tiers
- Use REST API for cost queries (more reliable than
az costmanagement query) - Always include the
ClientType: GitHubCopilotForAzureheader on all Cost Management API requests (--headers "ClientType=GitHubCopilotForAzure"inaz rest) - Save audit trail — include all queries and responses
- Include Azure Portal links for all resources
- For costs < $10/month, emphasize operational improvements over financial savings
- Never execute destructive operations without explicit approval
- On 429 responses, check all
x-ms-ratelimit-microsoft.costmanagement-*-retry-afterheaders (qpu-retry-after,entity-retry-after,tenant-retry-after), wait for the longest value, and do not retry until that duration has elapsed. The per-scope limit (4 requests/minute) is the most restrictive.
Common Pitfalls
- Assuming costs: Always query actual data from Cost Management API
- Ignoring free tiers: Many services have generous allowances
- Using wrong date ranges: 30 days for costs, 14 days for utilization
- Not showing the bill: Always present cost breakdown alongside optimization recommendations
- Cost query failures: Use
az restwith JSON body, notaz costmanagement query
Safety Requirements
- Get approval before deleting resources
- Test changes in non-production first
- Provide dry-run commands for validation
- Include rollback procedures
SDK Quick References
- Redis Management: .NET
More from midudev/autoskills
bun
Use when building, testing, and deploying JavaScript/TypeScript applications. Reach for Bun when you need to run scripts, manage dependencies, bundle code, or test applications with a single unified tool.
14pydantic
Python data validation using type hints and runtime type checking with Pydantic v2's Rust-powered core for high-performance validation in FastAPI, Django, and configuration management.
11react-hook-form
React Hook Form performance optimization for client-side form validation using useForm, useWatch, useController, and useFieldArray. This skill should be used when building client-side controlled forms with React Hook Form library. This skill does NOT cover React 19 Server Actions, useActionState, or server-side form handling (use react-19 skill for those).
10azure-deploy
Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: \"run azd up\", \"run azd deploy\", \"execute deployment\", \"push to production\", \"push to cloud\", \"go live\", \"ship it\", \"bicep deploy\", \"terraform apply\", \"publish to Azure\", \"launch on Azure\". DO NOT USE WHEN: \"create and deploy\", \"build and deploy\", \"create a new app\", \"set up infrastructure\", \"create and deploy to Azure using Terraform\" — use azure-prepare for these.
8sqlalchemy-orm
SQLAlchemy Python SQL toolkit and ORM with powerful query builder, relationship mapping, and database migrations via Alembic
8clerk
Clerk authentication router. Use when user asks about adding authentication,
8