Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

nable

PYPI · FINOPS-MCP · SCANNED SEP 20

See where your cloud and AI bills go, and spend less. Local-first, in your terminal or editor.

Available components

+1 this week 83 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 7 of 68 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 15 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability77
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2289 tokens (~208/item across 11 items; 10 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (10% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the nable MCP server?

nable runs locally as a PyPI package, launched with uvx finops-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · finops-mcp

# add to Claude Code
claude mcp add getnable-finops-mcp -- uvx finops-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "getnable-finops-mcp": {
      "command": "uvx",
      "args": [
        "finops-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "getnable-finops-mcp": {
      "command": "uvx",
      "args": [
        "finops-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add getnable-finops-mcp -- uvx finops-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "getnable-finops-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "finops-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add getnable-finops-mcp --command uvx --arg finops-mcp
# ~/.hermes/config.yaml
mcp_servers:
  getnable-finops-mcp:
    command: "uvx"
    args: ["finops-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "getnable-finops-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "finops-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add getnable-finops-mcp -t stdio -c uvx -a finops-mcp
// mcp.json
{
  "mcpServers": {
    "getnable-finops-mcp": {
      "command": "uvx",
      "args": [
        "finops-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 0
    • Stability: 0.97 → pass security
  • 19 Sept 26 0
    • Stability: pass → 0.97 functional
  • 18 Sept 26 0
    • Stability: 0.97 → pass security
  • 17 Sept 26 0
    • Stability: pass → 0.97 functional
  • 15 Sept 26 0
    • Stability: 0.97 → pass security
  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/finops-mcp@0.8.216

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 68 packages
Packages resolved 68
Stale 6
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 10 exposed · ~1,753 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
check_action_policy ~353

Advisory policy gate: should a proposed remediation action proceed? The request-path guardrail, advisory. Describe a remediation action you are considering (action_type), optionally with the change to cost (a Terraform plan, a helm diff, or a known monthly delta), and nable returns a machine verdict against your human-authored policy: - allow: reversible, allowlisted, and within budget. A human can apply it. - escalate: a one-way door (delete, terminate, buy a commitment) or an over-budget / large-cost change. A human must review it first. - block: the action type is not in your allowlist. ADVICE ONLY. nable never applies the action, a human does. This is the propose-only guardrail; nable does not auto-execute anything. action_type examples: rightsizing, tag_fix, stop_idle, spot_migration, ticket (reversible); idle_cleanup, purchase_commitment, terminate_instance, delete_resource (one-way). Policy knobs via env: FINOPS_POLICY_MAX_AUTO_USD, FINOPS_POLICY_ALLOWED_ACTIONS (comma-separated). Read-only. Good triggers: "can the agent do X", "is this action within policy", "should I apply this fix", "is it safe to auto-apply this". Examples: - "Is this apply within policy?" - "Check this change against our cost guardrails"

NameTypeReqDescription
action_typestringyes
budget_namestring
helm_diff
monthly_delta_usd
terraform_plan_file
terraform_plan_json
tf_dir

No output schema declared.

No examples provided.

check_ai_budget ~96

Advisory gate: before a big task, is the agent about to blow its AI budget? Call this before an expensive run. Returns a verdict (ok / warn / over), the reason, and a recommendation. Advice only, it never blocks; relay the verdict and let the human decide. Pass estimated_next_tokens to test whether the next task would tip a token budget over.

NameTypeReqDescription
estimated_next_tokensinteger

No output schema declared.

No examples provided.

connect_aws ~153

Connect an AWS account from inside your MCP client, no terminal needed. Propose-then-confirm and local-only. It reads AWS credentials that already exist on this machine (named profiles, environment, the default chain), verifies each against STS, and connects the one you choose. It never creates, modifies, or deletes anything in your AWS account, and credentials stay on this machine. Call it with no arguments first to see which accounts are available (nothing is stored). Then call it again with account_id set to the one to connect. Examples: - "Connect my AWS account" - "Use the credentials on this machine to connect AWS"

NameTypeReqDescription
account_idstring

No output schema declared.

No examples provided.

connect_azure ~167

Guide connecting Azure while keeping the service-principal secret off the model. Azure has no local credentials nable can safely auto-detect, so connecting needs a client secret. Unlike connect_aws and connect_gcp (which read credentials already on the machine, so nothing sensitive passes through this conversation), an Azure secret would have to be pasted into the chat to reach a tool argument, which routes it through the model provider. nable does not do that. This tool returns the Cloud Shell script and has you finish the connect in your OWN terminal with `finops setup azure`, which encrypts the secret into your local vault. The model never sees the secret. Examples: - "Connect Azure" - "How do I connect my Azure subscription?"

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

connect_gcp ~156

Connect a Google Cloud billing account from inside your MCP client, no terminal. Propose-then-confirm and local-only. It reads Google Cloud credentials that already exist on this machine (GOOGLE_APPLICATION_CREDENTIALS or gcloud Application Default Credentials), lists the open billing accounts they can see, and connects the one you choose. It never changes anything in GCP, and credentials stay on this machine. Call it with no arguments to see the billing accounts available (nothing is stored). Then call it again with billing_account_id set to connect one. Examples: - "Connect my Google Cloud billing" - "Use my gcloud login to connect GCP"

NameTypeReqDescription
billing_account_idstring

No output schema declared.

No examples provided.

estimate_change_cost ~308

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. Read-only: it estimates and checks, it never applies anything. 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"

NameTypeReqDescription
budget_namestring
helm_diff
monthly_delta_usd
terraform_plan_file
terraform_plan_json
tf_dir

No output schema declared.

No examples provided.

get_cost_summary ~81

Get total spend summarized by service, account, and region. Examples: - "How much did we spend last month?" - "Give me an AWS cost summary for January"

NameTypeReqDescription
account
category
end_date
granularitystring
provider
start_date

No output schema declared.

No examples provided.

list_connected_providers ~92

List 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). Examples: - "Which providers are connected?" - "Is GCP set up yet?"

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

nable_setup_status ~228

Agent-driven onboarding: what is connected, what credentials are already on this machine, and the exact command to connect each remaining provider. Call this when the user asks to connect a provider, says setup is incomplete, or asks what they are missing. Detected ambient credentials (gcloud login, env keys, ~/.modal.toml) mean the connect is ONE terminal command with no secrets involved; run it for the user or hand them the command. Rules for the agent, and they are hard rules: - NEVER ask the user to paste an API key or secret into the chat. For paste-a-key providers, have them run the setup command in their own terminal; it deep-links the key page and stores the key locally. - Prefer the zero-secret paths: `finops connect` (batch-connects everything detected) and `finops setup gcp` / ambient AWS, where no secret ever passes through the conversation. Examples: - "Connect my GCP costs" - "What providers am I missing?"

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

what_can_nable_do ~119

Show everything nable can do, tailored to what you've connected. Call this when the user asks "what can you do?", "what features do you have?", "what should I try first?", "show me what's available", or "help". Always call it right after a user connects their first account, so they see what just became possible. Pass detailed=True to also list the underlying tool names. Examples: - "What can nable do?" - "List your capabilities"

NameTypeReqDescription
detailedboolean
NameTypeReqDescription
resultstringyes

No examples provided.

Common questions

What is the nable MCP server?

nable is an MCP server listed in the public MCP registry as io.github.getnable/finops-mcp. See where your cloud and AI bills go, and spend less. Local-first, in your terminal or editor. This page covers its PyPI package (finops-mcp).

Is the nable MCP server safe to use?

nable scores 83 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the nable MCP server expose?

nable exposes 10 tools: connect_aws, connect_azure, get_cost_summary, estimate_change_cost, connect_gcp, and 5 more. Their descriptions and schemas cost roughly 1,753 tokens of context every time the server is loaded.

Is the nable MCP server still maintained?

nable is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the nable MCP server under?

nable declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.