Skip to main content

nable

See where your cloud and AI bills go, and spend less. Runs in your terminal or inside Claude, Cursor, and VS Code.

PyPI PyPI Downloads Tests License: Apache-2.0 MCP Toplist

You do not need to be a cloud-cost expert. nable does three things:

  • Shows what you spend across AWS, Azure, GCP, Kubernetes, and 15+ AI and SaaS providers, in one place.
  • Finds what you are wasting (idle servers, oversized databases, forgotten storage) and puts a dollar figure on each one.
  • Fixes it, with your approval, by opening a pull request, then checks your next bill to prove the saving was real.

Everything runs on your machine, read-only, and your billing data never leaves it.

Try it

uvx nable scan
nable scan · profile prod
account 3521… · this account only
scanning 17 regions …
  us-east-1 ......... 3 findings
  eu-west-1 ......... 1 finding
────────────────────────────────────────────
$2,140/mo recoverable
    $1,200/mo  3 idle NAT gateways, us-east-1
      $610/mo  14 unattached EBS volumes (2.1 TB), us-east-1
      $330/mo  idle RDS instance (db.r5.xlarge, <2% CPU), eu-west-1
run `nable scan --spend` for the spend breakdown (uses Cost Explorer, ~$0.02)

Reads only free cloud APIs, so scanning never adds to your bill. uvx nable scan --demo runs on sample data with no account at all. Add --json for CI, or --spend for a deeper breakdown.

nable demo: a sample bill in seconds

Use it in your editor

uvx nable runs as a local MCP server inside Claude, Cursor, and VS Code, on your existing Claude or Cursor membership, no API key and no per-token cost. Then ask:

  • "Why did our AWS bill jump last month?"
  • "How much are we spending on OpenAI and Anthropic?"
  • "Which instances should we downsize?"
  • "Open a Jira ticket for any waste over $200/mo"

Setup

Requires Python 3.11+. Need uv? curl -LsSf https://astral.sh/uv/install.sh | sh (or brew install uv).

uvx nable

The setup wizard finds AWS or GCP credentials already on your machine (an SSO login, a CLI profile, or default credentials), connects the one you pick, and configures your editor. Usually you never type a key.

Cursor one-click: Add nable to Cursor

Free forever for the local tool. A hosted version for teams (dashboards without a terminal, SSO, scheduled reports, always-on agents) is at getnable.com/pricing.

Manual editor config — only needed if setup didn't auto-configure

If finops setup doesn't auto-configure, run:

finops setup claude

Or add manually to claude_desktop_config.json:

With uvx (recommended):

{
  "mcpServers": {
    "nable": { "command": "uvx", "args": ["--python", "3.12", "finops-mcp"] }
  }
}

With absolute path:

{
  "mcpServers": {
    "nable": { "command": "/usr/local/bin/finops-mcp" }
  }
}

Use the path from which finops-mcp.

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Why uvx? Claude Desktop is a GUI app and doesn't inherit your shell's PATH. uvx runs finops-mcp in its own isolated environment. It's the most reliable option on corporate machines with managed Python installs.

Give your agent cost controls — a pre-action budget gate for coding agents

nable is not just tools your agent reads from. It is a pre-action gate your agent calls before it makes a cost-affecting change: it prices the change, checks it against your budget, and offers a cheaper path. It never applies anything itself. Propose-only, your agent proposes and a human approves.

Add one line to your agent's system prompt (Claude Code, Cursor, or any MCP client):

Before you apply any infrastructure change (a terraform apply, a helm upgrade, creating or resizing a resource) or start an expensive job, first call check_action_policy with the action and the change (a terraform plan, a helm diff, or a monthly_delta_usd). Relay the verdict, the dollar impact, and the cheaper path when one is offered. Never apply a block or an escalate action; surface it to the human. nable is advisory and propose-only.

The gate returns allow / warn / block / escalate against your policy, the monthly and annual dollar impact, and a spot alternative when the change is compute. One-way doors (delete, terminate, buy a commitment) and over-budget changes always escalate to a human.

And a budget for the agent itself. Run nable ai-budget once, it asks whether you are on a flat plan or a metered API and what you pay, then remembers. On a flat plan it tracks how much subsidized compute you pull for your fixed fee and warns before you run low; on metered it gates on a dollar spend cap. check_ai_budget does the same for the agent mid-task. It reads your Claude Code usage locally, nothing uploaded. Add to your system prompt:

Before starting a large task, call check_ai_budget. If it returns warn or over, tell me where I stand before continuing.

It reports your real usage and burn rate against your budget, not a fabricated percentage of a plan's hidden rate limit.

Connectors (17) — every provider and what it pulls, plus Azure roles
Provider What it pulls
AWS Cost Explorer (free tier) · CUR via S3 (Pro: line-item granularity, savings plans, reservations)
Azure Cost Management API · Advisor cost recs · VM rightsizing (Azure Monitor) · native budgets · forecast
GCP Cloud Billing API + BigQuery export
Datadog Usage Metering API v2: real dollar amounts
Snowflake ACCOUNT_USAGE.METERING_HISTORY
Langfuse Daily metrics API: model cost, token usage, trace volume
MongoDB Atlas Invoice API
Twilio Usage Records API
Cloudflare Billing API
Vercel Invoice API (Enterprise)
New Relic Data ingest + user counts
Stripe Fees and billing activity
Databricks DBU usage and SQL warehouse spend
OpenAI API usage and token spend by model
Anthropic Claude API usage and token spend

Azure roles. The Azure tools span three RBAC roles, granted to the service principal on each subscription (run finops doctor to check):

