← OptimToken

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.

Server URL (streamable HTTP)
https://optimtoken-mcp.optimnow.io/mcp
no authread-onlyfree

MCP registry name: io.github.OptimNow/ai-pricing-hub

Connect in 2 minutes

ClientHow
Claude (web & desktop)Settings → Connectors → Add custom connector → paste the server URL above → Add. No credentials needed.
Claude Codeclaude mcp add ai-pricing-hub --transport http https://optimtoken-mcp.optimnow.io/mcp
ChatGPTSettings → Apps & Connectors → enable Developer mode → add the server URL.
Other MCP clientsRegister 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.

ToolUse it whenKey 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

Data sources & freshness

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.

TierSourcepricesVerified
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.