Metadata-Version: 2.5
Name: pricing-time-machine-mcp
Version: 0.1.0
Summary: MCP server that shows how any SaaS pricing page changed over the years, from the Wayback Machine. No API keys.
Project-URL: Homepage, https://github.com/alialtunar/pricing-time-machine-mcp
Project-URL: Repository, https://github.com/alialtunar/pricing-time-machine-mcp
Project-URL: Issues, https://github.com/alialtunar/pricing-time-machine-mcp/issues
Author: Ali Altunar
License: MIT
License-File: LICENSE
Keywords: claude,competitive-intelligence,mcp,model-context-protocol,pricing,saas,wayback-machine
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Requires-Dist: mcp<3,>=2.2
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Description-Content-Type: text/markdown

# pricing-time-machine-mcp

<!-- mcp-name: io.github.alialtunar/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](https://web.archive.org/) 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.
```
<sub>Summarized from real tool output: archived copies of 31 Mar 2022 and 7 Sep 2026.</sub>

![Notion pricing in 2022 vs 2026, compared by pricing-time-machine](docs/demo.gif)

## 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

```mermaid
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](https://docs.astral.sh/uv/).

**Claude Code**
```bash
claude mcp add pricing-time-machine -- uvx pricing-time-machine-mcp
```

**Claude Desktop / Cursor** (`claude_desktop_config.json` / `.cursor/mcp.json`)
```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

```bash
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