# repeat per subscription
az role assignment create --assignee <client-id> --role 'Cost Management Reader' --scope /subscriptions/<sub-id>
az role assignment create --assignee <client-id> --role Reader --scope /subscriptions/<sub-id>
az role assignment create --assignee <client-id> --role 'Monitoring Reader' --scope /subscriptions/<sub-id>
FAQ — free vs paid, providers, how it compares to Cost Explorer / Vantage

Is nable free? Yes. The terminal scan, every cost query, anomaly detection, all waste and rightsizing findings, and every connector are free forever. The agent team, ticket auto-creation, scheduled digests, and commitment recommendations are Pro.

Does my billing data leave my machine? No. nable is local-first and read-only by default. It reads your cost data on your machine and never uploads it, and you can confirm the no-egress behavior in the source.

What clouds and providers does it support? AWS, Azure, GCP, and Vertex; Kubernetes (Kubecost, OpenCost); AI and LLM providers (OpenAI, Anthropic, Bedrock, OpenRouter, LiteLLM, Modal, Together, Replicate, Cohere, Mistral, Langfuse); data platforms (Databricks, Snowflake, MongoDB); and SaaS (Datadog, New Relic, Cloudflare, Twilio, Vercel, Stripe).

How is it different from AWS Cost Explorer? Cost Explorer is AWS-only and console-bound. nable is cross-cloud, runs in your terminal and in Claude/Cursor, covers AI and GPU spend no cloud console shows, and proposes fixes as pull requests. nable scan also makes zero paid API calls by default.

Is there an open-source alternative to Vantage or CloudHealth? nable is an open-source (Apache-2.0), local-first alternative for cost queries, waste detection, rightsizing, and AI/GPU cost, running on your machine instead of a hosted SaaS.

Troubleshooting — install and setup fixes
finops-doctor          # checks credentials, DB, network, audit log
finops setup claude    # re-run editor configuration only
Symptom Fix
Tools don't appear in Claude Switch to uvx config or use absolute path
command not found: finops-mcp Re-install with pip install finops-mcp or use uvx
AWS returns no data Run finops setup aws
No matching distribution found for finops-mcp Your Python is older than 3.11. Install on 3.11+ (uvx --python 3.12 nable, or python3.11 -m pip install finops-mcp).
cryptography build error / maturin failed uv tried to compile on Python 3.10. Use 3.11+: uvx --python 3.12 nable.
Corporate SSL errors pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org finops-mcp
Works at home, not at work Use uvx (corporate IT often strips custom PATH entries)

License

Apache-2.0 in full. The hosted enterprise layer (web dashboard, SSO, control plane) lives in a separate private repo. Full tool list in CAPABILITIES.md.

getnable.com · Docs · Privacy · Security

mcp-name: io.github.getnable/finops-mcp

Metadata

Release files for finops-mcp 0.8.216

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for finops-mcp 0.8.216
File Size Uploaded
finops_mcp-0.8.216.tar.gz 1.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for finops-mcp 0.8.216
File Interpreter ABI Platform
finops_mcp-0.8.216-py3-none-any.whl Python 3 none any Details

Total release size: 2.2 MB

Release files / finops_mcp-0.8.216.tar.gz

Download URL finops_mcp-0.8.216.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
18a00fe3a6f0b8c3997b6da0cfef2637d25f5f37117d4a4827c65aff8a1f91c7
BLAKE2b-256 checksum
How to use checksums
2cd92ae7c88dfa3c3c97f878610b9209f8436f3cfa7a771d696eef5640193f8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release files / finops_mcp-0.8.216-py3-none-any.whl

Download URL finops_mcp-0.8.216-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
16307529ac57c50671037b8af746d46e8942f3df517be1dd250391277d2fb021
BLAKE2b-256 checksum
How to use checksums
350d705b12a11ca27e16210c8f82dbc618ddd907306926ab97b9935fc4ae9dec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.216 This release

2 release files

0.8.99

2 release files

0.8.98

2 release files

0.8.97

2 release files

0.8.96

2 release files

0.8.95

2 release files

0.8.94

2 release files

0.8.93

2 release files

0.8.92

2 release files

0.8.91

2 release files

0.8.90

2 release files

0.8.89

2 release files

0.8.87

2 release files

0.8.86

2 release files

0.8.85

2 release files

0.8.84

2 release files

0.8.83

2 release files

0.8.82

2 release files

0.8.81

2 release files

0.8.80

2 release files

0.8.79

2 release files

0.8.78

2 release files

0.8.77

2 release files

0.8.76

2 release files

0.8.75

2 release files

0.8.74

2 release files

0.8.73

2 release files

0.8.72

2 release files

0.8.71

2 release files

0.8.70

2 release files

0.8.69

2 release files

0.8.68

2 release files

0.8.67

2 release files

0.8.66

2 release files

0.8.65

2 release files

0.8.64

2 release files

0.8.63

2 release files

0.8.62

2 release files

0.8.61

2 release files

0.8.60

2 release files

0.8.59

2 release files

0.8.58

2 release files

0.8.57

2 release files

0.8.36

2 release files

0.8.35

2 release files

0.8.34

2 release files

0.8.33

2 release files

0.8.32

2 release files

0.8.28

1 release file

0.8.27

1 release file

0.8.26

1 release file

0.8.22

1 release file

0.8.19

2 release files

0.8.17

2 release files

0.8.16

2 release files

0.8.15

2 release files

0.8.14

2 release files

0.8.13

2 release files

0.8.12

2 release files

0.8.8

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page