OptimToken MCP Server
By OptimNow · Free · No authentication · Read-only public pricing data
Bring live AI and cloud pricing into your assistant. This Model Context Protocol server gives Claude, ChatGPT, and any MCP-compatible client 8 tools to compare LLM prices, pick a model that fits a budget, estimate workload costs, see which host sells a model cheapest, see which quoted prices moved in the last 7 days, benchmark cloud compute instances, and find the volume at which renting your own GPUs costs the same as paying an API, without leaving the conversation.
https://optimtoken-mcp.optimnow.io/mcpno authread-onlyfree
MCP registry name: io.github.OptimNow/ai-pricing-hub
Connect in 2 minutes
| Client | How |
|---|---|
| Claude (web & desktop) | Settings → Connectors → Add custom connector → paste the server URL above → Add. No credentials needed. |
| Claude Code | claude mcp add ai-pricing-hub --transport http https://optimtoken-mcp.optimnow.io/mcp |
| ChatGPT | Settings → Apps & Connectors → enable Developer mode → add the server URL. |
| Other MCP clients | Register a remote server with transport streamable-http and the URL above. |
Tools
The server has 8 tools. The 5 that price LLM APIs overlap on purpose: which one is right depends on
whether you want a shortlist, a single answer, a head-to-head, arithmetic on your own numbers, or the price at each host.
track-llm-price-changes reads this site's price archive instead: which quoted prices moved in the last
7 days, and how one model's quoted price has changed since tracking began.
The other 2 bring in cloud compute: instance prices on their own, and the monthly volume at which renting GPUs
costs the same as paying an API.
| Tool | Use it when | Key parameters |
|---|---|---|
compare-llm-models |
You want to see the field. Browse and filter the whole catalogue and get a ranked table of price, Arena ELO quality, efficiency and capabilities, for example “show me models under $1/1M”, “which providers have vision models”. The table is ordered by Arena ELO unless sortBy asks for efficiency, cost, optimizedCost, inputPrice or outputPrice. |
provider, category, openness, capability, maxInputPrice, maxOutputPrice, minElo, useCasePreset, volumePreset, sortBy, limit |
recommend-llm-model |
You want an answer, not a table. Returns a ranked top 3 for one workload under a budget, ELO floor, required capability or self-hostability, each with a per-constraint satisfied/violated breakdown. An over-constrained query is reported as such, with the nearest misses. A model whose maker has announced its retirement is never recommended: retiredExcludedCount counts them, and retiredNotRecommended names the ones that would have ranked. |
useCasePreset, volumePreset, maxMonthlyBudget, minElo, requiredCapability, openness |
compare-models-side-by-side |
You already have 2–4 models in mind. Compares them across all 8 use-case profiles at a chosen monthly volume, list and optimized cost for each. A name that matched nothing or matched several models is called out rather than silently dropped. | models, volumePreset |
estimate-llm-cost |
You have your own numbers. Costs a workload with exact token counts per request and any monthly volume, rather than the 10K/100K/1M presets the other tools use. Also prices one named model across every use-case profile. | modelName, useCasePreset, customInputTokens, customOutputTokens, cacheHitRate, batchEligible, monthlyVolume |
compare-model-hosts |
You want to know who sells it, and at what price. For 1–4 named models, returns how many hosts sell each, the cheapest, the dearest, the model maker's own rate, any promotional listing, and what the workload costs at each. It then lists every host with its rate, cheapest first, the platforms the model is listed on and its Amazon Bedrock regions, read from this site's /api/model-hosts. hostList.available says whether that list was read: without it, the hosts in between are not listed. An absent platform or region is not known, never “not sold there”. A promotional rate is labelled because it ends, and a quantized build because it is not the same product. |
models, useCasePreset, volumePreset |
track-llm-price-changes |
You want to know what moved. With no model named, returns the moves of the last 7 days: each model whose quoted price changed by 1% or more on the blended price (30% input, 70% output), with the price before and after and what the move does to a workload's monthly bill. Most models are sold by several hosts and this site quotes one of them, so a move flagged as a change of quoted host or as an outlier listing is returned apart (flaggedMoves) from the price changes (priceChanges). A move with no flag is not thereby a repricing by the model maker: no flag means none was established. With 1–4 models named, returns each model's quoted price since tracking began, change by change. Read from this site's /api/price-changes, with no fallback: when the archive cannot be read the tool returns an error, never an empty list. |
models, direction, provider, includeFlagged, limit, useCasePreset, volumePreset |
compare-compute-pricing |
You want cloud compute, not tokens. Benchmarks VM/instance prices across AWS, Azure, GCP, DigitalOcean, OCI, OVH and Alibaba Cloud (on-demand, spot, commitments), filtered by region, size, processor or use case. Each row prints the 1-year and 3-year commitment rates as an effective hourly rate, with the saving of each against that row's on-demand rate. | region, provider, category, minVCPUs, maxVCPUs, minMemory, maxMemory, processor, useCase, sortBy, limit |
estimate-self-hosting-breakeven |
You are weighing an API against your own GPUs. Returns the monthly volume at which renting an instance costs the same as paying a model's API per token, at every rate the instance lists (on demand, spot, 1-year and 3-year commitments), against the API at list price, at the optimized price and at the cheapest host. It assumes no throughput: without outputTokensPerSecond it states the output tokens per second each break-even would require. It assumes no staffing cost: without monthlyOperationsCost the figures are hardware rent only. It does not check that the instance can hold the model, and it says whether the model's weights are published at all. |
model, instanceType, provider, region, hourlyRate, instanceCount, outputTokensPerSecond, monthlyOperationsCost, useCasePreset, customInputTokens, customOutputTokens, cacheHitRate, batchEligible, monthlyVolume |
Wherever a model appears, a tool labels one whose maker has announced the retirement of
its API, with the shutdown date and the replacement the maker names. Such a model loses the FinOps
Friendly badge. The notices come from this site's own table, published on the rows of
/api/llm-models, and each response dates them. A model with no label has no notice on
record, which is not a guarantee.
Every LLM cost is reported twice: the list price, and the optimized price achievable with prompt caching and, where the use case allows it, the batch API.
With custom token counts, estimate-llm-cost takes your own assumptions:
cacheHitRate (0 to 1) for the share of input read from the prompt cache, and
batchEligible for an asynchronous workload. Each result names its
optimizationBasis: preset, caller-supplied, or
none-supplied, where the optimized cost repeats the list price because nothing was assumed.
Try these prompts
- “What should I use for support tickets under $500 a month?”
- “Compare Claude Sonnet 5 and GPT-5.5 for a customer-support workload.”
- “About 800 tokens in and 200 out, 4 million calls a month: what does that cost?”
- “Where is Llama 3.3 70B cheapest, and is that the model maker's own price?”
- “Which LLM prices moved this week, and which of those moves are flagged?”
- “Show me the cheapest frontier-quality models with vision support under $5/M output.”
- “Find the cheapest 4 vCPU / 16 GB instances across all clouds.”
- “At what volume does self-hosting Llama 3.3 70B on a g6e.4xlarge pay off?”
Data sources & freshness
- LLM pricing: live via the OpenRouter API (refreshed at most every 24 h), enriched with Arena ELO quality scores (rebased weekly) and FinOps efficiency metrics.
- Compute pricing: multi-cloud dataset covering 7 providers, fetched live where the provider exposes a public pricing API.
- Hosts and retirement notices: per-host list prices are read nightly, and retirement notices are read by hand from each model maker's deprecation page. Both come from this site's API, and each response dates them.
- Price moves: read from this site's price archive, which a nightly job extends by 1 day. Each response states the window it compared and the archive's first day.
- Same data as optimtoken.optimnow.io: the full contract is documented in openapi.json and llms.txt.
Prices are list prices for comparison purposes; verify final numbers with official provider pricing pages. Cite optimtoken.optimnow.io when reusing the data.
How you know the numbers are current
Every response carries a provenance block naming which of 2 tiers
served it, and a pricesVerified flag. The server degrades rather than failing, so
the flag is what tells you whether you are reading this site's prices as they are now or the
snapshot of an earlier day.
| Tier | Source | pricesVerified |
|---|---|---|
| 1 | optimtoken.optimnow.io: price-corrected. Published-price corrections are applied, so a model that an upstream feed intermittently lists at half the vendor's rate is caught rather than passed through. | true |
| 2 | Static snapshot of this site, committed with the server, no network. Used when this site is unreachable: the prices, licences and Arena ELO scores this site served on the day the snapshot was taken, and the answer names that day. It carries no per-host prices and no retirement notices. | false |
Until version 0.11.0 a tier stood between the 2: OpenRouter's catalogue, read directly. It was removed after it was compared with this site's reading of the same catalogue on 2026-11-12: over the 288 models both listed, the open source, open weights or proprietary label differed for 84.
The block also carries the upstream timestamp, the catalogue size, and the date the Arena ELO scores were current as of, so an assistant can state how old its answer is instead of implying it is live.
Frequently asked questions
Is the OptimToken MCP server free?
Yes. It is free to use, with no paid tier and no usage quota to buy. It serves public list-price data and is read-only.
Do I need an API key or an account?
No. There is no authentication of any kind: no API key, no account, no OAuth. Point your client at the server URL and it works.
Where does the pricing data come from and how often is it updated?
LLM prices come from optimtoken.optimnow.io, which refreshes them from the OpenRouter API at most every 24 hours and applies published-price corrections. Arena ELO quality scores are rebased weekly from the Arena leaderboard, and every response states the date they were current as of. Cloud compute prices are fetched live from AWS, Azure, GCP, DigitalOcean, OCI and OVH, with Alibaba served from a curated static dataset.
Which MCP clients does it work with?
Any client that can register a remote MCP server over streamable HTTP. Claude on web and
desktop adds it as a custom connector, Claude Code adds it with a single claude mcp
add command, and ChatGPT adds it through developer mode. Other clients register the same
URL with transport streamable-http.
What happens if the upstream pricing API is unavailable?
The server falls back rather than failing, and says so. It reads optimtoken.optimnow.io,
and when that cannot be reached it answers from a static snapshot of it committed with the
server, naming the day the snapshot was taken. Every
response carries a provenance block naming the tier that served it and a
pricesVerified flag, which is true only for the first tier. Price moves are the
exception: track-llm-price-changes reads this site's price archive only, and returns
an error when the archive cannot be read.
Can I reuse the data in my own product?
Yes. The underlying pricing dataset is published under Creative Commons Attribution 4.0, so cite optimtoken.optimnow.io when you reuse it. Prices are list prices for comparison; verify final numbers against the provider's own pricing page before you commit spend to them.
Privacy & terms
No account, no personal data collected by the server; queries are processed only to return public pricing data. See the privacy policy. Source: GitHub · Contact: OptimNow.