Skip to main content
Glama
getnable

nable (finops-mcp)

by getnable

Estimate change cost

estimate_change_cost

Estimate the monthly and annual cost delta of a Terraform or Helm change before applying it, and check it against your budget to get an ok, warn, or over_budget verdict.

Instructions

Cost preflight for a proposed change: what it costs and whether it fits budget.

Agent-native. Call this BEFORE applying an infrastructure change to get a machine verdict (ok / warn / over_budget / no_budget) plus the monthly and annual cost delta and the budget headroom. It estimates and checks, it never applies anything. Changes nothing. It is not marked read-only only because tf_dir runs terraform plan there, which executes that directory's provider plugins.

Describe the change one of these ways:

  • terraform_plan_json / terraform_plan_file / tf_dir : a Terraform plan

  • helm_diff : output of helm diff upgrade or a values.yaml diff

  • monthly_delta_usd : a known monthly cost delta (escape hatch for any change the estimators don't parse, e.g. "launch a db.r6g.4xlarge")

budget_name selects which budget to check against; default is the first active budget. With no budget configured the verdict is "no_budget" and the cost delta is still returned.

Good triggers: "will this fit my budget", "what will this terraform/helm change cost before I apply it", "cost preflight", "can the agent afford this change". Examples: - "What would this change cost per month?" - "Preflight the cost of this terraform plan"

Input Schema

NameRequiredDescriptionDefault
tf_dirNo
helm_diffNo
budget_nameNo
monthly_delta_usdNo
terraform_plan_fileNo
terraform_plan_jsonNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.213
  2. Removedv0.8.181
  3. First observedv0.8.96

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Directly reconciles with the annotations: it explains that it never mutates anything and that readOnlyHint=false exists only because tf_dir triggers `terraform plan` and its provider plugins. It also discloses the verdict vocabulary (ok/warn/over_budget/no_budget) and the no-budget fallback behavior — context the annotations cannot convey.

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?

Front-loaded with the core verdict, then the safety caveat, then the input routes and triggers. Slightly repetitive ('cost preflight' restated in triggers and examples), but every section carries usable signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by naming the primary return fields: machine verdict, monthly and annual cost delta, and budget headroom. Combined with the mutation disclaimer, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, yet the description documents all six parameters meaningfully: it groups terraform_plan_json/terraform_plan_file/tf_dir/helm_diff as alternative ways to describe the change, explains monthly_delta_usd as an escape hatch with a concrete example, and explains budget_name's default and the no-budget outcome. The only gap is precedence when multiple inputs are supplied.

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?

States a specific verb and resource ('Cost preflight for a proposed change') and immediately names the scope: estimates and checks budget fit but never applies anything. The distinction from siblings such as get_cost_summary and check_ai_budget is clear from the 'proposed change before apply' framing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit timing guidance: 'Call this BEFORE applying an infrastructure change', plus good triggers ('will this fit my budget', 'cost preflight'). It names input routes and an escape hatch, but never explicitly contrasts itself with the sibling cost/budget tools, so the when-not-this-tool case is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.