FinOps MCP Servers — Usage Guide

Source on GitHub ↗

Page 1 of 9 · Intro & Getting Started

Three MCP servers for FinOps and AI tokenomics

This repository ships an independent, unofficial agentic interface to published FinOps and AI-cost guidance: one MCP server for the FinOps Framework, one for the FOCUS™ specification, and one for the Tokenomics Foundation's AI tokenomics guidance. All three are read-only, offline, cite their sources, and label every derived answer as unofficial. This page gets them running in your client and shows the first call against each.

finops-framework-mcp · 11 tools · data v2.1.1 finops-focus-mcp · 9 tools · FOCUS 1.0 + 1.2 tokenomics-overview-mcp · 20 tools · data v2.0.0
github.com/aaronmsoto/finops-framework-mcp ↗

Everything on this site is open source: all three servers, the crawlers that build their data, the committed data artifacts, and the pages of this guide. MIT-licensed code, CC BY 4.0 content. Issues and pull requests welcome.

1

What this repo is

An LLM asked “how mature is our Allocation practice?”, “which FOCUS columns do I need for effective savings rate?” or “is our prompt caching paying off?” will happily improvise. These three servers exist so it doesn't have to: they serve the publishers' own text and formulas, structured, with the source URL and licence attached to every response.

Each server is the same three decoupled parts — and the last two run with no network access at all:

crawler ──▶ markdown-canonical data artifact ──▶ stdio MCP server
  • Official by default. Out of the box the framework server serves only content published on finops.org/framework, restructured — no invented relationships between capabilities, no maturity levels beyond the Foundation's Crawl / Walk / Run.
  • Unofficial work is labelled, not hidden. The FOCUS server's KPI mapping, KPI calculation and 1.0→1.2 diff ship in the default surface but carry UNOFFICIAL in-text and official: false in structured output.
  • Reproducible. The data artifacts are committed; cli.js derive regenerates every JSON file from the canonical markdown offline, and the servers validate the artifact at startup and refuse to run on a bad one.
  • Version-pinned. FOCUS answers are always scoped to a spec version rather than blended across releases.
  • Status on every answer. Most Tokenomics Foundation guidance is a working draft or release candidate; the tokenomics server states each source's status rather than presenting it as a standard.

framework · get_framework_info {} · focus · list_versions {} · tokenomics · get_tokenomics_info {} · all three list-tools

2

The three servers, side by side counts from live probes

Every number in these three cards was read out of a live server response, not a hand-maintained list.

finops-framework-mcp

The FinOps Framework · finops.org/framework · data v2.1.1, crawled 2026-07-23

The operating model: what a capability is, its official Crawl/Walk/Run assessment prose, who does what in it, and which KPIs it publishes.

