statlyte — live LLM pricing

io.github.richardwilkinson9由 GitHub 账号 richardwilkinson9 发布v0.1.1更新于 Oct 24, 2026

Live LLM pricing, context windows and model ids, read from each vendor's own page every 3 hours.

已验证STDIO仅桌面金融AI 与机器学习

概览

AI 生成的概览

一个本地 MCP 服务器,为助手提供 13 家供应商、159 个 LLM 的实时 API 价格、上下文窗口和模型 ID,每三小时刷新。

可以做什么
列出各供应商的模型及其 ID 和上下文窗口,并按 statlyte ID 或供应商 API ID 查询单个模型的价格,包括缓存读取费率和按分钟或字符计费的非 token 音频价格。估算给定输入输出 token 量的成本,并按指定工作负载的月度成本对模型排序。报告供应商已公布但尚未生效的调价及其生效日期。网络不可用时回退到内置快照或离线模式。
适用场景
当助手需要当前模型价格或上下文上限而非记忆中的数字时适用,例如估算某项工作负载的成本、按价格比较模型,或检查已公布的涨价是否影响所用模型。
运行要求
通过 stdio 在本地运行,通常用 npx 启动,需要 Node.js 和网络访问。无需 API 密钥、账户或环境变量;离线选项仅使用内置快照。
安装前请注意
价格是从供应商页面读取的标价;协议价、企业价和地区价可能不同,商业决策前应向供应商确认。最便宜不等于能力可替代。数据来自第三方页面,可能滞后或有误。工具为只读,不索取任何凭据。

安装

在 SourceWeft 中

  1. 打开 控制台中的 statlyte — live LLM pricing,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

statlyte

Live pricing, context windows and identifiers for every major LLM API — so you can stop hardcoding a model table that goes stale.

Every app that touches an LLM ends up with something like this pasted into it:

js
const PRICES = {  'gpt-4o': { input: 2.5, output: 10 },  'claude-3-5-sonnet': { input: 3, output: 15 },  // …written once, wrong within a month};

Then a model is retired, a new one lands, an introductory rate expires, and your cost dashboard is quietly lying to you. This package fetches the current numbers instead.

  • 159 models across 13 providers — Anthropic, OpenAI, Google, xAI, DeepSeek, Mistral, Together AI, Voyage AI, Groq, Cohere, Fireworks AI, Deepgram, AssemblyAI
  • Read from each vendor's own published pricing page, every three hours, with the source URL recorded
  • Zero dependencies. Node, Bun, Deno, Cloudflare Workers, browser
  • Bundled snapshot fallback, so a flaky network never throws in your request path
  • MIT. The data is free and the API needs no key
bash
npm i statlyte

Use it

js
import { getModel, costOf, rankByCost, scheduledChanges } from 'statlyte';
// What does this actually cost me?await costOf('claude-sonnet-5', { input: 12_000, output: 800 });// => 0.032
// Look up by statlyte id or the vendor's own API idconst m = await getModel('gpt-5-mini');m.contextWindow;        // 400000m.prices.input;         // 0.25  (USD per million tokens)m.prices.cache_read;    // 0.025
// Cheapest model for a real monthly workloadconst ranked = await rankByCost({ inputPerMonth: 620e6, outputPerMonth: 210e6 });ranked[0].name;         // cheapest firstranked[0].monthlyCost;  // USD/month
// Price rises vendors have already announcedawait scheduledChanges();// [{ name: 'Claude Sonnet 5', effectiveOn: '2026-09-01',//    from: { input: 2, output: 10 }, to: { input: 3, output: 15 },//    reason: 'Introductory pricing ends' }]

Everything is cached in-process for six hours. Pass { offline: true } to any call to use only the bundled snapshot and never touch the network.

Audio/transcription models (Deepgram, OpenAI Whisper/TTS) aren't priced per token — they carry m.nonTokenPrice ({ unit: 'per_minute' | 'per_million_characters', amount }) instead, and m.prices is {}. costOf() throws a clear error rather than silently returning 0 if you call it on one of these; check m.nonTokenPrice first, or filter on m.prices.input != null.

Fail your build when a price is about to change

The genuinely useful trick. scheduledChanges() returns increases vendors have announced but not yet applied — so you can find out at build time rather than on the invoice:

js
// scripts/check-model-costs.mjsimport { scheduledChanges } from 'statlyte';
const MODELS_WE_USE = ['anthropic/claude-sonnet-5', 'openai/gpt-5-mini'];const soon = (await scheduledChanges())  .filter((c) => MODELS_WE_USE.includes(c.id))  .filter((c) => new Date(c.effectiveOn) - Date.now() < 60 * 86400_000);
if (soon.length) {  console.error('Price change coming:');  for (const c of soon) {    console.error(`  ${c.name} on ${c.effectiveOn}: ` +      `in $${c.from.input}→$${c.to.input}, out $${c.from.output}→$${c.to.output} per MTok`);  }  process.exit(1);}

MCP server

An assistant's training data goes stale on prices within weeks, and a guessed number is worse than no number. This gives your agent the current figures:

bash
claude mcp add statlyte -- npx -y statlyte
Other MCP clients
json
{  "mcpServers": {    "statlyte": {      "command": "npx",      "args": ["-y", "statlyte"]    }  }}

Tools: list_models, get_model_pricing, estimate_cost, cheapest_for_workload, scheduled_price_changes.

Also listed in the official MCP Registry as io.github.richardwilkinson9/statlyte.

Or just take the JSON

No install, no key, CORS open:

https://statlyte.com/api/v1/modelshttps://statlyte.com/api/v1/models/anthropic/claude-opus-5https://statlyte.com/api/v1/changes

The raw dataset also lives in this repo as models.json and changes.json, updated by commit — so you can diff it, pin it, or vendor it.

Where the numbers come from

A job re-reads each provider's published pricing page every three hours. When a figure differs from the last one on file it writes a new observation with a timestamp and the URL it was read from. Nothing is inferred and nothing is estimated: if a price isn't published, it isn't listed.

Two honest caveats:

  1. These are list prices. Negotiated, enterprise, regional and committed-spend rates differ, sometimes a lot. Confirm with the vendor before making a commercial decision.
  2. Cheaper is not the same as substitutable. This records what models cost, not what they can do. rankByCost will happily tell you an 8B model is cheaper than a frontier one. That is arithmetic, not advice.

Found a figure that disagrees with a vendor's page? The vendor is right and we're wrong — open an issue and it gets fixed on the next run.

The rest of it

statlyte.com has the human-facing side: a change log, a calculator that puts two models head to head at your own volume, and a calendar of announced changes. Free, no account.

MIT licensed. Attribution appreciated, not required.

来源:README.md,提交 045e235

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分