WebWatch MCP

Website change monitoring with URL watching, snapshot comparison, and intelligent content extraction for AI assistants

🔍 WebWatch MCP

A Model Context Protocol (MCP) server for monitoring website changes. Track URLs, detect content changes, compare snapshots, and extract content with CSS selectors — all from your AI assistant.

Features

  • Watch URLs — Monitor any webpage for content changes
  • CSS Selectors — Track specific elements (prices, headlines, stock info)
  • Snapshot History — SQLite-backed storage of every page state
  • Diff Detection — See exactly what changed, line by line
  • Content Extraction — Pull structured data from any page on demand

Tools

ToolDescription
watch_urlAdd a URL to the watch list with optional CSS selector and label
list_watchesList all monitored URLs with status and statistics
check_nowFetch a URL now, compare to previous snapshot, return diff
get_changesBrowse change history for one or all watched URLs
compare_snapshotsCompare any two snapshots side-by-side
extract_contentOne-off content extraction with CSS selectors

Installation

# Clone and build
git clone https://github.com/leviai-tools/webwatch-mcp.git
cd webwatch-mcp
npm install
npm run build

# Or install globally
npm install -g @leviai/webwatch-mcp

Usage with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "webwatch": {
      "command": "node",
      "args": ["/path/to/webwatch-mcp/build/index.js"],
      "env": {
        "WEBWATCH_DATA_DIR": "/path/to/data/dir"
      }
    }
  }
}

Or if installed globally:

{
  "mcpServers": {
    "webwatch": {
      "command": "webwatch-mcp"
    }
  }
}

Environment Variables

VariableDefaultDescription
WEBWATCH_DATA_DIR~/.webwatch-mcpDirectory for SQLite database

Example Workflows

Monitor a pricing page

You: "Watch https://example.com/pricing — track the .pricing-table element"
→ watch_url(url, selector=".pricing-table", label="Example pricing")

You: "Check if pricing changed"
→ check_now("https://example.com/pricing")

Track competitor changes

You: "Add these competitor pages to my watchlist"
→ watch_url for each URL

You: "Show me all recent changes"
→ get_changes(limit=20)

Extract data on demand

You: "What are the headlines on HN right now?"
→ extract_content("https://news.ycombinator.com", ".titleline > a")

Data Storage

All data is stored locally in SQLite at ~/.webwatch-mcp/webwatch.db (configurable via WEBWATCH_DATA_DIR).

Tables:

  • watches — Monitored URLs with selectors and labels
  • snapshots — Page content captured at each check
  • changes — Detected diffs between consecutive snapshots

Requirements

  • Node.js ≥ 18.0.0

License

MIT

Serveurs connexes

NotebookLM Web Importer

Importez des pages web et des vidéos YouTube dans NotebookLM en un clic. Utilisé par plus de 200 000 utilisateurs.

Installer l'extension Chrome