Estimates Azure resource costs by querying the live Retail Prices API via Bash or PowerShell scripts. Handles pricing for services, tiers, sizing, and budgeting without an Azure subscription.
npx claudepluginhub ahmadabdalla/plugins --plugin azure-cost-calculator<azure-service-name>This skill uses the workspace's default tool permissions.
Deterministic Azure cost estimation using the public Retail Prices API. Never guess prices; always query the live API via the scripts.
USAGE.mdreferences/examples/3-tier-web-app.mdreferences/examples/data-analytics-platform.mdreferences/examples/enterprise-datacenter-migration.mdreferences/examples/event-driven-serverless.mdreferences/examples/security-observability-platform.mdreferences/pitfalls.mdreferences/regions-and-currencies.mdreferences/reserved-instances.mdreferences/service-routing.mdreferences/services/ai-ml/ai-content-understanding.mdreferences/services/ai-ml/ai-services.mdreferences/services/ai-ml/bot-service.mdreferences/services/ai-ml/content-safety.mdreferences/services/ai-ml/document-intelligence.mdreferences/services/ai-ml/foundry-agents.mdreferences/services/ai-ml/genomics.mdreferences/services/ai-ml/language.mdreferences/services/ai-ml/machine-learning-studio.mdreferences/services/ai-ml/machine-learning.mdRecommends Azure VM sizes, VM Scale Sets (VMSS), and configurations for workloads like web, database, ML, batch, HPC based on performance, scaling needs, and budget using public docs and Retail Prices API.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Share bugs, ideas, or general feedback.
Deterministic Azure cost estimation using the public Retail Prices API. Never guess prices; always query the live API via the scripts.
Choose the script runtime based on what is available:
| Runtime | Condition | Pricing script | Explore script |
|---|---|---|---|
| Bash (preferred) | curl and jq available | scripts/get-azure-pricing.sh | scripts/explore-azure-pricing.sh |
| PowerShell 7+ | pwsh available | scripts/Get-AzurePricing.ps1 | scripts/Explore-AzurePricing.ps1 |
| Windows PowerShell 5.1 | powershell.exe available (Windows only). Add -ExecutionPolicy RemoteSigned before -File to avoid silent failures from default policy restrictions. | scripts/Get-AzurePricing.ps1 | scripts/Explore-AzurePricing.ps1 |
Both produce identical JSON output. Bash flags use --kebab-case equivalents of PowerShell -PascalCase parameters (e.g., -ServiceName → --service-name).
Service reference files specify query parameters as Key: Value pairs. Translate to Bash --kebab-case or PowerShell -PascalCase flags; quote string values with spaces. See workflow.md for the full parameter table, translation examples, and output formats.
Parse: extract resource types, quantities, and sizing from user's architecture
Clarify: if any of these are true, stop and ask before continuing:
Locate each service reference using the lookup workflow in shared.md (file search → routing map → category browse → broad search → discovery)
Read matched service files; check billingNeeds and follow dependency chains (e.g., AKS → VMs → Managed Disks)
Classify each parameter using the Disambiguation Protocol in shared.md:
Specification Review: present a summary:
| Service | Specified | Missing (will ask) | Defaults (will assume) |
|---|
14.5 × 640 → 14 × 640 → 10 × 640 = 6,400; 4 × 640 = 2,560; subtotal = 8,960; 0.5 × 640 = 320; total = 9,280). Do not rely on mental math for multi-digit operations.After presenting the estimate, the user may request changes (switch region, add RI, resize instances, add/remove services). Re-run only the affected queries; do not restart the full workflow.
| Condition | Read |
|---|---|
| Always (entry point) | references/shared.md: constants, category index, alias lookup |
| Query returned 0 results or wrong data | references/pitfalls.md: troubleshooting and traps |
| User asks about Reserved Instances or savings plans | references/reserved-instances.md |
| Non-USD currency or non-eastus region | references/regions-and-currencies.md |
| User requests private endpoints or private access; confirm PE intent with user | references/services/networking/private-link.md: PE pricing, references/services/networking/private-dns.md: DNS zone pricing |
| File search returned 0 or ambiguous results | references/service-routing.md - implemented services routing |
| First time running scripts or unfamiliar with parameters | references/workflow.md: script parameters and output formats |
references/services/ directly required by the user's query. Use the file-search workflow (Step 2) to locate specific files.-File, not -Command: run scripts with pwsh -File or powershell.exe -File; on Linux/macOS, bash strips OData quotes from inline commands. PS 5.1 caveats: (a) Always add -ExecutionPolicy RemoteSigned before -File when using powershell.exe; default Windows policies silently block script execution (see Runtime Detection note above). (b) Use -Command instead of -File when passing array parameters (e.g., -Region 'eastus','australiaeast'), because -File mode does not parse PowerShell expression syntax and collapses the array into a single string.billingNeeds are included automatically.--include-meter-id / -IncludeMeterId. No extra API calls needed.YAML front matter fields. Optional fields use default elision; omitted means the default applies.
| Field | Required | Default | Action |
|---|---|---|---|
billingNeeds | - | omit | Read and price listed dependency services |
billingConsiderations | - | omit | Ask user about listed pricing factors before calculating |
primaryCost | ✔ | - | One-line billing summary for quick cost context |
apiServiceName | - | omit | Use instead of serviceName in API queries |
hasMeters | - | true | false → skip API, use Known Rates table |
pricingRegion | - | regional | global → Region: Global; api-unavailable → skip API; empty-region → omit region |
hasKnownRates | - | false | true → file contains manual pricing table |
hasFreeGrant | - | false | true → apply free grant deduction from Cost Formula |
privateEndpoint | - | false | true → aggregate PE costs via networking/private-link.md |
These apply to EVERY query:
serviceName and all filter values are case-sensitive: use exact values from service reference filesproductName/skuName to the specific variant needed-MeterNameWhen estimating 3 or more services, use these rules to reduce token consumption:
hasMeters: false / pricingRegion: api-unavailable → skip API; use Known Rates or primaryCostpricingRegion: global → Region: Global; empty-region → omit regionapiServiceName → use instead of serviceName in querieshasFreeGrant: true → apply grant deduction; privateEndpoint: true → add PE line itembillingConsiderations applies.| Category | Service | Resource | Unit Price | Unit | Qty | Monthly Cost | Notes |
Multi-meter services get one row per line item. After all queries complete, assemble the final estimate from the accumulated rows. Do not re-read service files already distilled unless a full read trigger is needed. During Post-Estimate Iteration, replace the distillation row(s) for any re-queried service.OutputFormat: Compact (or --output-format Compact in Bash) for batch queries. Compact returns only the 9 fields needed for cost calculation (MeterName, ProductName, SkuName, UnitPrice, UnitOfMeasure, MonthlyCost, Currency, ReservationTerm, TierMinUnits); no query echo, no summary block. With --include-meter-id, Compact includes MeterId as a 10th field. Use full Json format when debugging unexpected results or when a service file requires fields not in the Compact set.