Skip to main content

cloud-finops-mcp

MCP server exposing the OptimNow Cloud FinOps skill (reference library + named-pattern playbooks) as queryable tools for any MCP-aware client (Claude Code, Cursor, Codex CLI, Windsurf, Aider, Cline, etc.).

The skill itself ships in canonical Claude Agent-Skills format and is also installable via the cross-tool installer (./install.sh) for direct context injection. This MCP server is the enrichment path: instead of loading the full skill into the prompt, the agent calls tools to discover, filter, and fetch only what it needs.

What the server exposes

Six tools, all read-only, split across two surfaces.

References - long-form provider and discipline files (~300-500 lines each):

Tool Purpose
list_references() List all references with their FCP metadata.
get_reference(name) Fetch the full markdown body of one reference.
find_references(domain?, capability?, phase?, persona?, maturity?) Faceted query over the FinOps Capability/Phase frontmatter.

The reference faceted query supports any combination of:

  • domain - FinOps Framework domain (e.g. Optimize Usage & Cost, Quantify Business Value)
  • capability - FinOps capability (matches both primary and secondary)
  • phase - Inform, Optimize, Operate
  • persona - matches both primary and collaborating personas
  • maturity - Crawl, Walk, Run

Playbooks - small named-pattern runbooks (~80-130 lines each):

Tool Purpose
list_playbooks() List all named-pattern playbooks with their metadata.
get_playbook(name) Fetch the full markdown body of one playbook.
find_playbooks(scope?, service?, waste_category?, confidence?) Faceted query over the playbook frontmatter.

The playbook faceted query supports:

  • scope - aws, azure, gcp, or cross-cloud
  • service - provider service (e.g. AWS NAT Gateway); exact-match
  • waste_category - orphaned, idle, overprovisioned, commitment-mismatch, schedule-blindness, modernization, ai-ml-inefficiency, egress
  • confidence - obvious, likely, possible (OptimNow three-tier model)

All filters across both surfaces AND together. String matches are case-insensitive and exact (no substring matching).

When to use which surface:

  • A playbook answers "how do I detect/fix this specific pattern?" (zombie NAT, snapshot sprawl, idle ELB). It includes problem statement, symptoms, a detection query (CUR / KQL / BigQuery SQL / CLI), fix steps, and the anti-pattern.
  • A reference answers anything broader: billing mechanics, commitment strategy, allocation methodology, persona-specific framings, or cross-pattern reasoning.

Install

pip install cloud-finops-mcp

Or run without installing via uv:

uvx cloud-finops-mcp

Configure your MCP client

After install, point your client at the cloud-finops-mcp console script.

Claude Code

Project-level (.mcp.json at the repo root) or user-level (~/.claude/mcp.json):

{
  "mcpServers": {
    "cloud-finops": {
      "command": "cloud-finops-mcp"
    }
  }
}

Restart Claude Code, then run /mcp to confirm the server is connected.

Cursor

~/.cursor/mcp.json:

{
  "mcpServers": {
    "cloud-finops": {
      "command": "cloud-finops-mcp"
    }
  }
}

Codex CLI

~/.codex/config.toml:

[mcp_servers.cloud-finops]
command = "cloud-finops-mcp"

Windsurf

~/.windsurf/mcp.json:

{
  "mcpServers": {
    "cloud-finops": {
      "command": "cloud-finops-mcp"
    }
  }
}

Any other MCP client

The server speaks MCP over stdio. Point any compatible client at cloud-finops-mcp (or python -m cloud_finops_mcp).

Example tool calls

Agent prompt: "Use the cloud-finops MCP to find references for the Optimize phase aimed at Engineering."

Calls find_references(phase="Optimize", persona="Engineering") and gets back the filtered subset (AWS, Azure, GCP, Bedrock, Databricks, etc.) without loading the full skill into the prompt.

Agent prompt: "Pull the AWS reference."

Calls get_reference(name="finops-aws") and gets back the full markdown body (~300 lines) instead of the entire knowledge base.

Agent prompt: "Show me the obvious-confidence AWS waste playbooks."

