Unofficial MCP server for AI tokenomics: Big-T notation, cache metrics, levers, FOCUS 1.5 AI.
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.
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.
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:
official: false).FINOPS_MCP_EXPERIMENTAL=1.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).
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:
BilledCost mean in 1.2, and what changed since
1.0?", "Which columns do I need to compute Effective Savings Rate?"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.
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.focus://spec/… resources
and 3 prompts. See packages/finops-focus-mcp.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.
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).
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.
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
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.
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 Foundationdata/focus/**: © FinOps Foundation / FOCUS project contributorsdata/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.
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.
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./scripts/agentic gates · tests: npm test (fixture-based, no
network) · evals: evals/framework/ (docs/eval-results.md).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.docs/release-runbook.md.Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y tokenomics-overview-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-aaronmsoto-tokenomics-overview-mcp": {
"command": "npx",
"args": [
"-y",
"tokenomics-overview-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceio.github.aaronmsoto/tokenomics-overview-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.