How any SaaS pricing page changed over the years, from the Wayback Machine. No API keys.
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.

| 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 |
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).
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"]
}
}
}
| 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.
Open-source MCP servers that answer one market question each, with public data and no API keys.
| Server | Question it answers |
|---|---|
| review-miner-mcp | What do users hate about competitor apps and games? (App Store + Steam reviews) |
| pricing-time-machine-mcp (this one) | How did a SaaS pricing page change over the years? (Wayback Machine) |
| hn-hiring-trends-mcp | Which skills are tech companies hiring for, and which are rising? (HN Who is hiring) |
| model-price-radar-mcp | What does each LLM cost, and did it get cheaper? (OpenRouter + price history) |
| launch-detector-mcp | What is a company about to launch? (certificate transparency logs) |
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
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx pricing-time-machine-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-alialtunar-pricing-time-machine-mcp": {
"command": "uvx",
"args": [
"pricing-time-machine-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencePricing Time Machine works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.