# Cloud FinOps Skill & MCP (remote · mcp.optimnow.io)

Cloud cost + FinOps knowledge for AI agents: AWS/Azure/GCP optimisation, AI spend, waste playbooks.

- Trust score: 83/100 (high trust)
- Change this week: +1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-04

## Components

- remote · `mcp.optimnow.io`: 83/100 (this document), [markdown](https://verifymcp.io/servers/optimnow-cloud-finops/mcp.md), [page](https://verifymcp.io/servers/optimnow-cloud-finops/mcp)
- pypi · `cloud-finops-mcp`: 74/100, [markdown](https://verifymcp.io/servers/optimnow-cloud-finops/cloud-finops-mcp.md), [page](https://verifymcp.io/servers/optimnow-cloud-finops/cloud-finops-mcp)

## Channel facts

- Endpoint: `https://mcp.optimnow.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.47.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-04.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 77/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3832 tokens (~294/item across 13 items; 7 tools + 6 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### How do I install the Cloud FinOps Skill & MCP server?

Cloud FinOps Skill & MCP is a hosted endpoint at https://mcp.optimnow.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http optimnow-cloud-finops 'https://mcp.optimnow.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "optimnow-cloud-finops": {
      "url": "https://mcp.optimnow.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "optimnow-cloud-finops": {
      "type": "http",
      "url": "https://mcp.optimnow.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.optimnow-cloud-finops]
url = "https://mcp.optimnow.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "optimnow-cloud-finops": {
      "type": "remote",
      "url": "https://mcp.optimnow.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add optimnow-cloud-finops --url 'https://mcp.optimnow.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  optimnow-cloud-finops:
    url: "https://mcp.optimnow.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "optimnow-cloud-finops": {
      "Transport": "http",
      "Url": "https://mcp.optimnow.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add optimnow-cloud-finops -t streamable-http -u 'https://mcp.optimnow.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "optimnow-cloud-finops": {
      "type": "http",
      "url": "https://mcp.optimnow.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 83, 0)

- [functional] Server version: 1.46.0 → 1.47.0

### 2026-11-01 (score 83, 0)

- [functional] Server version: 1.45.0 → 1.46.0

### 2026-10-30 (score 83, 0)

- [security] Stability: 0.97 → pass

### 2026-10-29 (score 83, +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.

### 2026-10-27 (score 82, +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.

### 2026-10-26 (score 81, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional regression] Schema quality: 3413 → 3832
- [functional] Server version: 1.44.0 → 1.45.0
- [functional] New tool “get_live_figures”

### 2026-10-25 (score 81, +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.

### 2026-10-24 (score 80, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “list_references” rewrote its description, which is the text the model reads
- [security] Tool “get_reference” rewrote its description, which is the text the model reads
- [functional] Server version: 1.43.0 → 1.44.0

## MCP tools (7)

### `list_references` (~259 tokens)

Browse the FinOps knowledge library

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.

### `get_reference` (~554 tokens)

Read one FinOps guide

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_matchin…

Input parameters:

- `name` (string, required)
- `section`

### `find_references` (~530 tokens)

Find the right FinOps guide

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": [...], "t…

Input parameters:

- `capability`
- `domain`
- `maturity`
- `persona`
- `persona_primary_only` (boolean)
- `phase`

### `list_playbooks` (~235 tokens)

Browse the cloud waste runbooks

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.

### `get_playbook` (~299 tokens)

Read one waste runbook

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.

Input parameters:

- `name` (string, required)

### `find_playbooks` (~573 tokens)

Find a waste runbook

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-detect…

Input parameters:

- `confidence`
- `scope`
- `service`
- `waste_category`

### `get_live_figures` (~381 tokens)

Current figures from an OptimToken guide

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.

Input parameters:

- `guide` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/optimnow-cloud-finops/mcp#diagnostics

## Score history

- 2026-11-04: 83
- 2026-11-03: 83
- 2026-11-02: 83
- 2026-11-01: 83
- 2026-10-31: 83
- 2026-10-30: 83
- 2026-10-29: 83
- 2026-10-28: 82
- 2026-10-27: 82
- 2026-10-26: 81
- 2026-10-25: 81
- 2026-10-24: 80
- 2026-10-23: 80
- 2026-10-22: 79
- 2026-10-21: 79
- 2026-10-20: 79
- 2026-10-19: 78
- 2026-10-18: 78
- 2026-10-17: 77
- 2026-10-16: 77
- 2026-10-15: 76
- 2026-10-14: 76
- 2026-10-13: 75
- 2026-10-12: 75
- 2026-10-10: 74
- 2026-10-09: 73
- 2026-10-06: 72
- 2026-10-04: 71
- 2026-10-03: 71
- 2026-10-02: 70

## Common questions

### 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 hosted endpoint (https://mcp.optimnow.io/mcp).

### Is the Cloud FinOps Skill & MCP server safe to use?

Cloud FinOps Skill & MCP scores 83 out of 100 on VerifyMCP. 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,831 tokens of context every time the server is loaded.

### Does the Cloud FinOps Skill & MCP server require authentication?

No. We connected to Cloud FinOps Skill & MCP without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### 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.

## Links

- Remote endpoint: https://mcp.optimnow.io/mcp
- Repository: https://github.com/OptimNow/cloud-finops-skills
- Changelog RSS feed: https://verifymcp.io/servers/optimnow-cloud-finops/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/optimnow-cloud-finops/mcp.json
- HTML version of this page: https://verifymcp.io/servers/optimnow-cloud-finops/mcp
