Infrawise
OfficialThe Infrawise MCP server provides Azure FinOps cost optimization tools, helping you identify and act on cost-saving opportunities across your Azure subscriptions.
get_idle_resources: Retrieve idle or zombie Azure resources that can be deleted or deallocated to reduce unnecessary costs.get_sku_optimizations: Get rightsizing recommendations for overprovisioned resources (e.g., downsizing SKUs).get_general_recommendations: Access strategic purchasing model and licensing optimizations (e.g., reserved instances, hybrid benefits).get_savings_summary: View an aggregated breakdown of total potential savings across all categories.
All tools accept an optional subscription_filter (UUID) to scope results to a specific Azure subscription, or return merged results across all accessible subscriptions when omitted.
@infrawise/mcp-server
Claude Code MCP server for Infrawise Azure FinOps recommendations.
What it provides
Tools exposed to Claude Code:
get_idle_resources— idle/zombie resources to delete or deallocateget_sku_optimizations— rightsizing recommendations for overprovisioned resourcesget_general_recommendations— purchasing model and licensing optimizationsget_savings_summary— aggregated savings totals across all categories
All tools accept an optional subscription_filter (subscription UUID) to scope results.
Related MCP server: kubopt
Quickstart
npx @infrawise/mcp-server@latest setupThat's it. setup opens your browser for Azure sign-in, registers the MCP server with Claude Code, and confirms everything is working. Restart Claude Code when it completes.
Prerequisite: You need an active Infrawise account with at least one Azure subscription onboarded. Complete onboarding →
Useful commands
# Re-authenticate only (e.g. after switching accounts) — opens browser
npx @infrawise/mcp-server@latest auth
# Pin a specific tenant
npx @infrawise/mcp-server@latest auth --tenant <tenantId>
# Diagnose auth and onboarding issues with fix steps
npx @infrawise/mcp-server@latest doctor
# Check that the MCP server is registered
claude mcp listSwitching accounts
Delete the cached credentials and re-authenticate:
# macOS / Linux
rm ~/.infrawise/mcp-credentials.json
# Windows (PowerShell)
Remove-Item "$env:USERPROFILE\.infrawise\mcp-credentials.json"
npx @infrawise/mcp-server@latest authLocal development
cd packages/claude-mcp
npm install
npm run build
node dist/index.js setup # or auth / doctorPublishing a new version
cd packages/claude-mcp
npm version patch # or minor / major
npm publish --access publicprepublishOnly runs clean && build automatically. Verify after publishing:
npm view @infrawise/mcp-server versionExisting users re-run npx @infrawise/mcp-server@latest setup to pick up the new version — no config clearing or MCP re-registration needed.
Environment variables
Variable | Default | Purpose |
|
| Backend base URL |
|
| Public client app the CLI signs in as |
|
| Token scope (the Infrawise API audience) |
|
| MSAL authority |
| (unset) | Optional tenant override; builds authority URL automatically |
Security
Token cache stored at
~/.infrawise/mcp-credentials.jsonWritten with
0600mode (best effort on Windows)Read-only server — all calls are GET only
Available Tools
4 toolsget_general_recommendationsC
Retrieve strategic purchasing and licensing optimization recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_filter | No | Optional subscription ID to filter results. When omitted, returns merged results across all accessible subscriptions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose behavioral traits such as whether the operation is read-only, has side effects, or requires permissions. The description only states the action, providing minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, concise and front-loaded with the core action. However, it lacks additional structure that could improve clarity, such as mentioning optionality or default behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite low complexity (one optional parameter, no output schema), the description is incomplete. It does not explain the return format, example usage, or what 'recommendations' entails, leaving agents with insufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with a description for 'subscription_filter'. The tool description adds no further meaning, so it meets the baseline for high schema coverage but does not enrich semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'strategic purchasing and licensing optimization recommendations', specifying the verb and resource. However, it does not differentiate from sibling tools like get_savings_summary or get_sku_optimizations, which could overlap in purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention conditions, prerequisites, or exclusions, leaving the agent without context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_idle_resourcesA
Retrieve idle and zombie Azure resources that can be deleted or deallocated for cost savings.
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_filter | No | Optional subscription ID to filter results. When omitted, returns merged results across all accessible subscriptions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states retrieval of resources and hints at safe operation ('can be deleted'), but omits side effects, auth needs, rate limits, or return format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with verb first, no unnecessary words. Efficiently conveys purpose and context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional param and no output schema, the description covers purpose and the deletion/deallocation intent. Lack of output format explanation is minor; tool is complete enough for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear field description for subscription_filter. The tool description adds context but no new parameter details beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve'), the resource ('idle and zombie Azure resources'), and the purpose ('for cost savings'). It distinguishes from sibling tools like get_savings_summary, which return aggregated data, not individual resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for cost-saving purposes, but does not explicitly state when to use it over siblings like get_general_recommendations or get_sku_optimizations. No guidance on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_savings_summaryA
Aggregate savings totals across idle resources, SKU rightsizing, and general recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_filter | No | Optional subscription ID to filter results. When omitted, returns merged results across all accessible subscriptions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden. It only states aggregation and merging results across subscriptions, but does not disclose read-only nature, potential cost, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that efficiently conveys the core function without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is adequate but does not specify the output format or further behavioral details. It states what is aggregated but not the structure of the summary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a clear description of the optional subscription filter and default behavior. The tool description adds no additional parameter meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'aggregate' and the resource 'savings totals' across specific categories (idle resources, SKU rightsizing, general recommendations), distinguishing it from sibling tools that provide details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus alternatives. The context implies it is for aggregated totals while siblings provide granular data, but no direct when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sku_optimizationsA
Retrieve rightsizing recommendations for overprovisioned resources.
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_filter | No | Optional subscription ID to filter results. When omitted, returns merged results across all accessible subscriptions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation but does not disclose any behavioral traits beyond the basic purpose. With no annotations, it carries the full burden but is acceptable for a simple retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no waste, front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately describes the tool's purpose for a simple one-parameter retrieval, though lacking output schema details would be a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the only parameter, so the description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Retrieve' and resource 'rightsizing recommendations for overprovisioned resources', clearly differentiating from siblings like get_general_recommendations and get_idle_resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs siblings; the description only states what it does without context on alternatives or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.4.0- First observed
get_general_recommendations - First observed
get_idle_resources - First observed
get_savings_summary - First observed
get_sku_optimizations
TDQS
Each tool targets a distinct aspect of cost optimization: general recommendations, idle resources, savings summary, and SKU optimizations. No overlap exists.
All tools follow a consistent 'get_<noun_phrase>' pattern, making them predictable and easy to distinguish.
With 4 tools covering the core categories of cost optimization (recommendations, idle resources, SKU, summary), the count is well-scoped for the domain.
The set covers retrieval of all major cost-saving categories, but lacks tools for taking actions (e.g., applying recommendations) or drilling into historical data, which are minor gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Cloud cost visibility and savings recommendations grounded in your actual AWS, GCP and Azure bill.
Cloud cost + FinOps knowledge for AI agents: AWS/Azure/GCP optimisation, AI spend, waste playbooks.
FinOps MCP: query allocated, correlated cloud and AI cost across AWS, GCP, Azure and Snowflake.
- ZopDev MCPOAuthdev.zop
Cloud cost, inventory and governance on AWS/Azure/GCP. Read-only by default, optional scoped writes
1
Related MCP Servers
- AlicenseAqualityBmaintenanceCloud cost management MCP server for Azure. Ask your AI about your cloud bill.15801MIT
- AlicenseAqualityBmaintenanceKubernetes cluster cost analysis and optimization. Query costs, find savings opportunities, get rightsizing recommendations, and analyze pod spend across AKS, EKS, and GKE — directly from Claude612Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProduction-grade MCP server for enterprise Azure cost optimization, enabling spend anomaly detection, multi-tenant auditing, budget validation, and compliance-aware recommendations.1MIT
- AlicenseNot gradedqualityDmaintenanceAnalyzes Azure cloud costs, audits for waste, and provides budget insights via natural language through a secure local MCP server.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Infrawise/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server