Skip to main content
Glama
Infrawise

Infrawise

Official
by Infrawise

@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 deallocate

  • get_sku_optimizations — rightsizing recommendations for overprovisioned resources

  • get_general_recommendations — purchasing model and licensing optimizations

  • get_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 setup

That'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 list

Switching 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 auth

Local development

cd packages/claude-mcp
npm install
npm run build
node dist/index.js setup   # or auth / doctor

Publishing a new version

cd packages/claude-mcp
npm version patch   # or minor / major
npm publish --access public

prepublishOnly runs clean && build automatically. Verify after publishing:

npm view @infrawise/mcp-server version

Existing 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

INFRAWISE_API_BASE

https://api.infrawiseai.com/api

Backend base URL

INFRAWISE_AZURE_CLIENT_ID

9d7c8230-3c1d-4a81-80cb-98f5cb40d2e7

Public client app the CLI signs in as

INFRAWISE_AZURE_API_SCOPE

api://06dc6d06-11f1-4543-bb2c-9c91b263df56/delegated_access

Token scope (the Infrawise API audience)

INFRAWISE_AZURE_AUTHORITY

https://login.microsoftonline.com/common

MSAL authority

INFRAWISE_AZURE_TENANT_ID

(unset)

Optional tenant override; builds authority URL automatically

Security

  • Token cache stored at ~/.infrawise/mcp-credentials.json

  • Written with 0600 mode (best effort on Windows)

  • Read-only server — all calls are GET only

Available Tools

4 tools
get_general_recommendationsC

Retrieve strategic purchasing and licensing optimization recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_filterNoOptional subscription ID to filter results. When omitted, returns merged results across all accessible subscriptions.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_filterNoOptional subscription ID to filter results. When omitted, returns merged results across all accessible subscriptions.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_filterNoOptional subscription ID to filter results. When omitted, returns merged results across all accessible subscriptions.

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_filterNoOptional subscription ID to filter results. When omitted, returns merged results across all accessible subscriptions.

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 4 tool updatesv0.4.0
    • First observedget_general_recommendations
    • First observedget_idle_resources
    • First observedget_savings_summary
    • First observedget_sku_optimizations

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct aspect of cost optimization: general recommendations, idle resources, savings summary, and SKU optimizations. No overlap exists.

Naming Consistency5/5

All tools follow a consistent 'get_<noun_phrase>' pattern, making them predictable and easy to distinguish.

Tool Count5/5

With 4 tools covering the core categories of cost optimization (recommendations, idle resources, SKU, summary), the count is well-scoped for the domain.

Completeness4/5

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

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Kubernetes cluster cost analysis and optimization. Query costs, find savings opportunities, get rightsizing recommendations, and analyze pod spend across AKS, EKS, and GKE — directly from Claude
    6
    12
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Production-grade MCP server for enterprise Azure cost optimization, enabling spend anomaly detection, multi-tenant auditing, budget validation, and compliance-aware recommendations.
    1
    MIT

Latest Blog Posts

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