Skip to main content

Ask Claude about your AWS, Azure, GCP, and SaaS costs. MCP server with anomaly detection, rightsizing, and Jira ticketing.

Project description

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

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.

Built for the engineer who owns the bill, not a dedicated FinOps team. 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 finops 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 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

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

finops_mcp-0.8.191.tar.gz (876.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

finops_mcp-0.8.191-py3-none-any.whl (1.0 MB view details)

Uploaded Python 3

File details

Details for the file finops_mcp-0.8.191.tar.gz.

File metadata

  • Download URL: finops_mcp-0.8.191.tar.gz
  • Upload date:
  • Size: 876.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for finops_mcp-0.8.191.tar.gz
Algorithm Hash digest
SHA256 b346afd5ca9684e6ed247440e2cfcc4af57f5a703d9b69c63a46c843711ee8bb
MD5 44af97991562ef7ed7bcbffb257dafc6
BLAKE2b-256 87a4a8063923e195400c09ba3e398cb7b50eaf0562824098d72727a99fc67c20

See more details on using hashes here.

Provenance

The following attestation bundles were made for finops_mcp-0.8.191.tar.gz:

Publisher: publish.yml on getnable/finopsmcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file finops_mcp-0.8.191-py3-none-any.whl.

File metadata

  • Download URL: finops_mcp-0.8.191-py3-none-any.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for finops_mcp-0.8.191-py3-none-any.whl
Algorithm Hash digest
SHA256 db63e3df4a87e08bb2423cd032e99f09dbc3f4d118b630e8c13a83a8a15d47a0
MD5 f95ba6c297bfa0ca03d03cd965aace40
BLAKE2b-256 f0380daf91b891c189d7b8999806fe262bebc0f618e832caa1cf421284e61688

See more details on using hashes here.

Provenance

The following attestation bundles were made for finops_mcp-0.8.191-py3-none-any.whl:

Publisher: publish.yml on getnable/finopsmcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page