Cloud FinOps Skill & MCP
PYPI · CLOUD-FINOPS-MCP · 2 COMPONENTS
Cloud cost + FinOps knowledge for AI agents: AWS/Azure/GCP optimisation, AI spend, waste playbooks.
Available components
Last scanned (7 hours ago)
Scores higher than 70% of PyPI servers
Category Cloud Infrastructure
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 Security44
- Malware scan not yet available for this package.Unverified
- No known CVEs affecting this package version or its production dependencies.Pass
- Declares code that runs automatically (build-time code we could not rule out (a Hatch, PDM or setuptools build hook, a dynamic version we could not read statically, shipped VCS metadata or a stray root module)) and that we could not recognise. It may be perfectly ordinary, but we have not established what it does. View diagnostics → Partial
- 0 of 29 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency84
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to OptimNow/cloud-finops-skills). View diagnostics → Pass
- License check failed: the license (CC-BY-SA-4.0) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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 3694 tokens (~284/item across 13 items; 7 tools + 6 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 (100% 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 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 9 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
- Supports UI / widget rendering.Pass
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.
- 4 Nov 26 0
- Package version: 1.46.0 → 1.47.0 functional
- 3 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- 1 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 31 Oct 26 0
- Package version: 1.45.0 → 1.46.0 functional
- 30 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- 25 Oct 26 +15
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Schema quality: 3293 → 3694 ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Package version: 1.44.0 → 1.45.0 functional
- 24 Oct 26 −14
- Malware scan: pass → unverified ▼ security
- Stability: 0.97 → pass security
- Package version: 1.43.0 → 1.44.0 functional
- 23 Oct 26 −1
- Stability: pass → 0.97 functional
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 4 Nov 2026 · Analysed pypi/cloud-finops-mcp@1.47.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | OptimNow/cloud-finops-skills |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/OptimNow/cloud-finops-skills/.github/workflows/auto-tag-on-plugin-bump.yml@refs/heads/main |
| Rekor log index | 3691752047 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:8aba184e6d526074031291e81f243ea97cfcbc5b3861ad42bd139bde781aa1ac |
Background: How many MCP packages publish verified provenance →
Install scripts 2 scripts
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
| build_hook | unreviewed | tool.hatch.build.hooks.build-scripts |
Background: Why install scripts are a supply-chain risk →
Dependencies 29 packages
| Packages resolved | 29 |
|---|---|
| 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 →
find_playbooks Find a waste runbook ~552
Finds the runbook for a specific cloud waste pattern, filtered by provider, service, waste category or detection confidence. Useful before answering a specific waste or cost-fix question: each runbook includes a tested detection query the user can run in their own account, so it also serves questions about the user's own resources. Use this for questions like "which VMs are running for nothing", "why is our NAT bill so high", "my NAT gateway processes 10TB to S3", "should I delete these old snapshots", "which of our RIs are about to expire", "what waste can we clean up safely without review" - anything that names a provider, a waste category, or how confident the detection needs to be before acting. Patterns covered include NAT gateways and VPC endpoints, expiring Savings Plans / RIs / reservations, snapshot sprawl, S3 lifecycle gaps, idle or stopped VMs, orphaned disks / public IPs / EBS volumes, GPU and SageMaker sizing, Kubernetes idle capacity, and schedule blindness. All filters are optional and combine with AND semantics. String matching is case-insensitive and exact. Examples: - ``find_playbooks(scope="aws")`` - all AWS-specific playbooks - ``find_playbooks(waste_category="idle")`` - every idle-resource pattern - ``find_playbooks(scope="cross-cloud", confidence="obvious")`` Args: scope: ``"aws"``, ``"azure"``, ``"gcp"``, or ``"cross-cloud"``. service: Provider service exact-match (e.g. ``"AWS NAT Gateway"``). waste_category: ``"orphaned"``, ``"idle"``, ``"overprovisioned"``, ``"commitment-mismatch"``, ``"schedule-blindness"``, ``"modernization"``, ``"ai-ml-inefficiency"``, or ``"egress"``. confidence: ``"obvious"`` (single signal is enough), ``"likely"`` (two signals required), or ``"possible"`` (needs human review). From the OptimNow three-tier confidence model in `finops-waste-detection-playbooks`. Returns ``{"filters": {...}, "playbooks": [...], "total": N}``. A query that matches nothing also r…
| Name | Type | Req | Description |
|---|---|---|---|
| confidence | – | – | – |
| scope | – | – | – |
| service | – | – | – |
| waste_category | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
find_references Find the right FinOps guide ~515
Find which guidance serves a FinOps question - how to commit, size, allocate, charge back, forecast, or govern cloud and AI spend. Use this for questions like "how should we size Savings Plans", "what should Finance own in chargeback", "what does a Crawl-stage org tackle first" - anything that maps to FinOps Framework facets (domain, capability, phase, persona, maturity) - and you want only the references that serve it, instead of scanning the full list. All filters are optional and combine with AND semantics. String matching is case-insensitive and exact (not substring). Examples: - ``find_references(domain="Optimize Usage & Cost")`` - ``find_references(phase="Optimize", persona="Engineering")`` - ``find_references(persona="Engineering", persona_primary_only=True)`` - ``find_references(capability="Rate Optimization")`` - ``find_references(maturity="Crawl")`` Args: domain: FinOps Framework domain (e.g. ``"Optimize Usage & Cost"``, ``"Quantify Business Value"``, ``"Manage the FinOps Practice"``). capability: FinOps capability (matches ``fcp_capability`` and ``fcp_capabilities_secondary``). phase: FinOps phase (``"Inform"``, ``"Optimize"``, ``"Operate"``). persona: Persona (matches ``fcp_personas_primary`` and ``fcp_personas_collaborating``). maturity: Entry maturity level (``"Crawl"``, ``"Walk"``, ``"Run"``). persona_primary_only: when True, ``persona`` matches only the primary list. Use it when the default match barely narrows the set - broad personas like Engineering collaborate on nearly every file, so filtering on collaboration is descriptive, not discriminating. ``persona="Engineering", persona_primary_only=True`` is the engineering reading list; the default is the everything-they-touch view. Returns ``{"filters": {...}, "references": [...], "total": N}``. A query that matches nothing also returns `hint` and `valid_values`, so a typo is distinguishable from a ge…
| Name | Type | Req | Description |
|---|---|---|---|
| capability | – | – | – |
| domain | – | – | – |
| maturity | – | – | – |
| persona | – | – | – |
| persona_primary_only | boolean | – | – |
| phase | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_live_figures Current figures from an OptimToken guide ~363
Get the current value of a figure a reference quotes with a date. Use this when a reference quotes a figure from an OptimToken guide ("measured on the 2026-10-25 OptimToken catalogue") and the answer needs the current value: the Compute Savings Plan or reservation discount, the gap between a flexible and a locked commitment, the ARM discount against Intel and AMD, the share of LLM models with a batch rate. It fetches the guide's figures file, rebuilt daily, and returns it as published. Args: guide: The guide slug, lowercase letters, digits and hyphens. Guides with figures today: ``"savings-plans-vs-reserved-instances"``, ``"arm-against-x86"``, ``"batch-api-economics"``. Returns ``{"document": {...}, "fetched_at": ..., "source": "live" | "cached", "note": ...}``, plus ``cache_age_seconds`` when cached (six-hour cache). ``document`` is the file unchanged: ``guide``, ``title``, ``url``, ``dataSource``, ``snapshotDate`` (the catalogue the figures come from), ``dateModified`` and ``figures``, where discounts are fractions (0.2743 is 27.4%) and each key names a median, a range or a count. An unknown slug returns ``{"error", "available_guides", "suggestions"}``. Any other failure (timeout, HTTP error, invalid JSON) returns ``{"error", "fallback"}``: the dated figure in the reference then stands, quoted with its date.
| Name | Type | Req | Description |
|---|---|---|---|
| guide | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_playbook Read one waste runbook ~284
Fetch the step-by-step runbook for one specific waste pattern: symptoms, the detection queries to run, the fix, and the anti-pattern to avoid. Use this when the user asks how to detect, confirm, or fix one specific named waste pattern (zombie NAT gateway, snapshot sprawl, idle SageMaker endpoint, ...). It also serves questions about the user's own resources ("which of my X..."): the runbook's detection query is written to be run in the user's account, so the answer does not depend on access to that account. Args: name: Playbook slug as returned by ``list_playbooks`` (e.g. ``"aws-zombie-nat-gateway"``, ``"azure-orphan-disks"``, ``"cross-cloud-untagged-spend-drift"``). Returns ``{"name": ..., "title": ..., "content": "...", "lines": N}``. On miss, returns ``{"error": ..., "suggestions": [...]}`` with up to three string-distance matches so the caller can self-correct. A host with MCP Apps (SEP-1865) support may render this result via the linked ``ui://cloud-finops/playbook-viewer`` resource instead of showing the raw markdown.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_reference Read one FinOps guide ~531
Fetch the guidance on one FinOps topic - the billing mechanics, decision rules and worked examples behind a defensible answer - either whole or one section at a time. Use this when you need the actual content of one known reference, after ``list_references`` or ``find_references`` told you which one serves the question. Advisory questions (commitment sizing, chargeback design, allocation methodology) are served by the reference's decision rules and worked examples, which a summary does not carry. Pass ``section`` when the question is narrower than the file. The ``approx_tokens`` hint in the listing tells you when this matters: the largest references run to about 15,000 tokens and the Azure pattern catalogue is an enumerated list, so a question about storage lifecycle wants one section of ``finops-azure-patterns``, not all of it. Omit ``section`` for the whole file when you need the cross-cutting reasoning. Args: name: Reference name as returned by ``list_references`` (e.g. ``"finops-aws"``, ``"finops-genai-capacity"``, ``"optimnow-methodology"``). section: Optional H2 or H3 heading to return on its own. Matched case-insensitively and partially against the headings, so a natural phrase works - ``"storage"``, ``"commitment decision tree"``. A heading's trailing count is ignored, so ``"storage optimization patterns"`` matches ``"Storage Optimization Patterns (28)"``. If it matches nothing you get the list of available headings back, not the whole file. Without ``section``, returns ``{"name": ..., "content": "...", "lines": N}`` where ``content`` is the file verbatim. With ``section``, returns ``{"name", "title", "section", "section_level", "partial": true, "content", "lines", "full_lines"}`` where ``content`` is that section prefixed by the reference's title, plus ``other_matching_sections`` when the phrase matched more than one heading. On a miss, returns ``{"error": ..., "suggestions": [...…
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| section | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
list_playbooks Browse the cloud waste runbooks ~222
See every ready-made runbook for finding and fixing cloud waste: idle, orphaned and overprovisioned resources, egress surprises, schedule blindness and AI/ML inefficiency across AWS, Azure and GCP. Use this to discover which waste patterns have a runbook. When the question already names a provider, waste category, or confidence tier, call ``find_playbooks`` instead. Each playbook is a small (~90-170 line) runbook scoped to one waste pattern (e.g. ``aws-zombie-nat-gateway``, ``azure-orphan-disks``). Returns ``{"playbooks": [...], "total": N}`` where each entry includes ``name``, ``title``, ``scope`` (aws/azure/gcp/cross-cloud), ``service``, ``waste_category``, ``confidence`` (obvious/likely/possible), and ``approx_tokens`` - the same size hint the reference listing carries, so a multi-playbook answer can be budgeted before fetching.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
list_references Browse the FinOps knowledge library ~245
See what FinOps guidance is available: billing mechanics, commitment strategy, allocation and chargeback, AI cost management, and per-provider cost handbooks (AWS, Azure, GCP, OCI, Databricks, Snowflake, ...). Use this to discover what the library covers before deciding what to fetch. When the question already names a FinOps domain, phase, persona or maturity, call ``find_references`` instead of scanning this full list. Returns a dict shaped ``{"references": [...], "total": N}`` where each entry includes ``name``, ``title``, a one-line ``description``, the discriminating FCP facets (``fcp_domain``, ``fcp_capability``, ``fcp_phases``, ``fcp_personas_primary``, ``fcp_maturity_entry``) and ``approx_tokens``. Read ``approx_tokens`` before fetching: the library runs from about 2,000 to about 15,000 tokens per file. Above roughly 10,000, prefer ``get_reference(name, section=...)`` and pull the part you need.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
How do I install the Cloud FinOps Skill & MCP server?
Cloud FinOps Skill & MCP runs locally as a PyPI package, launched with uvx cloud-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 · cloud-finops-mcp
claude mcp add optimnow-cloud-finops -- uvx cloud-finops-mcp
What is the Cloud FinOps Skill & MCP server?
Cloud FinOps Skill & MCP is listed in the public MCP registry as io.github.OptimNow/cloud-finops. Cloud cost + FinOps knowledge for AI agents: AWS/Azure/GCP optimisation, AI spend, waste playbooks. This page covers its PyPI package (cloud-finops-mcp).
Is the Cloud FinOps Skill & MCP server safe to use?
Cloud FinOps Skill & MCP scores 74 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. Its build provenance is signed and verified. 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 Cloud FinOps Skill & MCP server expose?
Cloud FinOps Skill & MCP exposes 7 tools: list_references, get_reference, find_references, list_playbooks, get_playbook, and 2 more. Their descriptions and schemas cost roughly 2,712 tokens of context every time the server is loaded.
Is the Cloud FinOps Skill & MCP server still maintained?
Cloud FinOps Skill & MCP is still listed as active in the MCP registry. We last reached this channel on 4 November 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 Cloud FinOps Skill & MCP server under?
Cloud FinOps Skill & MCP declares the CC-BY-SA-4.0 licence, which is not on the OSI-approved list. Read the terms before using it at work, and note this covers the source only, not the cost of any service it calls.