npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@site-spy/mcp-server

v0.2.2

Published

MCP server for Site Spy — lets AI agents monitor websites for changes

Readme

@site-spy/mcp-server

MCP server that lets AI agents monitor websites for changes via Site Spy.

Track pages, get notified when content changes, view diffs and snapshots — all from your AI assistant.

Quick Start

Add to your AI client config:

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "site-spy": {
      "command": "npx",
      "args": ["-y", "@site-spy/mcp-server"],
      "env": {
        "SITE_SPY_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Code (.mcp.json):

{
  "mcpServers": {
    "site-spy": {
      "command": "npx",
      "args": ["-y", "@site-spy/mcp-server"],
      "env": {
        "SITE_SPY_API_KEY": "your-api-key"
      }
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "site-spy": {
      "command": "npx",
      "args": ["-y", "@site-spy/mcp-server"],
      "env": {
        "SITE_SPY_API_KEY": "your-api-key"
      }
    }
  }
}

OpenClaw (openclaw.yaml):

mcp:
  servers:
    site-spy:
      command: "npx"
      args: ["-y", "@site-spy/mcp-server"]
      env:
        SITE_SPY_API_KEY: "your-api-key"

Get your API key from Site Spy Dashboard → Settings → API.

If you don't set SITE_SPY_API_KEY, the agent will ask you to authenticate interactively.

Tools

Authentication

| Tool | Description | | -------------- | ------------------------------------------------ | | authenticate | Connect with an API key (if not set via env var) | | auth_status | Check authentication status |

Watch Management

| Tool | Description | | ----------------- | ------------------------------------------------------ | | list_watches | List all monitored websites (optionally filter by tag) | | create_watch | Start monitoring a URL for changes | | get_watch | Get full details of a specific watch | | update_watch | Update config — pause/resume, change interval, rename | | delete_watch | Stop monitoring and delete a watch | | search_watches | Search watches by URL or title | | trigger_recheck | Force an immediate recheck of all watches |

Change History

| Tool | Description | | -------------------- | ---------------------------------------- | | get_change_history | Get timestamps of detected changes | | get_snapshot | Get page content at a specific timestamp | | get_diff | Compare content between two timestamps |

Personal Fetch

| Tool | Description | | ----------- | ------------------------------------------------------------------------------- | | fetch_url | One-off authenticated URL fetch through the Site Spy backend, with browser mode |

RSS Feeds

| Tool | Description | | -------------------- | ------------------------------------------------------ | | get_rss_settings | Get current RSS feed settings and token | | generate_rss_token | Generate or regenerate an RSS feed token for feed URLs | | revoke_rss_token | Revoke the RSS token, disabling all feed access |

Tags & Notifications

| Tool | Description | | ------------------- | ------------------------------------ | | list_tags | List all tags for organizing watches | | get_notifications | Get current notification settings |

RSS Feeds

Site Spy provides per-user RSS feeds so you can subscribe to change notifications in any RSS reader.

Once you have a token (via generate_rss_token), feed URLs follow this pattern:

  • All watches: https://sitespy.app/api/rss?token={token}
  • Single watch: https://sitespy.app/api/rss/watch/{watch_uuid}?token={token}
  • By tag: https://sitespy.app/api/rss/tag/{tag_uuid}?token={token}

Environment Variables

| Variable | Description | Default | | ------------------- | --------------------------------------- | ------------------------------------------- | | SITE_SPY_API_KEY | API key for authentication | — (interactive auth) | | SITE_SPY_API_URL | Backend API URL | https://detect.coolify.vkuprin.com/api/v1 | | SITE_SPY_AUTH_URL | URL shown to users for getting API keys | https://sitespy.app/dashboard |

The backend fetch_url endpoint can be restricted with FETCH_URL_API_ENABLED, FETCH_URL_REQUIRE_MASTER_ADMIN, or FETCH_URL_ALLOWED_API_KEYS.

Documentation

Full documentation is available at docs.sitespy.app.

Example Prompts

Once configured, try asking your AI assistant:

  • "Monitor https://example.com for changes every 30 minutes"
  • "What websites am I monitoring?"
  • "Show me what changed on my watched pages"
  • "Pause all monitors tagged 'staging'"
  • "Check all my sites right now"
  • "Fetch this URL with the browser backend and return readable text"
  • "Set up RSS feeds so I can follow changes in my feed reader"

License

ISC