Skip to main content
Glama
finops-framework-mcp

finops-framework-mcp

by aaronmsoto

finops-framework-mcp

finops-framework-mcp on npm finops-focus-mcp on npm tokenomics-overview-mcp on npm license MIT

Three unofficial MCP servers that give AI assistants a structured, sourced interface to published FinOps and AI-cost guidance, so an assistant answers with the publishers' actual text and formulas instead of improvising:

Server

Covers

Source

finops-framework-mcp

The FinOps Framework: capabilities, Crawl/Walk/Run maturity, KPIs, personas

finops.org/framework

finops-focus-mcp

The FOCUS billing-data specification, pinned per version (1.0, 1.2)

focus.finops.org

tokenomics-overview-mcp

AI tokenomics: the Seven-Layer Stack, Big-T notation, prompt-cache metrics, consumption levers incl. model routing, FOCUS 1.5 AI cost

tokeneconomics.com

All three are read-only (an agent can read guidance, never change your practice or data) and offline once installed (no network access at runtime, no telemetry). Use any one on its own; together they cover what good looks like, which billing columns prove it, and what drives AI token cost.

Start here: the usage guide

aaronmsoto.github.io/finops-framework-mcp is a free, no-install walkthrough written for FinOps practitioners as much as engineers. It explains what each server does, connects them to Claude in a couple of minutes, and works through five examples, from a showback report to whether prompt caching is paying off. Every number and quote in it comes from a real run of these servers. See Documentation for the page list.

Related MCP server: cloud-finops-mcp

Why this exists

Ask an AI assistant "how mature is our Allocation practice?", "which FOCUS columns feed Effective Savings Rate?" or "is our prompt caching paying off?" without these servers, and it will happily improvise a plausible answer. With them, every response is the publisher's own text and formulas, structured for an assistant to read, with the source URL and license attached.

Anything a server had to work out itself is labeled, never passed off as published guidance:

  • The FOCUS server's KPI-to-column mapping, computed KPI values and cross-version diff are marked UNOFFICIAL (official: false).

  • The tokenomics server states each source's publication status on every answer, because most Tokenomics Foundation guidance is a working draft or release candidate. Its curated crosswalk is unofficial and only appears with FINOPS_MCP_EXPERIMENTAL=1.

  • The framework server is official-only out of the box: no invented relationships between capabilities, no maturity levels beyond the Foundation's Crawl/Walk/Run.

Quickstart

All three are on npm, so there is nothing to clone or build. Each package ships its own data and runs offline. Node >= 22 is the only requirement.

npx -y finops-framework-mcp
npx -y finops-focus-mcp
npx -y tokenomics-overview-mcp

