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.
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:
- 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
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 version | Mandatory | Conditional | Recommended | Total |
|---|---|---|---|---|
| 1.0 | 21 | 20 | 2 | 43 |
| 1.2 | 21 | 32 | 4 | 57 |
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 {}
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.)
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).
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)
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:
framework · get_framework_info {} → content[0].text, “How to navigate”
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.
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.