Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
3c89c43
feat: add Start-FinOpsMultitool cmdlet for interactive FinOps scanner…
May 19, 2026
1a63159
feat(multitool): cost access warnings, tag query fixes, MG hierarchy …
May 27, 2026
8db8eaa
perf(multitool): optimize tag cost query pacing and filter low-covera…
May 27, 2026
981e4c9
perf: parallel per-sub cost queries in Get-CostByTag
May 27, 2026
d3d7c1f
fix: filter Azure system tags in Get-CostByTag
May 27, 2026
a5fd3e3
fix: dynamic tag cap, remove Contact from system filter
May 27, 2026
54129e2
Add TUI, Hub data routing, and display fixes for FinOps Multitool
May 28, 2026
35790a6
Add TUI README
May 28, 2026
9455685
Add contextual FinOps guidance after each scan result
May 28, 2026
e65b62d
Add tenant picker to TUI for multi-tenant support
May 28, 2026
f09870d
Auto-invoke when script is run directly
May 28, 2026
c735364
Severity-colored guidance with FinOps education context
May 28, 2026
a5e4190
Enrich Hub cost data with live forecast from Cost Management API
May 28, 2026
c976654
Colorize dollar amounts green, budget rows by risk severity
May 28, 2026
1fbc9c0
Fix variable collision: forecast total was overwriting scan count
May 28, 2026
92d17d9
Fix forecast: show full-month projection (actual + remaining forecast)
May 28, 2026
caf4cb2
Fix tag coverage: query ARG for true total/untagged counts when using…
May 28, 2026
62e27b8
Remove Hub coverage caveat from tag guidance, lower resource cost thr…
May 28, 2026
e730754
Fix Cost by Tag guidance: use max untagged cost per tag instead of su…
May 28, 2026
74127a7
Add permission context and diagnostics for missing scan data
May 28, 2026
af92edf
Update TUI README with multi-tenant, guidance, permissions, and Hub e…
May 28, 2026
5215c38
Add styled HTML report export, pre-populated export path, enhanced su…
May 28, 2026
a8654bf
Add MCP server exposing all scan modules as AI-callable tools
May 28, 2026
0d2c2d5
feat(agent-skills): add FinOps multitool skill ecosystem
Jun 1, 2026
0be59a2
Add cost data source routing to FinOps multitool
Jun 1, 2026
3febeda
Fix: throttle-resilient MG cost-scope resolution in FinOps Multitool
Jun 2, 2026
53f9b86
perf(cost-trend): single grouped MG query + single-sub fast path
Jun 2, 2026
f57b4a9
perf(savings): MG query grouped by SubscriptionId + single-sub fast path
Jun 2, 2026
10fc88b
feat(finops-multitool): friendly rotating throttle messages, Budget H…
Jun 2, 2026
cb593b3
feat(finops-multitool): add carbon, unit economics, and legacy resour…
Jun 3, 2026
4f4fee9
fix(finops-multitool): use KQL verbatim string for legacy VM regex
Jun 3, 2026
26d8c1e
feat(finops-multitool): derive AI workload KPIs from FinOps Hub expor…
Jun 3, 2026
9b4e761
Show a single status message while waiting out rate limits
Jun 3, 2026
c779195
Port ResourceId-based cost-by-tag engine to FinOps Multitool
Jun 3, 2026
285239d
Quietly handle management group access denial in hierarchy load
Jun 3, 2026
4802b27
fix(finops-multitool): correct MACC consumption reading (consumed = o…
Jun 4, 2026
e8b1f12
feat(finops-multitool): permission-aware commitment & reservation sca…
Jun 4, 2026
9ee96a4
Update FinOps Multitool
Jun 4, 2026
ad4d9b6
Update FinOps Multitool
Jun 5, 2026
94d31ce
Update FinOps Multitool
Jun 5, 2026
a409555
Update FinOps Multitool
Jun 5, 2026
3c8eaa1
Update FinOps Multitool
Jun 5, 2026
7d6b5e3
Update FinOps Multitool
Jun 6, 2026
78c90ac
Update FinOps Multitool
Jun 6, 2026
423735c
Update FinOps Multitool
Jun 6, 2026
d4ee137
Update FinOps Multitool
Jun 7, 2026
83af32c
Update FinOps Multitool
Jun 7, 2026
6263227
Update FinOps Multitool
Jun 7, 2026
b7f7867
Update FinOps Multitool
Jun 7, 2026
151a223
Update FinOps Multitool
Jun 7, 2026
687bfe9
Update FinOps Multitool
Jun 8, 2026
b550f15
Update FinOps Multitool
Jun 8, 2026
44c1118
Update FinOps Multitool
Jun 11, 2026
8290178
Update FinOps Multitool
Jun 11, 2026
3e6df7c
Update FinOps Multitool
Jun 11, 2026
ead35b3
Update FinOps Multitool
Jun 15, 2026
20474c0
Update FinOps Multitool
Jun 15, 2026
e58931b
Update FinOps Multitool
Jun 15, 2026
532b176
Update FinOps Multitool
Jun 15, 2026
1ef543e
Update FinOps Multitool
Jun 15, 2026
3ba8107
Update FinOps Multitool
Jun 18, 2026
ca47281
Update FinOps Multitool
Jun 19, 2026
ae181d7
Update FinOps Multitool
Jun 19, 2026
0540b94
Update FinOps Multitool
Jul 2, 2026
a13b7a0
Update FinOps Multitool
Jul 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .vscode/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"servers": {
"finops-multitool": {
"type": "stdio",
"command": "pwsh",
"args": ["-NoProfile", "-File", "${workspaceFolder}/src/powershell/Private/FinOpsMultitool/Start-McpServer.ps1"],
"env": {
"FINOPS_WRITE_MODE": "ReadOnly"
}
}
}
}
6 changes: 6 additions & 0 deletions docs-mslearn/TOC.yml
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,12 @@
href: toolkit/powershell/cost/remove-finopscostexport.md
- name: Start-FinOpsCostExport
href: toolkit/powershell/cost/start-finopscostexport.md
- name: FinOps Multitool
items:
- name: FinOps Multitool commands
href: toolkit/powershell/multitool/finops-multitool-commands.md
- name: Start-FinOpsMultitool
href: toolkit/powershell/multitool/start-finopsmultitool.md
- name: FinOps hubs
items:
- name: FinOps hubs commands
Expand Down
11 changes: 10 additions & 1 deletion docs-mslearn/toolkit/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: FinOps toolkit changelog
description: Review the latest features and enhancements in the FinOps toolkit, including updates to FinOps hubs, Power BI reports, and more.
author: MSBrett
ms.author: brettwil
ms.date: 05/12/2026
ms.date: 07/02/2026
ms.topic: reference
ms.service: finops
ms.subservice: finops-toolkit
Expand Down Expand Up @@ -32,6 +32,15 @@ The following section lists features and enhancements that are currently in deve
- Added 4 agents (CFO, FinOps practitioner, database query, hubs agent), 5 commands (`/ftk-hubs-connect`, `/ftk-hubs-healthCheck`, `/ftk-mom-report`, `/ftk-ytd-report`, `/ftk-cost-optimization`), and an output style.
- Linked to the existing KQL query catalog in `src/queries/` from the plugin.

