@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.
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
0600mode (best effort on Windows) - Read-only server β all calls are GET only











