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
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
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
claude mcp add getnable-finops-mcp -- uvx finops-mcp
{
"mcpServers": {
"getnable-finops-mcp": {
"command": "uvx",
"args": [
"finops-mcp"
]
}
}
} {
"servers": {
"getnable-finops-mcp": {
"command": "uvx",
"args": [
"finops-mcp"
]
}
}
} codex mcp add getnable-finops-mcp -- uvx finops-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"getnable-finops-mcp": {
"type": "local",
"command": [
"uvx",
"finops-mcp"
],
"enabled": true
}
}
} openclaw mcp add getnable-finops-mcp --command uvx --arg finops-mcp
mcp_servers:
getnable-finops-mcp:
command: "uvx"
args: ["finops-mcp"] {
"McpServers": {
"getnable-finops-mcp": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"finops-mcp"
]
}
}
} assistant mcp add getnable-finops-mcp -t stdio -c uvx -a finops-mcp
{
"mcpServers": {
"getnable-finops-mcp": {
"command": "uvx",
"args": [
"finops-mcp"
]
}
}
} 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.
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 →
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 →
check_action_policy 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"
| Name | Type | Req | Description |
|---|---|---|---|
| action_type | string | yes | – |
| budget_name | string | – | – |
| helm_diff | – | – | – |
| monthly_delta_usd | – | – | – |
| terraform_plan_file | – | – | – |
| terraform_plan_json | – | – | – |
| tf_dir | – | – | – |
No output schema declared.
No examples provided.
check_ai_budget 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.
| Name | Type | Req | Description |
|---|---|---|---|
| estimated_next_tokens | integer | – | – |
No output schema declared.
No examples provided.
connect_aws 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"
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | – |
No output schema declared.
No examples provided.
connect_azure 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 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"
| Name | Type | Req | Description |
|---|---|---|---|
| billing_account_id | string | – | – |
No output schema declared.
No examples provided.
estimate_change_cost 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"
| Name | Type | Req | Description |
|---|---|---|---|
| budget_name | string | – | – |
| helm_diff | – | – | – |
| monthly_delta_usd | – | – | – |
| terraform_plan_file | – | – | – |
| terraform_plan_json | – | – | – |
| tf_dir | – | – | – |
No output schema declared.
No examples provided.
get_cost_summary 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"
| Name | Type | Req | Description |
|---|---|---|---|
| account | – | – | – |
| category | – | – | – |
| end_date | – | – | – |
| granularity | string | – | – |
| provider | – | – | – |
| start_date | – | – | – |
No output schema declared.
No examples provided.
list_connected_providers 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 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 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"
| Name | Type | Req | Description |
|---|---|---|---|
| detailed | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
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.