LLM pricing where every rate carries its source and the date it was last confirmed.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Know the tab before you build.
Estimate, compare and understand what an AI feature will cost β from a catalog that re-checks itself every morning, so the numbers are never a year out of date.
β Open PromptSpend Β Β·Β free Β Β·Β open source Β Β·Β no accounts, no tracking Β Β·Β Writing: What LLM Cost Calculators Get Wrong Β Β·Β August 2026 Price Movement Report
https://github.com/user-attachments/assets/8ddf3e53-2a97-4d86-ac93-d09507c387de
2 minutes 8 β press play, and hit π to unmute (GitHub starts videos silent). Β Β·Β Download the MP4
Every LLM cost calculator on the web has the same failure mode: it is a snapshot. Someone builds it, hard-codes a dozen model prices, and within a few months the entire premise is wrong β the models it compares have been superseded and the prices it quotes no longer exist.
PromptSpend is built the other way round. The pricing pipeline is the product; the calculator is what sits on top of it. Every morning a GitHub Action re-fetches the catalog from independent sources, merges them under an explicit trust order, runs sanity checks, and either commits the result or opens a pull request for a human. Capture patterns are family-level, so a brand-new model version is picked up automatically without anyone touching code.
Opt-in, and off unless a deployment is configured for them. Browser push stores nothing personal β a push subscription is an opaque URL the browser issues. Email is double opt-in with one-click unsubscribe, and stores your address, the models you follow, and the date you asked; nothing else. Either channel can watch the whole catalog or just the models you pick.
The delivery service is a Cloudflare Worker in worker/, with the push payload encryption
written out against RFC 8291 and checked byte for byte against the RFC's own worked example.
docs/ALERTS.md has the architecture, the cost model and the domain cutover.
| Output is priced separately | Output typically costs 3β5Γ input. Averaging the two, as many calculators do, understates most real workloads. |
| Chat history compounds | Turn N re-sends turns 1β¦Nβ1 as input, so conversation cost grows with the square of the turn count. |
| Tokenizers differ per family | The same pasted text is counted with each model's own tokenizer β exactly (js-tiktoken, run in your browser) for OpenAI-family models and with a clearly labelled calibrated ratio elsewhere. |
| Caching is not free | Cache writes cost 1.25Γ input at both OpenAI and Anthropic. Counting only the cheaper reads reports a saving your invoice will not have, so writes are billed and caching is off by default. |
| Long context costs more | Above 272K input tokens OpenAI bills the whole request at 2Γ input and 1.5Γ output. Tiers apply per request, so a conversation can cross over partway through. |
| Reasoning tokens are billable | A multiplier for hidden thinking tokens, because the visible answer is not what you pay for. |
| Promotional pricing expires | Introductory rates apply only inside their window, and the engine takes a date. |
| Assumptions are visible | Every non-published number used in a calculation is listed under the results, not buried β and so is what the prices do not cover. |
| Impossible scenarios are named | A request that will not fit the context window, or a response past the output ceiling, is flagged rather than priced as if it would work. |
The trust ladder, in order:
data/pricing-overrides.json) β win every conflict.A clean diff is committed and deployed automatically. A newly raised flag becomes a pull request β a
long-standing disagreement does not re-open one every morning. A run that loses a source or trips a size
guard is degraded: it publishes nothing, records why in public/data/sync-status.json, and fails
loudly. Either way the change lands in docs/pricing-changelog.md.
Nothing disappears on one bad morning. A model missing from the feed is kept and marked stale, not
deleted; retiring one for good is a deliberate edit to data/models-allowlist.json.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/promptspend)<a href="https://allmcps.com/mcp/promptspend"><img src="https://allmcps.com/api/badge/promptspend?style=directory" alt="PromptSpend on AllMCPs" /></a>