### FinOps Multitool v15.0.0

- **Added**
- Added the FinOps Multitool, which scans an Azure environment for cost optimization, governance, and FinOps insights through a cross-platform terminal UI and an MCP server for AI agents ([#2155](https://github.com/microsoft/finops-toolkit/pull/2155)).
- Includes 30 read-only scan modules covering orphaned resources, idle VMs, storage tier advice, Azure Hybrid Benefit, tag and policy inventory and recommendations, cost data, cost trend, cost by tag, resource costs, reservation advice, commitment utilization, realized savings, budget status, anomaly alerts, Advisor recommendations, billing structure, and contract info.
- The MCP server exposes 40 tools (36 read-only and 4 gated write/remediation) over the Model Context Protocol, with a configurable write-safety policy that defaults to read-only.
- Cost scans prefer the FinOps hub's Azure Data Explorer or Microsoft Fabric Kusto database and push aggregation into the engine to scale to large environments, with a storage reader as a small-dataset fallback.
- Added a companion set of agent skills that teach AI agents to use the server and route findings into the wider FinOps practice.

### Bicep Registry module pending updates

- Cost Management export modules for subscriptions and resource groups.
Expand Down
3 changes: 2 additions & 1 deletion docs-mslearn/toolkit/finops-toolkit-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: FinOps toolkit overview
description: Learn how the FinOps toolkit helps you automate and extend the Microsoft Cloud with starter kits, scripts, and advanced solutions to improve FinOps practices.
author: flanakin
ms.author: micflan
ms.date: 04/01/2026
ms.date: 07/02/2026
ms.topic: concept-article
ms.service: finops
ms.subservice: finops-toolkit
Expand Down Expand Up @@ -33,6 +33,7 @@ The FinOps toolkit is an ever-evolving collection of tools and resources. The fo
- [Governance workbook](./workbooks/governance.md) – Central hub for governance.
- [Azure Optimization Engine](./optimization-engine/overview.md) – Extensible solution for custom optimization recommendations.
- [PowerShell module](./powershell/powershell-commands.md) – Automate and manage FinOps solutions and capabilities.
- [FinOps Multitool](./powershell/multitool/finops-multitool-commands.md) – Scan an Azure environment for cost, governance, and optimization insights from a terminal UI or an MCP server for AI agents.
- [Bicep Registry modules](./bicep-registry/modules.md) – Official repository for Bicep modules.
- [Open data](open-data.md) – Data available for anyone to access, use, and share without restriction.
- [Pricing units](open-data.md#pricing-units) – Microsoft pricing units, distinct units, and scaling factors.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
title: FinOps Multitool commands
description: Learn about PowerShell commands in the FinOpsToolkit module that scan an Azure environment for cost optimization, governance, and FinOps insights.
author: z-larsen
ms.author: zlarsen
ms.date: 07/02/2026
ms.topic: reference
ms.service: finops
ms.subservice: finops-toolkit
ms.reviewer: micflan
#customer intent: As a FinOps user, I want to understand what FinOps Multitool commands are available in the FinOpsToolkit module.
---

# FinOps Multitool commands

The FinOps Multitool scans an Azure environment for cost optimization, governance, and FinOps insights and grounds its findings in your live resource state. It surfaces cost trends, orphaned resources, idle VMs, tag hygiene, reservation and savings plan utilization, Azure Hybrid Benefit opportunities, budgets, anomaly alerts, and policy compliance.

The Multitool delivers the same scan engine through two interfaces:

- **Terminal UI (TUI)** – An interactive, cross-platform terminal experience launched with [Start-FinOpsMultitool](start-finopsmultitool.md).
- **MCP server** – A Model Context Protocol server (`Start-McpServer.ps1`) that exposes the scans as tools for AI agents like GitHub Copilot.

<br>

## Commands

- [Start-FinOpsMultitool](start-finopsmultitool.md) – Launch the interactive FinOps Multitool terminal UI.

<br>

## Scan coverage

The Multitool includes 30 scan modules across the following categories:

- **Optimization** – Orphaned resources, idle VMs, storage tier advice, and Azure Hybrid Benefit opportunities.
- **Governance** – Tag inventory and recommendations, and policy inventory and recommendations.
- **Cost analysis** – Cost data, cost trend, cost by tag, and top resources by cost.
- **Commitments** – Reservation advice, commitment utilization, and realized savings.
- **Monitoring** – Budget status and anomaly alerts.
- **Advisor** – Azure Advisor cost recommendations.
- **Account** – Billing structure, contract info, and tenant hierarchy.

Analysis scans are read-only and use Reader or Cost Management Reader access.

<br>

## FinOps Hub data paths

When a [FinOps hub](../../hubs/finops-hubs-overview.md) is present, cost scans read from the hub and choose the path automatically:

- **Kusto database (recommended for large environments)** – When the hub has an Azure Data Explorer or Microsoft Fabric cluster, the Multitool discovers it through Azure Resource Graph and pushes aggregation into the engine, returning only summarized results. This scales to large datasets without loading raw cost rows into PowerShell. To query a local hub on your own hardware, set the `FINOPS_HUB_KUSTO_URI` environment variable to a local Kusto endpoint (optionally set `FINOPS_HUB_KUSTO_DB`, which defaults to `Hub`).
- **Storage reader (small-dataset fallback)** – When no Kusto cluster is reachable, the Multitool reads the hub's storage export and aggregates in PowerShell. Use this for smaller datasets.

If no hub is available, cost scans use the live Cost Management API.

<br>

## MCP server for AI agents

`Start-McpServer.ps1` exposes the scan engine as 40 tools over the Model Context Protocol (`2024-11-05`) via stdio: 36 read-only analysis tools (including `run_full_scan` and `detect_cost_data_source`) and four write/remediation tools. The write tools are dry-run by default, gated by a configurable write-safety policy, and disabled unless the `FINOPS_WRITE_MODE` environment variable is setβ€”the server defaults to `ReadOnly`, which blocks all writes.

A companion set of agent skills teaches AI agents to use the server and route findings into the wider FinOps practice. The `finops-multitool` skill acts as the hub and hands off to FinOps-adjacent skills for reporting, allocation, governance, unit economics, and more.

<br>

## Give feedback

Let us know how we're doing with a quick review. We use these reviews to improve and expand FinOps tools and resources.

<!-- prettier-ignore-start -->
> [!div class="nextstepaction"]
> [Give feedback](https://portal.azure.com/#view/HubsExtension/InProductFeedbackBlade/extensionName/FinOpsToolkit/cesQuestion/How%20easy%20or%20hard%20is%20it%20to%20use%20the%20FinOps%20toolkit%20PowerShell%20module%3F/cvaQuestion/How%20valuable%20are%20the%20FinOps%20toolkit%20PowerShell%20module%3F/surveyId/FTK/bladeName/PowerShell/featureName/Multitool)
<!-- prettier-ignore-end -->

If you're looking for something specific, vote for an existing or create a new idea. Share ideas with others to get more votes. We focus on ideas with the most votes.

<!-- prettier-ignore-start -->
> [!div class="nextstepaction"]
> [Vote on or suggest ideas](https://github.com/microsoft/finops-toolkit/issues?q=is%3Aissue%20is%3Aopen%20label%3A%22Tool%3A%20PowerShell%22%20sort%3A"reactions-%2B1-desc")
<!-- prettier-ignore-end -->

<br>

## Related content

Related solutions:

- [FinOps toolkit PowerShell module](../powershell-commands.md)
- [FinOps hubs](../../hubs/finops-hubs-overview.md)

<br>
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
title: Start-FinOpsMultitool command
description: Launch the FinOps Multitool interactive terminal UI to scan an Azure environment for cost optimization, governance, and FinOps insights.
author: z-larsen
ms.author: zlarsen
ms.date: 07/02/2026
ms.topic: reference
ms.service: finops
ms.subservice: finops-toolkit
ms.reviewer: micflan
#customer intent: As a FinOps user, I want to understand how to use the Start-FinOpsMultitool command in the FinOpsToolkit module.
---

# Start-FinOpsMultitool command

The **Start-FinOpsMultitool** command launches the FinOps Multitool interactive terminal UI (TUI). The tool authenticates to Azure, discovers accessible subscriptions, and runs the scan modules you selectβ€”covering cost trends, orphaned resources, idle VMs, tag hygiene, reservation and savings plan utilization, Azure Hybrid Benefit opportunities, budgets, anomaly alerts, and policy compliance.

Results are rendered in the terminal with export options for Excel, CSV, JSON, and Power BI. The scan modules are read-only.

The command runs on PowerShell 7+ (cross-platform) and requires the `Az.Accounts`, `Az.ResourceGraph`, and `Az.Storage` modules with at least Reader access on the target scope.

<br>

## Syntax

```powershell
Start-FinOpsMultitool `
[-SubscriptionId <string>] `
[-OutputPath <string>] `
[<CommonParameters>]
```

<br>

## Parameters

| Name | Description |
| ----------------- | -------------------------------------------------------------------------------------------------------------- |
| `‑SubscriptionId` | Optional. Scopes the scan to a single subscription. When omitted, all accessible subscriptions are discovered. |
| `‑OutputPath` | Optional. Directory for exported result files. Defaults to the tool's working folder. |

<br>

## Examples

The following examples demonstrate how to use the Start-FinOpsMultitool command.

### Launch the Multitool

```powershell
Start-FinOpsMultitool
```

Launches the terminal UI. You're prompted to authenticate, select a tenant if needed, and choose the subscriptions and modules to scan.

### Scope to a single subscription

```powershell
Start-FinOpsMultitool -SubscriptionId '00000000-0000-0000-0000-000000000000'
```

Launches the terminal UI scoped to a single subscription.

### Set an output path for exports

```powershell
Start-FinOpsMultitool -OutputPath './finops-results'
```

Launches the terminal UI and writes exported result files to the specified directory.

<br>

## FinOps Hub data paths

When a [FinOps hub](../../hubs/finops-hubs-overview.md) is present, choosing the **FinOps Hub** data source prefers the hub's Azure Data Explorer or Microsoft Fabric Kusto databaseβ€”aggregation is pushed into the engine and only summarized results are returned, so large hubs are never loaded into PowerShell. To query a local hub on your own hardware, set `FINOPS_HUB_KUSTO_URI` to a local Kusto endpoint. When no Kusto cluster is reachable, the Multitool falls back to reading the hub storage export, which is intended for smaller datasets. For more information, see [FinOps Multitool commands](finops-multitool-commands.md).

<br>

## Related content

Related solutions:

- [FinOps Multitool commands](finops-multitool-commands.md)
- [FinOps toolkit PowerShell module](../powershell-commands.md)
- [FinOps hubs](../../hubs/finops-hubs-overview.md)

<br>
8 changes: 6 additions & 2 deletions docs-mslearn/toolkit/powershell/powershell-commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: FinOps toolkit PowerShell module
description: Automate and scale your FinOps efforts using the FinOps toolkit PowerShell module, which includes commands to manage FinOps solutions.
author: flanakin
ms.author: micflan
ms.date: 04/01/2026
ms.date: 07/02/2026
ms.topic: reference
ms.service: finops
ms.subservice: finops-toolkit
Expand All @@ -19,7 +19,7 @@ The FinOps toolkit PowerShell module is a collection of commands to automate and

## Install the module

The FinOps toolkit module requires PowerShell 7, which is built into [Azure Cloud Shell](https://portal.azure.com/#cloudshell) and supported on all major operating systems.
The FinOps toolkit module requires PowerShell 7, which is built into [Azure Cloud Shell](https://portal.azure.com/#cloudshell) and supported on all major operating systems.

Azure Cloud Shell comes with PowerShell 7 and Azure PowerShell preinstalled. If you aren't using Azure Cloud Shell, you need to [Install PowerShell](/powershell/scripting/install/installing-powershell) first and then run the following commands to install Azure PowerShell:

Expand Down Expand Up @@ -59,6 +59,10 @@ The FinOps toolkit PowerShell module includes commands to manage FinOps solution
- [Remove-FinOpsCostExport](cost/Remove-FinOpsCostExport.md) – Delete a Cost Management export and optionally data associated with the export.
- [Start-FinOpsCostExport](cost/Start-FinOpsCostExport.md) – Initiates a Cost Management export run for the most recent period.

### FinOps Multitool commands

- [Start-FinOpsMultitool](multitool/start-finopsmultitool.md) – Launch the interactive FinOps Multitool terminal UI to scan for cost, governance, and optimization insights.

### FinOps hubs commands

- [Deploy-FinOpsHub](hubs/Deploy-FinOpsHub.md) – Deploy your first hub or update to the latest version.
Expand Down
5 changes: 5 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,11 @@ Automate and extend the Microsoft Cloud with starter kits, scripts, and advanced
<div>Automate and manage FinOps solutions and capabilities.</div>
<a href="./powershell">Learn more</a>
</div>
<div class="ftk-tile">
<div>πŸ› οΈ FinOps Multitool</div>
<div>Scan your environment for cost, governance, and optimization insights.</div>
<a href="./multitool">Learn more</a>
</div>
<div class="ftk-tile">
<div>🦾 Bicep Registry</div>
<div>Official repository for Bicep modules.</div>
Expand Down
Loading