Calls find_playbooks(scope="aws", confidence="obvious") and gets back the list of high-signal AWS patterns (zombie NAT gateway, orphaned EBS volumes, etc.).

Agent prompt: "Walk me through the zombie NAT gateway pattern."

Calls get_playbook(name="aws-zombie-nat-gateway") and gets back the ~90-line runbook (problem, symptoms, detection query, fix, anti-pattern, see-also).

When to use this vs the installer

If you... Use
Want the skill loaded as static context for every chat The cross-tool installer (./install.sh)
Have a big-codebase session with limited context budget The MCP server (fetch on demand)
Want to filter references by FinOps domain/capability/phase/persona/maturity The MCP server (find_references)
Use a client that doesn't support MCP The cross-tool installer

The two paths are complementary. You can install both.

Development

git clone https://github.com/OptimNow/cloud-finops-skills.git
cd cloud-finops-skills/mcp_server
python scripts/sync_references.py        # populate src/cloud_finops_mcp/data/
pip install -e ".[dev]"
pytest

Versioning

The PyPI package version tracks the skill release. The trigger is a .claude-plugin/plugin.json version bump reaching main, not a hand-cut tag: the auto-tag-on-plugin-bump workflow reads the new version, creates the matching vX.Y.Z tag, and publishes both the skill release zip and a new cloud-finops-mcp wheel, so the bundled references match what the rest of the repo ships. Versions must be full three-part semver (v1.27.0); the workflow rejects anything else.

Because a plugin.json bump publishes, content PRs never touch it. Version bumps live in dedicated release PRs that move plugin.json, .claude-plugin/marketplace.json metadata.version, and this package's pyproject.toml together. See the release-train rule in the repo's CLAUDE.md.

License

CC BY-SA 4.0 - same as the parent skill. Credit OptimNow.

Download files

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

Source Distribution

cloud_finops_mcp-1.28.1.tar.gz (397.4 kB view details)

Uploaded Source

Built Distribution

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

cloud_finops_mcp-1.28.1-py3-none-any.whl (448.2 kB view details)

Uploaded Python 3

File details

Details for the file cloud_finops_mcp-1.28.1.tar.gz.

File metadata

  • Download URL: cloud_finops_mcp-1.28.1.tar.gz
  • Upload date:
  • Size: 397.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cloud_finops_mcp-1.28.1.tar.gz
Algorithm Hash digest
SHA256 965a045963649749d67c94c461ab37552cca06da64e3039f368a84e45a09e77d
MD5 c82d36d1eb18cf70099166cdb0115e62
BLAKE2b-256 0075ee5fe3313496f724a85a356b7c4df98f407ef349fe39d7d9496c96c3f731

See more details on using hashes here.

Provenance

The following attestation bundles were made for cloud_finops_mcp-1.28.1.tar.gz:

Publisher: publish-mcp.yml on OptimNow/cloud-finops-skills

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

File details

Details for the file cloud_finops_mcp-1.28.1-py3-none-any.whl.

File metadata

File hashes

Hashes for cloud_finops_mcp-1.28.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8d31aa4a283a28ffc7a879f1ede8c02201ba5765851a7f6de877116e78df19ff
MD5 034b849cdf2ec4801711f72067b148cf
BLAKE2b-256 ea85691f36b410cdb22ee6dcde6c72249b4302934c426e41e91ba484b995750b

See more details on using hashes here.

Provenance

The following attestation bundles were made for cloud_finops_mcp-1.28.1-py3-none-any.whl:

Publisher: publish-mcp.yml on OptimNow/cloud-finops-skills

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

Release history Release notifications | RSS feed

1.33.0

2 files

1.32.1

2 files

1.32.0

2 files

1.31.0

2 files

1.30.0

2 files

1.29.0

2 files

This release

1.28.1 This release

2 files

1.28.0

2 files

1.27.0

2 files

1.26.1

2 files

1.25.0

2 files

1.24.0

2 files

1.23.1

2 files

1.23.0

2 files

1.22.3

2 files

1.22.2

2 files

1.22.1

2 files

1.21.0

2 files

Supported by

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