Cost Optimization
MicrosoftOfficialCreated by Microsoft
- Skill
- Research and analysis
- Cloud and DevOps
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The cost-optimization skill provides a systematic approach to reducing Azure cloud spending. It focuses on two primary areas: identifying waste through resource rightsizing and evaluating the efficiency of existing Reservations and Savings Plans. The skill emphasizes data-driven analysis using Azure Resource Graph and cost management tools, requiring users to validate findings before taking action. It strictly prohibits automated resource modifications, ensuring that all recommendations for resizing, deletion, or commitment changes are presented with clear evidence, feasibility assessments, and potential trade-offs.
What it does
- Analyzes Azure resource utilization to identify potential cost savings.
- Evaluates the performance and coverage of existing Reservations and Savings Plans.
- Provides a structured process for rightsizing resources based on factual inventory and usage data.
- Distinguishes between utilization, coverage, and savings metrics for financial reporting.
- Integrates with service-specific guidance for storage and caching resources.
- Ensures that cost-saving actions do not conflict with existing commitments or reliability requirements.
When to use it
- When you need to identify and eliminate waste in your Azure environment.
- When investigating why pay-as-you-go costs are higher than expected.
- When evaluating whether to purchase, exchange, or adjust Azure Reservations or Savings Plans.
- When looking for orphaned resources like unattached disks or idle public IPs.
- When you need to rightsize existing virtual machines or services to match actual demand.
Advantages
- Promotes safe, evidence-based decision-making by requiring owner confirmation.
- Prevents double-counting savings between rightsizing actions and commitment benefits.
- Provides clear separation between measured costs and projected savings.
- Standardizes the analysis of complex billing scopes and commitment terms.
- Reduces the risk of accidental resource deletion or service disruption.
Usage examples
- “How can I reduce my Azure spending for this month?”
- The agent will initiate a cost analysis workflow, querying current resource usage and Advisor recommendations to identify high-impact, feasible savings opportunities.
- “Are my Azure Reservations being used effectively?”
- The agent will analyze your billing scope to report on reservation utilization and coverage, highlighting underutilized commitments for potential adjustment.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/microsoft/cost-optimization/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip cost-optimization.zip -d .agents/skills
Documentation by Microsoft
Azure Cost Optimization
Quick Reference
| Intent | Workflow | Primary tools |
|---|---|---|
| Reduce waste or rightsize | Optimization | Cost and Resource Graph tools |
| Review commitments | Commitments | list_benefit_utilization, list_reservation_transactions, get_benefit_recommendations |
When to Use This Skill
Use for waste, rightsizing, and commitments.
MCP Tools
Use cost and Resource Graph tools for optimization and benefit tools for commitments. Validate queries. Fallback: API mappings.
Workflow
Confirm scope, period, currency, and commitment intent.
Load only the matching workflow above.
Never transform MCP results in a shell or interpreter; request validated server-side projection, aggregation, or bounded follow-up queries.
Separate measured cost, reported savings, and qualitative opportunities.
Recommend changes only; do not delete, resize, purchase, or deploy resources.
Error Handling
| Error | Action |
|---|---|
| Access denied | Name the scope and permission. |
| Multiple currencies | Group and report each currency separately. |
| Missing evidence | State the gap; do not invent values. |
| Server error | Retry once; then report the trace ID. |
Files
- ATTRIBUTION.mdAdded by AutoGineer977 B
- LICENSELicence file added by AutoGineer1.1 KiB
- SKILL.md1.9 KiB
- references/commitments.md2.9 KiB
- references/optimization.md3.0 KiB
- references/report-template.md1.7 KiB
- references/resource-graph.md3.3 KiB
- references/services/redis.md2.1 KiB
- references/services/storage-lifecycle.md1.7 KiB
- references/services/storage.md3.8 KiB
- references/tool-fallback.md1.4 KiB
references/resource-graph.md
Azure Resource Graph Queries for Cost Optimization
Azure Resource Graph (ARG) enables fast, cross-subscription resource querying through Azure Resource Manager MCP (ARM MCP). Use it to retrieve Azure Advisor recommendations and factual resource inventory for optimization analysis.
How to Query
Use generate_query, validate_query, then execute_query. Never execute an
unvalidated query. Follow any skipToken returned by execute_query.
Key Tables
| Table | Contains |
|---|---|
Resources | All ARM resources (name, type, location, properties, tags) |
ResourceContainers | Subscriptions, resource groups, management groups |
AdvisorResources | Cost and performance recommendations |
Cost Optimization Query Patterns
Find orphaned (unattached) managed disks:
Resources
| where type =~ 'microsoft.compute/disks'
| where isempty(managedBy)
| project name, resourceGroup, location, diskSizeGb=properties.diskSizeGB, sku=sku.nameFind unattached public IP addresses:
Resources
| where type =~ 'microsoft.network/publicipaddresses'
| where isempty(properties.ipConfiguration)
| project name, resourceGroup, location, sku=sku.nameFind orphaned network interfaces:
Resources
| where type =~ 'microsoft.network/networkinterfaces'
| where isempty(properties.virtualMachine)
| project name, resourceGroup, locationResource count by SKU/tier (spot oversized resources):
Resources
| where isnotempty(sku.name)
| summarize count() by type, tostring(sku.name)
| order by count_ descTag coverage for cost allocation:
Resources
| extend hasCostCenter = isnotnull(tags['CostCenter'])
| summarize total=count(), tagged=countif(hasCostCenter) by type
| extend coverage=round(100.0 * tagged / total, 1)
| order by total descFind load balancers with no backend pools:
Resources
| where type =~ 'microsoft.network/loadbalancers'
| where array_length(properties.backendAddressPools) == 0
| project name, resourceGroup, location, sku=sku.nameAn empty backend-pool configuration is an investigation signal, not proof that the load balancer is unused or safe to remove.
Get Advisor cost recommendations:
AdvisorResources
| where subscriptionId =~ '{subscription-id}'
| where properties.category == 'Cost'
| extend resourceId=tostring(properties.resourceMetadata.resourceId)
| project subscriptionId,
name,
resourceId,
impact=properties.impact,
description=properties.shortDescription.solution,
savingsDetails=tostring(properties.extendedProperties)Replace the placeholder with the exact target subscription returned by Azure. Apply both the MCP subscription scope and the KQL subscription predicate before execution. Project only fields needed for the report. If duplicate or cross-scope rows remain, narrow or page the validated query; do not save and parse the response with a local tool.
Report savings, currency, and period only when those fields are present in
savingsDetails; otherwise label the recommendation qualitative.
Tips
Use
=~for case-insensitive type matching (resource types are lowercase)Navigate properties with
properties.fieldNameAdd a KQL
limitclause to bound result count.Pass subscription scope through the ARM MCP tool parameters.
Cross-reference orphaned resources with
query_costsresults.
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
No issues found by our static scan· No issues found
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-cost/skills/cost-optimization · commit 0696600
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from .github/plugins/azure-cost/LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
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 cost-optimization.zip