Pricing Time Machine

How any SaaS pricing page changed over the years, from the Wayback Machine. No API keys.

OtherPythonv0.1.0

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.

Notion pricing in 2022 vs 2026, compared by pricing-time-machine

Why

You want to knowWithout itWith pricing-time-machine
When a competitor raised pricesClick through dozens of Wayback snapshots by handpricing_timeline lists price periods and every change
What their plans looked like in 2021Find a snapshot, read the pagepricing_at returns prices with plan names and billing hints
How a whole market movedDays of spreadsheet workcompare_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

ToolWhat it does
pricing_timelineReads N archived copies across the years, groups identical prices into periods, lists what was added/removed
pricing_atPrices on the page closest to a date, with plan guess, billing hints, context and the page text around them
compare_pricingOne page at two dates: both price tables plus added/removed prices
compare_competitors2–8 pricing pages side by side at the same date
pricing_snapshotsWhich 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.

Part of the keyless MCP series

Open-source MCP servers that answer one market question each, with public data and no API keys.

ServerQuestion it answers
review-miner-mcpWhat 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-mcpWhich skills are tech companies hiring for, and which are rising? (HN Who is hiring)
model-price-radar-mcpWhat does each LLM cost, and did it get cheaper? (OpenRouter + price history)
launch-detector-mcpWhat is a company about to launch? (certificate transparency logs)

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

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx pricing-time-machine-mcp

Set up in your AI client

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

json
{
  "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 reference

Package

pricing-time-machine-mcppypi

Compatible MCP Clients

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

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.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.

Learn More