Tool reference
Every tool nable exposes to Claude, Cursor, and any MCP client.
You never call these by name, just ask, and nable picks the right one.
This page is generated from the source of finops-mcp on every release.
Cost visibility 23
benchmark_costsCompare this account's spend profile against anonymised peer group medians.
(account_id?, vertical?, days?)
compare_providersPROSide-by-side cost comparison across all configured providers.
(category?, start_date?, end_date?)
explain_cost_changePROExplain what recent cost changes actually mean for the business.
(compare_days?)
explain_recent_cost_driversExplain what drove cost changes across all connected providers in the last N days.
(days?, top_n?)
get_cost_historyReturn historical daily cost data for a specific provider + service. Used for trend analysis and understanding anomaly context.
(provider, service, account_id, days?)
get_cost_summaryGet total spend summarized by service, account, and region.
(provider?, category?, start_date?, end_date?, granularity?, account?)
get_cost_trendsCost trends over time broken down by day or month.
(provider?, category?, days?, granularity?)
get_costs_by_serviceCost breakdown by service, optionally filtered to a keyword.
(service_filter?, provider?, category?, start_date?, end_date?, account?)
get_data_transfer_costsIdentify significant data transfer cost line items from AWS Cost Explorer.
(start_date?, end_date?, threshold_usd?)
get_documentdb_costsAnalyze Amazon DocumentDB costs by cluster, with rightsizing recommendations.
(days?, account?)
get_focus_costsReturn unified cost data in FOCUS 1.2 format across all connected providers, clouds plus supported usage-based SaaS (e.g. Snowflake).
(start_date?, end_date?, provider?, group_by?)
get_marketplace_costsBreak down AWS Marketplace costs by product and vendor.
(days?, account?)
get_resource_cost_breakdown_awsPROReturn per-resource AWS cost detail from the Cost and Usage Report (CUR) via Athena. Includes unblended cost, on-demand equivalent, and effective savings from Savings Plans or Reserved Instances.
(start_date?, end_date?, service?, account_id?, min_cost_usd?, limit?)
get_saas_spend_summaryDedicated summary of all SaaS tool spending (Datadog, Snowflake, GitHub, etc.). Useful for understanding your software vendor bill separate from cloud infrastructure.
(start_date?, end_date?)
get_service_costGet cost breakdown for any named cloud service on AWS, Azure, or GCP.
(service_name, provider?, start_date?, end_date?, granularity?)
get_storage_infoShow the current storage backend (SQLite local or Postgres shared). Helps teams understand whether they're in single-engineer or shared mode.
get_top_cost_driversReturn the top N most expensive services across all configured providers.
(limit?, provider?, category?, start_date?, end_date?, account?)
get_total_spend_all_sourcesPROGrand total across ALL connected sources, cloud infrastructure + SaaS tools combined. The true "total technology spend" number.
(start_date?, end_date?)
get_traffic_cost_breakdownBreak down AWS network/data-transfer spend: how much, and where it goes.
(days?)
list_active_servicesList every cloud service that has spend in the period, across AWS, Azure, and GCP.
(provider?, start_date?, end_date?)
list_connected_providersList every cloud, SaaS, and LLM provider nable knows, each marked connected or not-configured, plus the active plan. The starting point for "what am I connected to" and for spotting which connector still needs credentials (each not-configured entry names the setup command to run).
run_full_cost_auditRun a full cost optimization audit across all connected AWS resources. Use this when the user explicitly asks for a full audit, cost scan, or optimization sweep. For simple cost questions ("what did I spend last month?") prefer get_cost_summary or get_costs_by_service, they are faster and cheaper.
(regions?, top_n?)
slice_costsSlice cloud cost any way you want. This is the flexible, moldable cost query: group and filter by ANY combination of dimensions, over any date range, instead of a fixed set of canned reports. Returns both the numbers and a `card` describing how to chart them (which the UI can render and pin to the dashboard).
(dimensions?, filters?, exclusions?, metric?, granularity?, order_by?, …)
Waste & rightsizing 35
audit_aws_wasteDeep AWS waste audit: scans EC2, EBS, RDS, Lambda, NAT Gateways, CloudWatch Logs, S3, and CloudTrail for waste. Returns findings sorted by monthly savings.
(regions?, checks?, account_id?)
audit_cloudwatch_logs_ia_opportunitiesFinds CloudWatch Log groups to migrate to Infrequent Access class. IA cuts ingestion cost 50% ($0.075 to $0.0375/GB). Candidates: groups older than 30 days with >1 GB/month still on STANDARD. Note: IA does not support metric filters or subscription filters.
(regions?)
audit_cloudwatch_metric_cardinalityAudits CloudWatch custom metric cardinality. Custom metrics above the 10,000 free-tier threshold cost $0.30/metric/month. High-cardinality dimensions like pod_id or request_id can cause thousands of metrics per microservice.
(regions?)
audit_cloudwatch_orphaned_alarmsFinds CloudWatch alarms on deleted resources. Standard alarms cost $0.10/month, composite $0.30/month. Terminated instances and deleted queues leave alarms stuck in INSUFFICIENT_DATA indefinitely.
(regions?, max_results?)
audit_duplicate_spendFind places where you're paying for the same capability through two different services or providers at once, the kind of waste a plain cost breakdown never surfaces because every line item looks legitimate on its own. Covers three patterns: multiple LLM inference paths active at the same time (e.g. AWS Bedrock Claude AND a direct Anthropic API key), multiple managed search/retrieval services (Kendra + OpenSearch), and two data platforms at once (Databricks + Snowflake).
(days?)
audit_ebs_snapshot_replicationAudits cross-region EBS snapshot replication for waste. Replicated snapshots cost $0.05/GB-month in each region. Finds orphaned copies (source volume deleted), excessive copies (more than 3 regions), and old copies where a newer copy exists.
(regions?, max_results?)
audit_efs_cross_az_mountsFinds EC2 instances mounting EFS from a different AZ. Cross-AZ mounts cost $0.02/GB in hidden transfer charges. Fix by adding a mount target per AZ.
(regions?)
audit_nlb_cross_zone_costsFinds NLBs with cross-zone load balancing enabled. Cross-zone LB charges $0.01/GB for cross-AZ traffic. Safe to disable when AZs have equal capacity.
(regions?)
audit_public_ipv4_addressesAudits public IPv4 addresses across AWS. Since Feb 2024, AWS charges $3.60/month per IP including stopped instances. Finds unattached Elastic IPs and IPs on stopped instances with release recommendations.
(regions?)
audit_rds_manual_snapshotsAudits RDS manual snapshots for waste. Manual snapshots never auto-expire and cost $0.095/GB-month. Finds orphaned snapshots (source DB deleted) and old snapshots past the retention threshold.
(regions?, age_threshold_days?)
audit_s3_intelligent_tieringFinds S3 buckets using Intelligent-Tiering where the monitoring fee exceeds savings. IT costs $0.0025/1,000 objects, making it more expensive than S3 Standard for objects smaller than 128KB.
(regions?, max_results?)
audit_s3_transfer_accelerationFinds S3 buckets with Transfer Acceleration enabled that won't benefit. TA adds $0.04-0.08/GB and is often forgotten. Flags buckets as waste if volume is under 1 GB/month, bucket is in us-east-1, or it is behind CloudFront. Returns a CLI disable command for each flagged bucket.
audit_spot_diversificationAudits ASGs using spot for instance type diversification. ASGs with fewer than 3 types are HIGH_RISK. Best practice: 5+ types with capacity-optimized allocation to avoid correlated interruptions.
(regions?)
audit_terraform_tagsScan Terraform state for resources missing required tags. Runs `terraform show -json` in tf_dir (or reads state_path directly). Required tags configured via FINOPS_REQUIRED_TAGS env var (comma-separated, default: team,environment,service).
(tf_dir, state_path?)
audit_textract_environment_wasteAnalyzes Textract spend by environment to find non-production API calls. Textract charges per page, QA and staging environments often call it unnecessarily. Identifies which Lambda functions or services are calling Textract in non-prod and estimates the monthly waste.
(days?)
cleanup_idle_resourcesDelete or release idle AWS resources. This is a REAL ACTION that terminates EC2 instances, releases EBS volumes, and frees Elastic IPs. Always runs in dry_run=True mode first so you can review what will be deleted. Requires explicit confirmation before setting dry_run=False.
(resource_ids?, resource_types?, regions?, min_idle_days?, dry_run?)
get_ecr_cleanup_recommendationsFind ECR repositories with old untagged container images consuming storage.
(older_than_days?, regions?)
get_ecs_rightsizing_recommendationsFind ECS Fargate services with over-provisioned CPU allocations.
(cpu_threshold?, regions?)
get_idle_load_balancersDetect ALBs, NLBs, and Classic ELBs with near-zero traffic over the past 14 days.
(regions?, request_threshold?)
get_idle_rds_instancesFind RDS instances with near-zero database connections over the past 14 days.
(regions?)
get_instance_deep_analysisDeep CloudWatch analysis for a specific EC2 instance. Returns CPU, network, and disk utilization percentiles, a rightsizing recommendation, and the Compute Optimizer recommendation if available.
(instance_id, region?, lookback_days?)
get_rds_rightsizing_recommendationsDetect over-provisioned RDS instances with low CPU utilization.
(cpu_threshold?, regions?)
get_ri_waste_detailPROIdentify wasted Reserved Instance spend from CUR RIFee line items.
(start_date?, end_date?, min_waste_usd?)
get_rightsizing_recommendationsAnalyze EC2 instances with low CPU utilization over the past 14 days and return rightsizing recommendations with projected monthly savings.
(avg_cpu_threshold?, max_cpu_threshold?)
get_s3_incomplete_multipart_uploadsFind S3 buckets with incomplete multipart uploads older than the threshold.
(older_than_days?)
identify_nonprod_scheduling_opportunitiesFinds non-production EC2 instances (dev/staging/test) running 24/7. Scheduling to business hours only saves 60-70% on compute costs.
(regions?, max_results?)
list_idle_resourcesScan for idle/wasted AWS resources that are costing money but doing nothing.
(resource_types?, regions?, min_idle_days?)
recommend_database_savings_plansRecommends AWS Database Savings Plans for RDS and Aurora spend. Database SPs (re:Invent 2025) offer up to 45% savings, separate from Compute SPs. Sizes a 1-year no-upfront plan to uncovered baseline spend.
recommend_lambda_snapstartFinds Java Lambda functions that should use SnapStart. SnapStart eliminates cold starts for free, replacing expensive provisioned concurrency.
(regions?)
recommend_spot_adoptionFinds on-demand EC2 instances to migrate to spot for 60-80% savings. Uses env tags, ASG membership, CPU variance, and Spot Advisor interruption data. Returns RECOMMENDED, POSSIBLE, or NOT_RECOMMENDED per instance.
(regions?)
scan_cloudwatch_wasteFinds CloudWatch Log Groups with no retention policy (infinite retention costs $0.03/GB-month). Returns groups, estimated monthly cost, recommended retention periods by log type, and CLI commands to fix top offenders.
(regions?)
scan_graviton_migration_opportunitiesFinds EC2 instances that can migrate to Graviton (arm64) for 20-40% savings. Returns ranked candidates with estimated monthly savings per instance.
(regions?)
scan_lambda_concurrency_wasteScans Lambda functions with provisioned concurrency for waste. Provisioned concurrency costs money even when idle. Returns functions below 50% avg utilization with savings estimates.
(regions?)
scan_s3_bucket_key_opportunitiesFinds S3 buckets using KMS encryption without Bucket Keys enabled. Bucket Keys reduce KMS API calls by up to 99%. Returns affected buckets with the CLI command to fix each one.
scan_waste_patternsScan for cloud cost waste patterns using nable's proprietary pattern library.
(account_id?, min_monthly_waste?, categories?)
Savings & commitments 12
dismiss_recommendationDismiss a recommendation you've decided not to act on (won't fix, accepted risk, etc.). Dismissed recommendations won't appear in open potential savings.
(recommendation_id, reason?)
get_commitment_analysisPROAnalyze Reserved Instance and Savings Plan coverage, utilization, and waste. Coverage %, utilization, and waste figures are free. Purchase recommendations with $ amounts require a Team plan (commitment_recommendations).
get_commitment_coverage_by_tagEstimate RI/SP commitment coverage for a specific tag slice, even when tagging is incomplete.
(tag_key, tag_value, tag_coverage_pct?)
get_effective_rate_profileAuto-detect the account's effective private rates by comparing actual billed amounts against public on-demand prices.
get_recommendation_learningWhat nable has learned about how YOU use recommendations, and how it adapts.
get_recommendation_qualityThe recommendation-quality flywheel: per recommendation type, how often recs get acted on and how close the predicted savings were to the measured realized savings. The verified-savings proof, and the signal for which recommendation types actually pay off.
get_savings_ledgerShows a clean summary of savings found, acted on, and verified.
(days?, account_id?)
get_savings_plan_showbackPROShow exactly how much each team saved from Savings Plans and Reserved Instances.
(tag_key?, start_date?, end_date?, include_ri?)
get_savings_summaryShow the realized-savings dashboard: how much nable has recommended, how much has been acted on, and how much has been verified as actually saved.
list_savings_recommendationsList tracked recommendations with their current status.
(status?, source?, limit?)
mark_recommendation_acted_onMark a savings recommendation as acted on (you've implemented the change). nable will then attempt to verify the change next time verify_savings() runs.
(recommendation_id)
verify_savingsAuto-verify acted-on recommendations by checking if changes were actually implemented in AWS (EC2 instance type changes, etc.).
AI & LLM spend 17
get_ai_billing_blind_spotsFlag AWS AI/Marketplace spend that bypasses AWS Cost Anomaly Detection, Bedrock (bills through Marketplace), other Marketplace AI/SaaS, and SageMaker. These line items are invisible to AWS's own anomaly detector, so a spike goes unnoticed until the invoice lands. nable watches them directly.
(days?)
get_ai_engineering_reportPROWhat your AI coding tools actually shipped, by model, and what it cost.
(days?, repos?, unit?)
get_ai_kpisPROFull AI cost health dashboard with actionable KPIs.
(days?, infra_total_usd?)
get_ai_spend_monitorPROOn-demand view of what nable's daily AI-spend monitor watches: a spike or drop on your token-spend series, plus commitment contracts that need attention (capacity under-utilized, enterprise minimum shortfall, commitment expiring). The scheduler runs this daily and alerts via Slack; this returns the same view on demand.
(days?)
get_bedrock_costsBreak down Amazon Bedrock costs by model and token type.
(days?, account?)
get_gpu_infra_costsReport spend status across serverless-GPU / inference-infra providers, Modal, Together, and Replicate. For the model-builder slice of AI startups this is the single largest variable cost, billed per GPU-second inside each vendor's own dashboard and invisible to any cloud bill.
(days?, start_date?, end_date?)
get_kendra_costsAnalyze Amazon Kendra costs by index, with edition and usage flags.
(account?)
get_langfuse_model_costsBreak down LLM spend and token usage by model from Langfuse observability data.
(days?, start_date?, end_date?)
get_langfuse_trace_volumeDaily trace and observation counts from Langfuse, usage volume over time.
(days?, start_date?, end_date?)
get_llm_commitment_analysisOptimize token spend against committed AI contracts: prepaid credits, Azure OpenAI PTUs, AWS Bedrock Provisioned Throughput, and enterprise rate cards. This is Reserved-Instance analysis for tokens. nable prices you against your ACTUAL negotiated terms, not list, which a provider dashboard cannot do.
(days?)
get_llm_cost_by_modelBreak down AI/LLM costs by individual model with efficiency metrics.
(days?, provider?)
get_llm_costsAggregate AI/LLM spend across all configured providers, OpenAI, Anthropic, AWS Bedrock, Azure OpenAI, and Vertex AI.
(days?, start_date?, end_date?)
get_llm_unit_economicsPROCalculate cost per unit of business value from AI APIs.
(metric_name?, metric_count?, days?)
get_llm_unit_economics_fullPROAI cost unit economics: cost per customer, MAU, API request, and gross margin impact.
(customers?, mau?, mrr?, api_requests?, days?)
get_textract_costsAnalyze AWS Textract costs by API type (sync vs async).
(days?, account?)
optimize_ai_spendRanked, dollar-quantified plan to cut your AI/LLM bill, across OpenAI, Anthropic, AWS Bedrock, Azure OpenAI, and Vertex.
(days?)
recommend_bedrock_model_routingAnalyzes Bedrock model usage to find invocations that could route to cheaper models without quality loss. Sonnet costs 20x more than Haiku. Classification, extraction, and short-context tasks rarely need Sonnet.
(days?)
Agent cost gate 5
check_action_policyAdvisory policy gate: should a proposed remediation action proceed?
(action_type, terraform_plan_json?, terraform_plan_file?, tf_dir?, helm_diff?, monthly_delta_usd?, …)
delete_alert_policyRemove a custom alert policy. The service will revert to the default threshold.
(policy_id)
estimate_change_costCost preflight for a proposed change: what it costs and whether it fits budget.
(terraform_plan_json?, terraform_plan_file?, tf_dir?, helm_diff?, monthly_delta_usd?, budget_name?)
estimate_terraform_costEstimate the monthly AWS cost change from a Terraform plan BEFORE applying it.
(plan_json?, plan_file?, tf_dir?)
set_alert_policyPROSet a custom alert policy for anomaly detection on a specific provider or service.
(provider?, service_pattern?, muted?, min_pct_change?, min_usd_change?, note?)
Kubernetes 12
compare_kubernetes_clustersCompare costs and efficiency across all configured Kubernetes clusters. Useful for multi-cluster setups (prod vs staging, region vs region).
create_kubernetes_waste_ticketsPROCreate tickets for Kubernetes waste findings: idle nodes, over-provisioned workloads, and orphaned Helm releases.
(min_monthly_waste?)
estimate_helm_diff_costEstimate the monthly cost impact of a helm diff or values.yaml change. Handles replicaCount, CPU/memory requests, instanceType, and nodeCount changes.
(diff_text, release_name?, current_replicas?, current_cpu_request?, current_memory_request?)
get_cluster_efficiencyKubernetes cluster efficiency score (0-100) with letter grade, per-namespace breakdown, and prioritised recommendations ranked by dollar impact.
(context?)
get_databricks_cluster_efficiencyAudit all Databricks clusters for efficiency issues and cost waste.
get_helm_release_costsCost breakdown by Helm release, shows what each release actually costs rather than raw deployment names. Detects orphaned releases wasting money.
(context?, namespace?)
get_kubernetes_cost_trendsKubernetes cost trend over time from stored daily snapshots. Shows whether cluster spend is growing, shrinking, or stable.
(days?, cluster?, namespace?, granularity?)
get_kubernetes_costsFull Kubernetes cost breakdown -- node costs attributed to namespaces, workloads, and labels. Detects wasted spend and rightsizing opportunities.
(context?, namespace?)
get_kubernetes_namespace_breakdownDeep-dive cost breakdown for a single Kubernetes namespace. Shows every workload, pod count, CPU/memory efficiency, and waste.
(namespace)
get_label_costsAggregate Kubernetes costs by any pod label across all namespaces. Great for chargeback: see spend by team, environment, app, or any label.
(label_key?, context?)
get_workload_costsDetailed Kubernetes workload cost breakdown with efficiency grades. Supports filtering by namespace and workload kind, sorting by cost or waste.
(namespace?, kind?, sort_by?, context?, limit?)
list_kubernetes_contextsList all Kubernetes contexts available in the local kubeconfig, and show which one is currently active. Use this to discover what to pass as the 'context' argument to get_kubernetes_costs.
Budgets 6
check_budget_statusCheck current spend against budgets. Shows how much has been spent, what's remaining, and whether any budgets are in warning or exceeded status.
(budget_name?)
delete_budgetDelete (deactivate) a budget by ID so it stops alerting and gating agent actions.
(budget_id)
get_credit_statusTrack AWS promotional-credit (Activate) burn-down and detect the moment billing flips from credits to cash, the cliff where an early startup first feels cost pain. AWS sends no native alert for this.
(months?)
list_budgetsList all configured budgets with their limits and scopes.
set_budgetCreate or update a spending budget. Budgets fire Slack alerts when spend crosses alert_at_pct, and fail CI checks when it crosses block_at_pct.
(name, limit_usd, scope_type?, scope_value?, period?, alert_at_pct?, …)
sync_budgets_from_yamlImport budgets from a budget.yml file. Idempotent, running twice is safe. Use this to version-control your spending limits alongside your infrastructure code.
(yaml_path)
Anomalies & alerts 6
acknowledge_anomalyMark an anomaly as acknowledged (dismissed). It will no longer appear in active anomalies.
(anomaly_id)
check_notification_configCheck which notification channels (Slack, Teams) are configured and active, returning each channel's status and what is missing when one is not set up. Use it to verify where anomaly alerts and digests will be delivered before relying on them.
create_anomaly_ticketsPROCreate tickets in Jira, Linear, or GitHub Issues for all active high/medium anomalies that don't already have a ticket. Uses the first configured ticketing provider.
(limit?)
get_account_anomaliesPRODetect accounts with unusual spend changes versus their prior period. Returns accounts that significantly spiked or dropped in cost. Requires a Team plan (org_reports).
(days_back?)
get_anomaliesReturn active (unacknowledged) cost anomalies detected from historical baselines.
(provider?, severity?, limit?, account?)
list_alert_policiesList all custom alert policies for anomaly detection.
Forecasting 3
forecast_azure_costsPROForecast Azure spend using Azure Cost Management's own forecast model.
(subscription_id?, end_date?)
forecast_costsPROForecast future cloud spend using Holt-Winters time-series modelling.
(account_id?, service?, horizon_days?, history_days?)
forecast_llm_costsPROForecast AI/LLM token spend and, if you give a balance, the date your credits or commitment run out. Uses nable's per-account forecaster (Holt-Winters with linear and naive fallbacks by history length) on your daily token-cost series.
(horizon_days?, balance_usd?)
Teams & attribution 8
get_business_metricsPROReturn stored business metrics and trend over time.
(history_days?)
get_costs_by_teamReturn cloud costs broken down by engineering team, using tag attribution rules.
(start_date?, end_date?, provider?)
get_efficiency_scorecardFinOps efficiency scorecard, a 0–100 score with letter grade across 5 dimensions: compute efficiency, waste reduction, commitment coverage, tag hygiene, and anomaly response. Tracked over time so you can see if you're improving.
(scope?, team?, environment?, provider?)
get_tag_cost_breakdown_curPROBreak AWS costs down by a resource tag using CUR line-item data via Athena.
(tag_key?, start_date?, end_date?, cost_type?)
get_team_scorecardsEfficiency scorecard for every team, side by side. Teams are discovered from your cost attribution tags (team=X). Shows which teams are leading and which need help.
get_unit_economicsPROConnect your total cloud and SaaS spend to business metrics.
(period_days?)
run_attribution_nowFetch tagged cost data from AWS/Azure/GCP and store team attributions. Run this after setting up tag_rules.yaml to populate team cost data.
(start_date?, end_date?)
set_business_metricsPROStore your business metrics so nable can connect cloud costs to business outcomes.
(arr_usd?, mrr_usd?, mau?, dau?, paying_customers?, api_calls_monthly?, …)
Organizations & accounts 8
generate_account_dashboardGenerate a cost dashboard for the account and open it in your browser.
(account_id?, open_browser?, push_to_notion?)
get_cost_summary_all_accountsFan out cost queries across ALL configured AWS accounts and return a combined view sorted by total spend. Shows each account's total and top services.
(start_date?, end_date?, granularity?)
get_org_cost_summaryPROGet a cost rollup across all AWS Organization accounts: total spend, per-account breakdown sorted by spend, and top services per account. Requires a Team plan (org_reports).
(days_back?)
get_ou_cost_breakdownPROBreak costs down by AWS Organizational Unit (OU). When OUs map to departments or teams, this gives you a clean chargeback report. Requires a Team plan (org_reports).
(days_back?)
get_top_spending_accountsPROShow the highest-spending AWS accounts in the organization. Requires a Team plan (org_reports).
(limit?, days_back?)
list_accountsList all cloud accounts, subscriptions, and SaaS org IDs that nable can see, grouped by provider: AWS account ids, Azure subscriptions, GCP billing accounts, and each SaaS provider's org. Use it to find the account id or name other tools accept as their account argument.
(provider?)
list_aws_accountsList all AWS accounts configured in ~/.finops-mcp/accounts.yaml.
list_org_accountsList all AWS Organization member accounts, discovering them via the AWS Organizations API. Syncs account metadata to local DB for future queries. Account listing is free. Detailed cost rollup across accounts requires a Team plan.
Azure 6
get_azure_advisor_recommendationsAzure Advisor cost recommendations, with Microsoft-computed annual savings.
(subscription_id?, limit?)
get_azure_budgetsRead the budgets you already set in Azure and report consumption against each.
(subscription_id?)
get_azure_cost_by_dimensionBreak Azure spend down by any dimension: service, resource group, location, or meter.
(dimension, start_date?, end_date?, subscription_id?, limit?)
get_azure_reservation_utilizationPROFetch Azure reservation utilization summaries from the Capacity API.
(start_date?, end_date?)
get_azure_vm_rightsizingFind idle and oversized Azure VMs from Azure Monitor CPU, with real dollar cost.
(subscription_id?, lookback_days?, limit?, max_vms_scanned?)
get_resource_cost_breakdown_azurePROReturn per-resource Azure cost detail via the Cost Management Query API.
(start_date?, end_date?, subscription_id?, resource_group?, min_cost_usd?, limit?)
GCP 2
audit_gcp_wasteDeep GCP waste audit: scans Compute Engine across all zones/regions for unattached persistent disks, reserved-but-idle static IPs, old snapshots, and idle VMs (CPU joined from Cloud Monitoring). Returns findings sorted by estimated monthly savings.
(projects?, checks?, idle_days?, snapshot_age_days?)
get_gcp_recommendationsPull Google's native Recommender API cost recommendations for your GCP projects.
(projects?, recommenders?)
Databricks 3
get_databricks_costsReturn Databricks workspace cost breakdown for the given date range.
(start_date?, end_date?)
get_databricks_dbu_breakdownShow DBU (Databricks Unit) consumption by cluster, job, and cluster type.
(start_date?, end_date?)
get_databricks_job_costsShow cost and DBU breakdown by Databricks job run.
(start_date?, end_date?, top_n?)
Tickets & PRs 6
create_rightsizing_ticketsPROCreate tickets for rightsizing recommendations, over-provisioned EC2, RDS, and other resources that could be downsized to save money.
(min_monthly_savings?, provider?)
create_scorecard_ticketsPROCreate tickets for scorecard dimensions scoring below a threshold. Helps teams track and remediate FinOps efficiency gaps.
(score_threshold?, team?)
create_ticketPROCreate a ticket in the configured ticketing system (Jira, Linear, or GitHub Issues) with a custom title and body. Use this for any finding, recommendation, or action item that doesn't fit a specific category.
(title, body, priority?, labels?)
generate_terraform_tag_fixesGenerate HCL patches for all open tag violations in tf_dir. Shows a unified diff per .tf file, does NOT write to disk. Run audit_terraform_tags first to populate violations.
(tf_dir)
open_rightsizing_prPROApply rightsizing recommendations to Terraform source, optionally opening a GitHub PR.
(tf_dir, github_repo?, recommendation_ids?, resource_overrides?, branch?, base_branch?, …)
open_terraform_tag_prPROApply tag fixes to .tf files and open a GitHub PR. Requires GITHUB_TOKEN env var and a git remote configured for github_repo.
(tf_dir, github_repo, branch?, base_branch?, pr_title?)
Reports & exports 17
cancel_report_subscriptionCancel (deactivate) a scheduled report subscription.
(subscription_id)
export_board_summaryPROGenerate the cost section of a board / investor update as markdown.
(period_days?)
export_cost_reportExport a cost report as HTML (printable to PDF) and/or CSV. Saved to ~/.finops/exports/. No Claude Desktop required to open.
(title?, sections?, formats?, start_date?, end_date?, open_file?)
export_cost_report_csvRuns the full cost audit and exports results to a CSV file.
(output_path?, regions?, top_n?)
fetch_invoice_emailsFetch unread invoice emails from the configured IMAP mailbox, extract amounts, and store them as cost entries. Solves the billing API gap for vendors like PagerDuty, New Relic, and GitHub Enterprise.
get_tableau_connection_infoReturns the Tableau Web Data Connector URL for connecting Tableau Desktop to nable.
(port?)
list_report_subscriptionsList all active report subscriptions, their names, schedules, sections, and delivery channels.
publish_cost_report_to_notionRuns the full cost audit and publishes results to your team's Notion page.
(regions?)
push_to_n8nPRORuns the cost audit and pushes results to your n8n workflow via webhook.
(event_type?, regions?)
push_weekly_insightPROPush a rich weekly cost intelligence summary to Slack right now.
send_digest_nowPROManually trigger a cost digest to Slack and/or Teams right now. Normally this sends automatically at 09:00 UTC daily.
send_onboarding_emailSend an onboarding email to a specific address.
(to_email, variant?, days_left?)
send_report_nowPROTrigger a report subscription immediately, regardless of its schedule.
(subscription_id)
send_weekly_digest_nowPROImmediately send the weekly email digest to the configured recipient. Includes spend summary, anomalies, and top rightsizing recommendations. Works without Claude, pure standalone email.
start_dashboard_serverStarts a local web dashboard you can open in a browser. Binds to localhost by default. Pass expose=true to bind all interfaces so others on your network can reach it (plain HTTP, so only do this on a trusted network or behind a TLS proxy).
(port?, host?, expose?)
subscribe_to_reportPROCreate a scheduled report subscription. Reports are delivered automatically to Slack channels and/or email addresses on the configured schedule.
(name, sections, frequency?, slack_channels?, email_addresses?, team?, …)
take_snapshot_nowManually trigger a cost snapshot right now (fetches yesterday's costs from all providers). Normally this runs automatically at 01:00 UTC daily.
Saved views 6
get_pinned_viewRe-run a pinned view by id and return fresh cost data plus its rendered card. Read-only: nothing is modified, the saved definition is executed against current data.
(view_id)
get_viewRun a pre-built cost view by name. These are standard reports your whole team can share.
(view, tag_key?, tag_value?, provider?, days?)
list_pinned_viewsList the cost cards pinned to the dashboard: every saved view with its id, title, template, metric and dimensions, so you can re-run one with get_pinned_view(id) or remove one with unpin_view(id).
list_viewsList all pre-built cost views available to your team.
pin_viewPin a cost slice to the dashboard as a saved card. Takes the same slicing arguments as slice_costs (dimensions / filters / exclusions / metric / etc.), plus a title and a rolling lookback `days`. The pinned card re-runs its slice live on each dashboard load over the trailing `days`, so it always shows fresh numbers. scope: "instance" (shared on this nable) or "me". Read-only on the cloud: this only saves a view definition locally. Args: title: Card title shown on the dashboard. dimensions: Fields to group by (as in slice_costs). filters: Include-filters, {field: [values]}. exclusions: Exclude-filters, {field: [values]}. metric: "cost" (default) or another supported metric. granularity: "DAILY" or "MONTHLY". order_by: Sort field, defaults to the metric descending. limit: Max rows in the card. days: Look-back window in days (default 30). scope: "instance" (default) pins for this machine.
(title, dimensions?, filters?, exclusions?, metric?, granularity?, …)
unpin_viewRemove a pinned cost card from the dashboard by id, so the dashboard stops tracking that saved view. The underlying saved view is not deleted, only unpinned; pin_view() puts it back.
(view_id)
Platform & admin 9
check_connector_healthActively test every configured connector with a real API call. Reports health status, last successful data time, and fix instructions for failures.
create_api_keyCreate a new API key for a team member. Requires admin role in shared mode.
(name, role?, email?, scope_team?, scope_provider?)
get_nable_roiShows the return on investment from using nable: savings found, acted on, and verified versus the cost of the tool itself.
(period_days?)
list_api_keysList all active API keys (names, roles, scopes). Raw keys are never shown. Requires admin role in shared mode.
list_profilesList all configured nable profiles (for multi-account or multi-client setups).
list_vault_credentialsList the names of credentials stored in the encrypted vault (never the values).
revoke_api_keyRevoke an API key by ID. The key is soft-deleted, it stops working immediately. Requires admin role. Use list_api_keys to find the key ID first.
(key_id)
what_can_nable_doShow everything nable can do, tailored to what you've connected.
(detailed?)
whoamiShow the current identity and access level. Works in both permissive and shared auth mode.
Other 1
nable_setup_statusAgent-driven onboarding: what is connected, what credentials are already on this machine, and the exact command to connect each remaining provider.