{
  "markdown": "# ChangeDetection.io MCP Server\n<p align=\"center\">\n  <a href=\"https://buymeacoffee.com/rusty4\" target=\"_blank\">\n    <img src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" height=\"50\">\n  </a>\n</p>\n\n\n\n<!-- mcp-name: io.github.rusty4444/changedetection-mcp -->\n\nAn MCP (Model Context Protocol) server that gives AI agents native access to [ChangeDetection.io](https://github.com/dgtlmoon/changedetection.io) — the open-source website change detection and monitoring platform.\n\n## Features\n\n- **Watch Management** — Create, list, update, delete, and trigger rechecks on watches\n- **Change History** — Browse snapshot history and get diffs between any two points in time\n- **Per-watch action fuse** — `get_snapshot_diff` arms a configurable limit on follow-up mutating actions for that watch so one noisy page cannot cascade into unlimited rechecks or edits\n- **Tag Management** — Organise watches with tags/groups\n- **Search** — Full-text search through watches by URL or title\n- **System Info** — Quick health and stats readout\n\n## Why This Exists\n\nNo MCP server existed for ChangeDetection.io despite it being one of the most popular self-hosted tools (31k+ GitHub stars). This server fills that gap, letting AI agents:\n\n- \"Watch this product page and notify me when it changes\"\n- \"Show me all my failed watches\"\n- \"What changed on this page yesterday?\"\n- \"Set up a watch for this job listing\"\n\n## Quick Start\n\n### Prerequisites\n\n- A running ChangeDetection.io instance (self-hosted or SaaS)\n- An API key from Settings → API\n\n### Installation\n\n```bash\npip install changedetection-mcp\n```\n\n### Configuration\n\nAdd to your MCP client config (Claude Desktop, Cursor, Hermes Agent, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"changedetection\": {\n      \"command\": \"changedetection-mcp\",\n      \"env\": {\n        \"CHANGEDETECTION_BASE_URL\": \"http://localhost:5000\",\n        \"CHANGEDETECTION_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n### Usage with Hermes Agent\n\nCreate `~/.hermes/skills/changedetection/SKILL.md` (see `skill/` directory) or configure as an MCP server:\n\n```bash\nhermes mcp add changedetection --command \"changedetection-mcp\"\nhermes config set changedetection.base_url \"http://localhost:5000\"\nhermes config set changedetection.api_key \"your-api-key\"\n```\n\n## API Coverage\n\n| Tool | Description |\n|------|-------------|\n| `list_watches` | List all watches (optional tag filter, limit/offset) |\n| `get_watch` | Get full details of a single watch |\n| `create_watch` | Create a new watch from a URL |\n| `update_watch` | Update an existing watch (pause, rename, change schedule, etc.) |\n| `delete_watch` | Delete a watch and all its history |\n| `recheck_watch` | Trigger an immediate recheck |\n| `get_watch_history` | List change history snapshots for a watch |\n| `get_snapshot_diff` | Get diff between two snapshots |\n| `search_watches` | Full-text search by URL or title |\n| `list_tags` | List all tags/groups |\n| `create_tag` | Create a tag for organisation |\n| `get_system_info` | Get server stats (watch count, uptime, version) |\n\n## Safety Fuse: Per-Watch Action Limit\n\nWhen an agent asks for a page diff, that diff can prompt follow-up actions such as immediate rechecks, watch edits, or deletes. To stop one noisy site from triggering a cascade, `get_snapshot_diff` arms a per-watch fuse before returning.\n\nBy default, each diff allows **3 mutating MCP actions** for that watch. The fuse applies to:\n\n- `recheck_watch`\n- `update_watch`\n- `delete_watch`\n\nAfter the budget is exhausted, those tools return a clear blocked message instead of calling the ChangeDetection.io API. The fuse is in-process and per watch UUID; watches without an armed fuse are unaffected.\n\nConfiguration:\n\n```bash\n# Default: 3. Set 0 to disable the fuse globally.\nexport CHANGEDETECTION_MCP_ACTION_LIMIT_PER_WATCH=3\n```\n\nPer call, override the default with the optional `action_limit` argument on `get_snapshot_diff`:\n\n```text\nget_snapshot_diff(uuid=\"...\", from_timestamp=\"previous\", to_timestamp=\"latest\", action_limit=1)\n```\n\nUse `action_limit=0` to disable the fuse for that watch, or call `get_snapshot_diff` again with a higher value to re-arm it.\n\n## Development\n\n```bash\ngit clone https://github.com/rusty4444/changedetection-mcp.git\ncd changedetection-mcp\nuv venv\nsource .venv/bin/activate\nuv pip install -e \".[dev]\"\n```\n\n## License\n\nMIT — see `LICENSE`.\n",
  "bytes": 4391,
  "sha": "ad751d2e36659a9286ddbd1a086271111db12ec31c8947d42279700d6dcf6808",
  "repo_slug": "rusty4444/changedetection-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_rusty4444_changedetection_mcp_96a312fe/readme"
}