6
Principles
3
Phases (Inform / Optimize / Operate)
4
Domains
22
Capabilities
11
Personas (6 core + 5 allied)
5
Technology Categories
3
Maturity levels
88
KPI library entries
11
tools
4
prompts
44
resources listed + 4 URI templates (finops://)

finops-focus-mcp

The FOCUS™ specification · versions 1.0 and 1.2 · latest 1.2

The data contract: what each billing column means in a given spec version, its normative MUST/SHOULD requirements, and what changed between releases.

1.0
43 columns, 9 attributes (source tag v1.0)
1.2
57 columns, 9 attributes (source tag v1.2) — the default
9
tools
3
prompts
125
resources listed + 4 URI templates (focus://)

tokenomics-overview-mcp

Tokenomics Foundation · tokeneconomics.com · data v2.0.0, crawled 2026-10-19

The AI cost model: what sets the price of a token, how consumption scales with usage and autonomy, and which levers (caching, right-sizing, model routing, budgets) bring it down.

14
source documents, each with its publication status
7
Seven-Layer Stack layers (L0 Energy … L6 Demand)
6
Big-T complexity classes, T(1) … T(∞)
32
consumption levers
7
reference metrics (Cache Hit Rate, Cache Cost Efficiency …)
18
FOCUS 1.5 AI-cost capability cards
35
quote-backed cross-links into the other two servers
20
tools
3
prompts
83
resources listed + 6 URI templates (tokenomics://)

FOCUS columns by feature level

Spec versionMandatoryConditionalRecommendedTotal
1.02120243
1.22132457

The mandatory count is identical in both versions — all 14 columns 1.2 adds land in the Conditional and Recommended tiers. The FOCUS server page walks the full 1.0→1.2 diff.

framework · get_framework_info {} · list-prompts · list-resources · list-resource-templates

focus · list_versions {} · list_columns {version, feature_level} × 6 · list-prompts · list-resources

tokenomics · get_tokenomics_info {} · list-tools · list-prompts · list-resources · list-resource-templates · get_crosslinks {}

3

Getting started — install

All three servers are published on npm — finops-framework-mcp, finops-focus-mcp and tokenomics-overview-mcp, each a stdio binary — so an MCP client only ever needs a command and its arguments, and there is nothing to clone or build. Each package carries its own data artifact, so each runs offline after install. Node >=22 is the only requirement. Install the ones you need; they work independently and better together.

# run any server directly — stdio, nothing to configure
npx -y finops-framework-mcp
npx -y finops-focus-mcp
npx -y tokenomics-overview-mcp

# or from a clone of this repo
npm install && npm run build && npm run server

Each server loads the data artifact packaged with its release. To point one at a locally-refreshed artifact, use FINOPS_MCP_DATA (framework) or FOCUS_MCP_DATA (FOCUS) or TOKENOMICS_MCP_DATA (tokenomics), or pass the directory as the server's first CLI argument. Set FINOPS_MCP_EXPERIMENTAL=1 to turn on the clearly-labelled unofficial extras, such as the tokenomics crosswalk.

Claude Code — one command per server

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 Code — project-scoped .mcp.json

Commit this at the repo root to give everyone on the project all three servers:

{
  "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"]
    }
  }
}

Claude Desktop — claude_desktop_config.json

{
  "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"]
    }
  }
}