(-y skips npx's first-run install prompt, which can hang non-interactive MCP clients. Pin a version with, for example, npx -y finops-focus-mcp@0.2.)

Claude Code:

claude mcp add finops-framework -- npx -y finops-framework-mcp
claude mcp add focus-spec -- npx -y finops-focus-mcp
claude mcp add tokenomics-overview -- npx -y tokenomics-overview-mcp

Claude Desktop (claude_desktop_config.json), or a project-scoped .mcp.json, or any stdio MCP client:

{
  "mcpServers": {
    "finops-framework": {
      "command": "npx",
      "args": ["-y", "finops-framework-mcp"]
    },
    "focus-spec": {
      "command": "npx",
      "args": ["-y", "finops-focus-mcp"]
    },
    "tokenomics-overview": {
      "command": "npx",
      "args": ["-y", "tokenomics-overview-mcp"]
    }
  }
}

Environment variables (all optional):

Variable

Server

Effect

FINOPS_MCP_DATA

framework

Use a locally refreshed artifact instead of the packaged data/framework

FOCUS_MCP_DATA

FOCUS

Same, for data/focus

TOKENOMICS_MCP_DATA

tokenomics

Same, for data/tokenomics

FINOPS_MCP_EXPERIMENTAL=1

framework, tokenomics

Turn on clearly labeled unofficial extras: the framework's parsed maturity get_actions, the tokenomics crosswalk

Each server also accepts the data directory as its first CLI argument, and answers --version with its package version plus its data version (FOCUS: the spec versions it serves).

How to use them

Start a session with each server's entry point, then follow its suggestions:

Server

Start with

Then

framework

get_framework_info {}

search_framework, list_capabilities, get_capability (with include to control size), get_kpis, assess_maturity_path

FOCUS

list_versions {}

search_focus, get_column, get_requirements, compare_versions, get_kpi_mapping, calculate_kpi

tokenomics

get_tokenomics_info {}

list_layers, get_bigt_notation, list_levers, get_metric, calculate_cache_metrics, get_crosslinks

Questions each one answers well:

  • Framework: "What does Walk-level Forecasting require?", "Which KPIs does the Foundation feature for Rate Optimization?", "Who does what in Anomaly Management?"

  • FOCUS: "What does BilledCost mean in 1.2, and what changed since 1.0?", "Which columns do I need to compute Effective Savings Rate?"

  • Tokenomics: "Which layer owns model routing and AI gateways?", "How does this agent's token use scale with autonomy?", "Our cache read, write and uncached input tokens were X, Y, Z: is caching saving money?"

Using them together. The servers ship separately and never call each other. Instead, answers hand off by URI: each of the tokenomics server's 35 get_crosslinks links is backed by a verbatim quote from the Tokenomics Foundation page, and carries a finops://framework/… or focus://spec/… URI for the agent to read with the other two servers. FOCUS 1.5 working-draft names, which no ratified release contains yet, come back with no URI. The prompt-caching example walks one question through all three.

Server surfaces

  • finops-framework-mcp: 11 tools — get_framework_info (entry point), search_framework, list_capabilities, get_capability, get_maturity_assessment, get_kpis, assess_maturity_path, map_personas, get_entity, get_maturity_model, get_changelog — plus finops://framework/… resources and 4 prompts (explain-framework, assess-capability-maturity, plan-maturity-roadmap, map-personas-to-capabilities). Data: 6 Principles, 3 Phases, 4 Domains, 22 Capabilities, 11 Personas, 5 Technology Categories, the Scopes concept, and an 88-entry KPI library.

  • finops-focus-mcp: 9 tools for column and attribute lookup, normative requirements, search, the 1.0 → 1.2 diff, and unofficial KPI-to-column mappings with sample-data KPI calculation, plus focus://spec/… resources and 3 prompts. See packages/finops-focus-mcp.

  • tokenomics-overview-mcp: 20 tools across documents, the Seven-Layer Stack, Big-T notation, levers, metrics (with a cache-metrics calculator), personas, value classification, the FOCUS 1.5 AI-cost capabilities and cross-links, plus tokenomics://overview/… resources and 3 prompts (optimize_consumption, assess_prompt_caching, bigt_review). Data: 14 source documents, 7 layers, 6 Big-T classes, 32 levers, 7 metrics, 12 personas, 35 stated cross-links. See packages/tokenomics-overview-mcp.

The full prompts, resources and tools of all three servers (names, arguments, URIs, defaults and limits) are generated from live MCP output in docs/mcp-surface.md.

Remote option: the Cloudflare Worker

All three servers can also run over Streamable HTTP from one bundled Cloudflare Worker (src/workers/, endpoints /mcp/framework, /mcp/focus and /mcp/tokenomics; see docs/deploy-worker.md). Any MCP client that speaks Streamable HTTP can connect to a deployed Worker, for example:

claude mcp add --transport http tokenomics-overview "$WORKER_URL/mcp/tokenomics"

The Worker is stateless and serves each server's default surface (no experimental tools). demo/ is a static browser page with two walkthroughs through it: "Is prompt caching paying off?" (all three servers, on your own token counts) and Rate Optimization (framework and FOCUS).

How it's built

Every server is the same three decoupled parts, so a content refresh never needs a code change:

crawler ──▶ data artifact ──▶ MCP server (stdio)
src/crawlers/<name>   data/<name>/   src/servers/<name>

for <name> in framework, focus and tokenomics. The framework and tokenomics crawlers go fetch → parse → compose → derive → validate → emit: content/markdown/ is the canonical intermediate, composed from parsed HTML, and every JSON file is regenerated from it by an offline derive step, so a schema or JSON-only fix never needs a re-crawl. Their artifacts carry JSON Schemas and a sha256 manifest, and each server validates its artifact at startup and refuses to start on a bad one. The FOCUS crawler instead ingests each pinned spec release by git tag into data/focus/<version>/, with the derived diff and KPI mapping under data/focus/derived/.

The framework server's early capability relationship graph (get_prerequisites/get_related) was built, evaluated and deleted because its edges didn't clear the accuracy bar; see .agents/specs/v1-official-only.md.

Refreshing the data

npm run build
npm run refresh                                   # framework: crawl → artifact + diff report
node dist/crawlers/focus/cli.js                   # FOCUS: ingest the pinned spec tags (1.0, 1.2)
node dist/crawlers/tokenomics/cli.js refresh      # tokenomics: Tokenomics Foundation pages
node dist/crawlers/framework/cli.js derive        # framework: offline markdown → JSON, byte-identical
node dist/crawlers/tokenomics/cli.js derive       # tokenomics: same, for data/tokenomics

Crawls are polite, cached and robots-honoring. No upstream changes produce a byte-identical artifact and no version bump; content changes produce a changelog entry and a semver bump of the data version. The tokenomics refresh also lists pages it found but doesn't ingest (for example working-group drafts) under unregistered in its manifest. A scheduled refresh workflow is provided at docs/proposed/refresh-data.yml; .github/workflows/ is a protected path here, so the owner installs it:

git mv docs/proposed/refresh-data.yml .github/workflows/refresh-data.yml

Data versioning policy

Consumers pin a data version by pinning a package version or a git ref of this repo. Each manifest.json carries data_version, schema_version, crawled_at, per-file sha256 and entity counts; derived/changelog.json records what changed between versions (served by the framework server as get_changelog). Schema-breaking changes bump schema_version and require a server release. Releases are cut from a v* tag; see docs/release-runbook.md.

License and attribution

Code: MIT (see LICENSE). Content, each CC BY 4.0, restructured and adapted — see NOTICE.md for the required attribution and modification notices:

  • data/framework/**: © FinOps Foundation

  • data/focus/**: © FinOps Foundation / FOCUS project contributors

  • data/tokenomics/**: © Tokenomics Foundation (a Series of LF Projects, LLC)

FinOps™, FinOps Foundation™ and FOCUS™ are trademarks of the FinOps Foundation. This project is independent and not affiliated with or endorsed by the FinOps Foundation, the FOCUS project, or the Tokenomics Foundation.

Documentation

docs/guide/ is the usage guide: nine self-contained pages in which every number, quote and transcript was captured from a live probe of these servers or computed from the committed sample data. It is also the published site: .github/workflows/pages.yml deploys docs/guide/, and only that directory, to https://aaronmsoto.github.io/finops-framework-mcp/ on every push to main that touches it (setup and smoke test in docs/deploy-pages.md).

Page

What it covers

Intro & Getting Started

All three servers side by side; install, Claude Code / Claude Desktop / .mcp.json config, the Worker remote option, the first call against each server

Framework MCP reference

Data model, all 11 tools grouped by job, prompts and resources, pagination, an Anomaly Management demo

FOCUS MCP reference

Version model, all 9 tools, focus:// resources, a BilledCost deep-dive and the 1.0→1.2 diff

Tokenomics MCP reference

Sources and their status, the Seven-Layer Stack and Big-T, all 20 tools, prompts, tokenomics:// resources, cross-links, a model-routing and AI-gateway demo

Showback Reporting

Allocation + Reporting & Analytics → the FOCUS columns a showback needs → a report computed from the official sample

Rate Optimization (ESR)

Capability → featured KPIs → FOCUS columns at 1.0 vs 1.2 → Effective Savings Rate on the official sample

Forecasting Journey

A maturity journey to Walk-level Forecasting: official Crawl/Walk characteristics, KPIs, and the data that feeds a forecast

Quick Q&A

Four unscripted live prompts in one session across the framework and FOCUS servers

Is Prompt Caching Paying Off?

All three servers: the framework's Cache Hit Rate KPI → the Tokenomics formula and calculator on two workloads → where cached-token data lives in FOCUS 1.2 and 1.5

Every page opens over file:// too; the guide has no external assets. Guide pages are rich HTML by design, an intentional exception to this repo's markdown-for-docs convention recorded in .agents/memory/decisions.md.

Development

  • Agent instructions: AGENTS.md · design: docs/architecture.md (adversarial reviews: docs/critique-1.md, docs/critique-2.md, docs/critique-3-publish-gate.md, docs/critique-4-focus-gate.md, docs/final-status-review.md) · tokenomics design: docs/designs/tokenomics-overview-mcp.html

  • Gates: ./scripts/agentic gates · tests: npm test (fixture-based, no network) · evals: evals/framework/ (docs/eval-results.md)

  • Working in a clone: the checked-in .mcp.json loads all three servers into MCP clients that read it, running the published packages via npx so a fresh clone works with no build. To exercise your working tree instead, cp .mcp.json.example .mcp.json and build first (dist/ is gitignored), then restart the client; clients read MCP config only at startup. See CONTRIBUTING.md.

  • Releasing: docs/release-runbook.md.

Available Tools

11 tools
assess_maturity_pathMaturity gap between two levelsA
Read-onlyIdempotent

For one capability, the official maturity assessment text at each level between current and target — evidence to look for when maturing. To get one level's assessment text on its own (or all three at once), use get_maturity_assessment instead.

Inputs: capability (required), target_level (required), current_level (required). Returns: gap, capability

get_capabilityGet one capabilityA
Read-onlyIdempotent

One capability's content, section-selectable via include to control size. Default include is [summary, definition] (~1-2k tokens). Approximate extra cost per section: maturity ~2.5k tokens, activities ~3k (filter with persona), kpis ~1k, headline_groups/inputs_outputs <1k; requesting ALL sections is roughly 7k tokens — prefer the finops://framework/capabilities/{slug} resource for the full document.

Inputs: capability (required), include, persona. Returns: uri, slug, title, domain, +3 more

get_changelogData changelogA
Read-onlyIdempotent

What changed between data versions of this server's crawled artifact (rolling window of the 20 most recent refreshes — the crawler caps the log at 20, so this tool covers the full retained history; the same data is at finops://framework/meta/changelog). Reflects crawl-to-crawl differences in finops.org content, not a Foundation-published changelog.

Inputs: limit. Returns: entries, current_version

get_entityGet full text of a small framework entityA
Read-onlyIdempotent

Full rendered markdown for entity types that have no dedicated tool. Required param: entity_type (principles | phases | domains | technology-categories | scopes | persona). Collections return whole (they are small); entity_type 'persona' also needs slug. For capabilities use get_capability; for KPIs get_kpis; for maturity levels get_maturity_model.

Inputs: entity_type (required), slug. Returns: uri, slug, markdown, entity_type

get_framework_infoFramework & server orientationA
Read-onlyIdempotent

Start here. Returns the framework's structure (entity counts), the data version/crawl date/license, and how to navigate this server's tools. No parameters.

Inputs: no named parameters. Returns: counts, license, crawled_at, overview_md, +1 more

get_kpisGet KPIs (full records)A
Read-onlyIdempotent

Full KPI records: description, formula + candidate data sources (present for the 44 KPIs the site details in capability-page popups), official related capabilities, and where each is featured. Look up one KPI with slug, or filter by capability and/or featured_only — filters combine (AND), so a slug that doesn't match the capability filter returns zero records. Without filters, pages through the whole 88-entry library.

Inputs: slug, limit, cursor, capability, +1 more. Returns: kpis, total, nextCursor

get_maturity_assessmentGet official maturity assessmentA
Read-onlyIdempotent

The official FinOps Framework maturity assessment prose for a capability, verbatim, at one level (crawl|walk|run) or all three. This is the Foundation's published assessment text, not a parsed breakdown.

Inputs: capability (required), level. Returns: levels, capability

get_maturity_modelGet the maturity modelA
Read-onlyIdempotent

The official FinOps maturity model: Crawl/Walk/Run with each level's characteristics and the community's sample goals/KPIs (e.g. allocation coverage targets per level). Capability-agnostic — for one capability's per-level assessment use get_maturity_assessment.

Inputs: no named parameters. Returns: official_levels, unofficial_extension

list_capabilitiesList capabilitiesA
Read-onlyIdempotent

All 22 capabilities (slug, title, domain, one-line summary), optionally filtered by domain and/or persona (both take a slug, e.g. domain="understand-usage-and-cost", persona="finance"). The framework does not assign capabilities to phases, so there is deliberately no phase filter. Default limit returns the full list in one call.

Inputs: limit, cursor, domain, persona. Returns: note, total, nextCursor, capabilities

map_personasPersona ↔ capability mappingA
Read-onlyIdempotent

With persona: every capability that persona works in, WITH that persona's activity bullets inline (one call answers 'what does X do across the framework'). With capability: every persona active in it, with activities. With neither: the full persona index (slugs, categories) — use it to discover persona slugs. Passing both is an error — pick one direction per call. Allied personas are mapped at group level by the framework; responses say so explicitly.

Inputs: persona, capability. Returns: mode, note, entries, license, +1 more

search_frameworkSearch the frameworkA
Read-onlyIdempotent

Ranked keyword search over every entity (capabilities, KPIs, personas, principles, phases, domains, technology categories, maturity levels, scopes). Returns slug + uri per hit. Feed the slug to get_kpis(slug: …), or pass it as capability: <slug> to get_capability/get_maturity_assessment/assess_maturity_path/map_personas and as persona: <slug> where a persona filter is accepted. Other entity types (principles, phases, domains, technology categories, scopes) are read via get_entity(entity_type: …) or the hit's finops:// resource uri. Use this whenever you don't already know a slug.

Inputs: query (required), limit, cursor, entity_types. Returns: total, results, nextCursor

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.3/5.0

    Scored across 11 tools

    Disambiguation4/5

    Most tools target distinct entity types or actions, and descriptions explicitly steer users (e.g., get_maturity_assessment vs assess_maturity_path vs get_maturity_model). The maturity trio has some conceptual overlap, but the prose clarifies when to use each.

    Naming Consistency5/5

    All names use consistent snake_case with clear verb_noun structure (get_*, list_*, search_*, assess_*, map_*). The pattern is predictable across the entire tool set.

    Tool Count5/5

    11 tools is well within the ideal 3-15 range for a multi-entity framework browser. Each tool corresponds to a distinct entity type or workflow, with no excessive fragmentation.

    Completeness5/5

    The surface covers discovery, capabilities, KPIs, personas, maturity assessment/path/model, generic entities (principles, phases, domains, technology categories, scopes), and changelog. This is comprehensive read-only coverage for the FinOps Framework domain.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to query multi-cloud cost and usage data through a uniform read-only toolset, including cost summaries, trends, budgets, forecasts, and optimization recommendations.
      MIT
    • A
      license
      A
      quality
      A
      maintenance
      Enables MCP-compatible AI clients to retrieve FinOps-aligned knowledge and runbooks on demand, covering cloud cost optimization across AWS, Azure, GCP, and OCI, AI inference economics, Kubernetes, data platforms, allocation, chargeback, anomaly management, and waste detection.
      7
      66
      CC BY-SA 4.0
    • F
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants to analyze AWS cloud costs, audit for waste, monitor budgets, and generate FinOps reports using natural language across multiple AWS profiles and regions, while keeping credentials on the local machine.
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables an AI assistant to retrieve IT system status and search or rebuild a vector-indexed knowledge base of operational runbooks. It supports local, tool-grounded responses over stdio for Ollama-based agents, helping prevent hallucinated IT operations guidance.
      MIT