pricing-time-machine-mcp
See how any SaaS pricing page changed over the years. An MCP server that reads archived copies of pricing pages from the Wayback Machine and pulls out the plans and prices, so Claude (or any MCP client) can tell you when a competitor raised prices, renamed plans or dropped a free tier.
No API keys. No scraping of live sites. One line to install.
You: How did Notion's pricing change since 2022?
Claude: [compare_pricing → notion.so/pricing, 2022-03 vs latest]
• Personal Pro ($4/mo billed yearly) is gone; the cheapest paid plan is now
Plus at $10 per member/month.
• Team ($8/user/mo) became Business at $20 per member/month: 2.5×.
• Free is still $0.
Summarized from real tool output: archived copies of 31 Mar 2022 and 7 Sep 2026.
Why
| You want to know | Without it | With pricing-time-machine |
|---|---|---|
| When a competitor raised prices | Click through dozens of Wayback snapshots by hand | pricing_timeline lists price periods and every change |
| What their plans looked like in 2021 | Find a snapshot, read the page | pricing_at returns prices with plan names and billing hints |
| How a whole market moved | Days of spreadsheet work | compare_competitors puts 2-8 pricing pages side by side at any date |
How it works
flowchart LR
C[Claude / MCP client] -->|tool call| S[pricing-time-machine-mcp]
S --> I[Wayback CDX index: which months were archived]
S --> W[Archived page closest to a date]
W --> X[Extract prices: amount, currency, /mo /yr, per user, plan guess, context]
X -->|compact table + page text around prices| C
The server does the deterministic part (finding snapshots, extracting prices, grouping periods). The model does the interpretation: which price belongs to which plan and what a change means. Archived pages never change, so they are cached on disk (~/.cache/pricing-time-machine).
Install
Requires uv.
Claude Code
claude mcp add pricing-time-machine -- uvx pricing-time-machine-mcp
Claude Desktop / Cursor (claude_desktop_config.json / .cursor/mcp.json)
{
"mcpServers": {
"pricing-time-machine": {
"command": "uvx",
"args": ["pricing-time-machine-mcp"]
}
}
}
Tools
| Tool | What it does |
|---|---|
pricing_timeline |
Reads N archived copies across the years, groups identical prices into periods, lists what was added/removed |
pricing_at |
Prices on the page closest to a date, with plan guess, billing hints, context and the page text around them |
compare_pricing |
One page at two dates: both price tables plus added/removed prices |
compare_competitors |
2–8 pricing pages side by side at the same date |
pricing_snapshots |
Which months/years have an archived copy |
Prompts: pricing_history_report (one company, the full story with dates), competitor_pricing (a market then vs now).
Dates can be 2021, 2021-06, 2021-06-15 or latest; the closest archived copy is used and its date is always shown.
Try these
- "How did Slack's pricing change since 2016? Show every price increase in %."
- "Compare the pricing of Notion, Coda and ClickUp today and in 2021."
- "What did Figma charge for Professional in 2019?"
- "Run pricing_history_report for linear.app/pricing."
Limits (set by the source)
- Only pages the Wayback Machine archived. Most popular pricing pages have monthly copies going back years.
- Pages that draw prices with JavaScript are empty in the archive; the server says so and you can try a nearby date.
- Plan names are guesses from nearby headings; the context column and page text let the model check them.
- archive.org is slow (10–30 s per page) and sometimes briefly offline; the server retries with backoff and caches everything it reads.
Development
uv sync --extra dev
uv run pytest # offline tests with a mocked Wayback Machine
uv run python scripts/smoke_live.py # live check against archive.org (1-3 min)
uv run --with rich python scripts/demo.py notion.so/pricing 2022-03 # terminal demo (vhs docs/demo.tape records the GIF)
npx @modelcontextprotocol/inspector uv run pricing-time-machine-mcp # click-through UI
MIT © Ali Altunar
Metadata
Release files for pricing-time-machine-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pricing_time_machine_mcp-0.1.0.tar.gz | 173.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pricing_time_machine_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 191.6 kB
Release files / pricing_time_machine_mcp-0.1.0.tar.gz
| Download URL | pricing_time_machine_mcp-0.1.0.tar.gz |
|---|---|
| Size | 173.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
45d26d6f46ba86fcc7349e3fe3832b3cc33f52bfa7b9c256cf4cd5ff6d437c61
|
|
BLAKE2b-256 checksum How to use checksums |
33be92bbb3fa4857b960aa1035f36037aa4840f545bf8660b0ebad4e983c9ac1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pricing_time_machine_mcp-0.1.0-py3-none-any.whl
| Download URL | pricing_time_machine_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
45c84a87d64462bef9ac74c9987d540628d3ee2dae93392ead5552ff25968391
|
|
BLAKE2b-256 checksum How to use checksums |
f033a8b99284e991b6269d031b72a40a61e5455b7ce64b8046f1831503b52d89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|