Same shape either way — any generic stdio MCP client takes the identical {"command": "npx", "args": ["-y", "finops-focus-mcp"]} pair. (-y skips npx's first-run install prompt, which can hang non-interactive MCP clients.)

4

Or run them remotely — the Cloudflare Worker

All three servers are also deployable over Streamable HTTP from a single bundled Cloudflare Worker (src/workers/), which serves each one at its own path with the same default tools as the stdio package (experimental tools stay stdio-only).

POST /mcp/framework POST /mcp/focus POST /mcp/tokenomics

The Worker builds a fresh MCP server and transport per request — stateless by design: no session state persists across requests or isolates, and there is no user-supplied data path (calculate_kpi computes only over the bundled samples, exactly as the stdio servers do, and calculate_cache_metrics uses the token counts in the request and keeps nothing). All three data artifacts are compiled into the bundle at build time; nothing reachable from the Worker entry point touches node:fs at runtime, and a test statically walks the import graph to keep it that way.

Two operational notes before you point a browser at it. Requests with no Origin header — stdio-bridged and server-to-server MCP clients — are always allowed; browser requests need their origin on the Worker's ALLOWED_ORIGINS allowlist, which is also what drives CORS. There is deliberately no authentication, because the Worker serves only public, read-only content with no per-user state behind it; a per-IP rate limit (60 requests per 60 seconds, then 429) guards the three /mcp/* routes.

There is no public hosted endpoint to point you at here — deploying is a human approval point in this repo, so the URL is whatever the operator's own wrangler deploy produces. A deployment smoke test looks like this:

curl -s "$WORKER_URL/mcp/focus" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

To use a deployed Worker from an MCP client that speaks Streamable HTTP, give it the route's URL instead of an npx command:

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

source: docs/deploy-worker.md (owner deployment checklist)

5

Your first call against each server official

Each server publishes a “start here” tool. Below is real output from each, captured through the repo's own MCP client bridge, which is the same stdio protocol your client will speak.

finops-focus-mcp · list_versions

Call this first: it tells you which version values every other FOCUS tool will accept.

$ node evals/framework/mcp-call.mjs --server=focus call list_versions '{}'
{
  "content": [
    {
      "type": "text",
      "text": "- 1.0: 43 columns, 9 attributes (source v1.0)\n- 1.2 (latest): 57 columns, 9 attributes (source v1.2)"
    }
  ],
  "structuredContent": {
    "latest": "1.2",
    "versions": [
      {
        "spec_version": "1.0",
        "source_tag": "v1.0",
        "data_version": "1.0.1",
        "is_latest": false,
        "counts": {
          "attributes": 9,
          "columns": 43
        }
      },
      {
        "spec_version": "1.2",
        "source_tag": "v1.2",
        "data_version": "1.0.1",
        "is_latest": true,
        "counts": {
          "attributes": 9,
          "columns": 57
        }
      }
    ]
  }
}

focus · list_versions {}

finops-framework-mcp · get_capability

Capability documents are large, so get_capability is section-selectable via include — here, the summary alone. Note the two things that come back on every official response: a source_url pointing at the page the text came from, and the CC BY 4.0 attribution footer.

$ node evals/framework/mcp-call.mjs call get_capability \
    '{"capability":"anomaly-management","include":["summary"]}'
{
  "content": [
    {
      "type": "text",
      "text": "{\n  \"slug\": \"anomaly-management\",\n  \"title\": \"Anomaly Management\",\n  \"domain\": \"understand-usage-and-cost\",\n  \"sections\": {\n    \"summary\": \"Detect, identify, alert and manage unexpected or unforecasted technology cost and usage irregularities in a timely manner to lower risk and ensure cost-effective operations.\"\n  },\n  \"uri\": \"finops://framework/capabilities/anomaly-management\",\n  \"source_url\": \"https://www.finops.org/framework/capabilities/anomaly-management/\",\n  \"license\": \"CC-BY-4.0\"\n}\n\n---\nSource: https://www.finops.org/framework/capabilities/anomaly-management/ — © FinOps Foundation, licensed CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Content restructured and adapted by finops-framework-mcp (data v2.1.1, crawled 2026-07-23); unofficial extensions are always marked."
    },
    {
      "name": "anomaly-management",
      "uri": "finops://framework/capabilities/anomaly-management",
      "description": "Full anomaly-management capability document",
      "mimeType": "text/markdown",
      "type": "resource_link"
    }
  ],
  "structuredContent": {
    "slug": "anomaly-management",
    "title": "Anomaly Management",
    "domain": "understand-usage-and-cost",
    "sections": {
      "summary": "Detect, identify, alert and manage unexpected or unforecasted technology cost and usage irregularities in a timely manner to lower risk and ensure cost-effective operations."
    },
    "uri": "finops://framework/capabilities/anomaly-management",
    "source_url": "https://www.finops.org/framework/capabilities/anomaly-management/",
    "license": "CC-BY-4.0"
  }
}

framework · get_capability {capability: "anomaly-management", include: ["summary"]}

tokenomics-overview-mcp · get_tokenomics_info

The entry point lists every source document with its publication status, then suggests where to go next. The text content is shown below with nine of the fourteen document lines elided.

$ node evals/framework/mcp-call.mjs --server=tokenomics call get_tokenomics_info '{}'
Tokenomics Foundation data v2.0.0 (crawled 2026-10-19). Sources are mostly drafts and release candidates — cite the status.

- What Is AI Tokenomics? — Tokenomics Draft Definition v0.5.2 (September 1 2026) [what-is-tokenomics]
- The Seven-Layer Tokenomics Stack — Release Candidate (projects index label) [seven-layer-stack]
- AI Tokenomics Prompt Cache Explainer — Release Candidate 1 (2026-09-22) [cache-explainer]
- Routing Wars: Tokenomics in Action — Podcast episode 16 (survey data described as early, directional) [routing-wars]
- The State of AI Tokenomics: Top Takeaways — Podcast episode 18 (final State of AI Tokenomics survey figures) [state-of-ai-tokenomics-takeaways]
  … 9 more documents …

Start here:
- get_bigt_notation — classify how a workload's token cost grows
- list_layers — the Seven-Layer Stack and where each lever sits
- get_metric cache-hit-rate / calculate_cache_metrics — measure prompt caching
- get_crosslinks — hop to finops:// (FinOps Framework) and focus:// (FOCUS) servers

tokenomics · get_tokenomics_info {} → content[0].text (document list shortened)

Don't know a slug? Don't guess

All three servers ship a ranked keyword search whose whole job is turning words into slugs you can feed to the other tools — search_framework {query}, search_focus {query, version} and search_tokenomics {query}. Each hit returns a slug and a resource URI. And if you'd rather orient than search, get_framework_info {} returns the framework's structure and a short navigation guide in one call:

“Look up anything by keyword: search_framework. Browse: list_capabilities (filter by domain or persona), then get_capability with an include list to control size.”

framework · get_framework_info {} → content[0].text, “How to navigate”

6

Where to go next

Three reference pages, then five worked examples: three planned walkthroughs and a live, unscripted Q&A session that pair the framework and FOCUS servers, and one that uses all three servers on an AI cost question. Every number and quote on all eight is produced the same way as the transcripts above.

finops-framework-mcp reference

The data model (domains → capabilities → KPIs / personas / maturity), the 11 tools grouped discover → read → search → assess, prompts, finops:// resource URIs, pagination, and how official content is marked. Worked demo: Anomaly Management, end to end.

finops-focus-mcp reference

The version model, the 9 tools grouped versions → columns / attributes → requirements → search → diff → unofficial KPI mapping, prompts and focus:// resources. Worked demo: BilledCost at both versions plus the 1.0→1.2 diff.

tokenomics-overview-mcp reference

What the Tokenomics Foundation sources say and how settled each is, the Seven-Layer Stack and Big-T notation, the 20 tools grouped by job, prompts, tokenomics:// resources, and the 35 quote-backed cross-links. Worked demo: model routing and AI gateways.

Worked example · Showback

Understand Usage & Cost → Allocation and Reporting & Analytics → the exact FOCUS columns a showback report needs → a real showback table computed from the bundled official sample data.

Worked example · Rate Optimization (ESR)

Capability → four featured KPIs → the six FOCUS columns that feed them at 1.0 vs 1.2 → effective savings rate computed on the official sample — and what the server does when a KPI isn't computable.

Worked example · Forecasting journey

A maturity journey to Walk-level Forecasting: verbatim official Crawl→Walk requirements, supporting capabilities and KPIs, then the FOCUS columns that feed a forecasting pipeline.

Worked example · Quick Q&A

Four unscripted prompts in one live session: capabilities by domain, a capability summary, a Crawl→Walk maturity gap with validating KPIs, and starter Unit Economics KPIs from FOCUS 1.2.

Worked example · Is prompt caching paying off?

All three servers: the framework's Cache Hit Rate KPI → the Tokenomics Foundation formula and calculator on two workloads → the FOCUS columns, today and in 1.5, that carry cached-token data.

The one-minute version

Install the bins (npx -y finops-framework-mcp, npx -y finops-focus-mcp, npx -y tokenomics-overview-mcp), register them in your client with the same command/args pair, then start every session with get_framework_info {}, list_versions {} and get_tokenomics_info {}. Ask the framework server what good looks like, the FOCUS server which columns prove it, and the tokenomics server what drives AI token cost and how to bring it down. Anything the servers derived rather than quoted arrives already labelled unofficial — believe the label.