Allows AI agents to monitor website changes, manage watch lists, and retrieve historical snapshots and diffs from a ChangeDetection.io instance.
Also known as rusty4444/changedetection-mcp, changedetection-mcp
- Stars
- 3
- Tools
- —
- Downloads, 30 days
- 131
- Latest version
- 0.1.0
- Last commit
- Oct 9, 2026
- License
- MIT
What is ChangeDetection.io MCP?
ChangeDetection.io allows AI agents to monitor website changes, manage watch lists, and retrieve historical snapshots and diffs from a ChangeDetection.io instance.
Summary generated from the project's README
About ChangeDetection.io MCP server
Monitoring website changes and managing watch lists from inside an AI client is what this server enables. It provides agents with direct access to a ChangeDetection.io instance, whether you are using a self-hosted version or the SaaS platform. Users connect by providing a base URL and an API key through their MCP client configuration, such as Claude Desktop or Cursor.
Agents can perform a wide range of tasks including creating new watches from URLs, searching through existing ones by title or URL, and organizing them using tags. The server includes tools to list all watches, update watch schedules, or trigger immediate rechecks. It also allows for deep inspection of site changes by retrieving snapshot history and generating diffs between specific points in time.
To prevent a single noisy website from causing an endless loop of edits or rechecks, the server implements a per-watch action fuse. This safety feature limits the number of mutating actions, such as update_watch or delete_watch, that can follow a diff request. By default, this limit is set to three actions per watch UUID.
What you can do with it
- 1Monitor specific product updatesAsk an AI agent to track a product page and alert you when content changes.
- 2Analyze website content changesRequest a comparison between two different versions of a webpage to see exactly what was modified.
- 3Audit failed website monitorsInstruct an agent to identify and list all watches that are currently failing.
- 4Organize monitoring tasksHave an agent set up a new watch for a specific job listing and categorize it with a tag.
Written from the project's README. Every use case is checked against a quote from it.
How to install ChangeDetection.io MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall ChangeDetection.io MCP in Claude Code
$ claude mcp add --env 'CHANGEDETECTION_API_KEY=<YOUR_CHANGEDETECTION_API_KEY>' --env 'CHANGEDETECTION_BASE_URL=<CHANGEDETECTION_BASE_URL>' changedetection-mcp -- uvx changedetection-mcpInstall ChangeDetection.io MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"changedetection-mcp": {
"command": "uvx",
"args": [
"changedetection-mcp"
],
"env": {
"CHANGEDETECTION_API_KEY": "<YOUR_CHANGEDETECTION_API_KEY>",
"CHANGEDETECTION_BASE_URL": "<CHANGEDETECTION_BASE_URL>"
}
}
}
}Install ChangeDetection.io MCP in VS Code
.vscode/mcp.json
{
"servers": {
"changedetection-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"changedetection-mcp"
],
"env": {
"CHANGEDETECTION_API_KEY": "<YOUR_CHANGEDETECTION_API_KEY>",
"CHANGEDETECTION_BASE_URL": "<CHANGEDETECTION_BASE_URL>"
}
}
}
}Install ChangeDetection.io MCP in VS Code CLI
$ code --add-mcp '{"name":"changedetection-mcp","type":"stdio","command":"uvx","args":["changedetection-mcp"],"env":{"CHANGEDETECTION_API_KEY":"<YOUR_CHANGEDETECTION_API_KEY>","CHANGEDETECTION_BASE_URL":"<CHANGEDETECTION_BASE_URL>"}}'Install ChangeDetection.io MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"changedetection-mcp": {
"command": "uvx",
"args": [
"changedetection-mcp"
],
"env": {
"CHANGEDETECTION_API_KEY": "<YOUR_CHANGEDETECTION_API_KEY>",
"CHANGEDETECTION_BASE_URL": "<CHANGEDETECTION_BASE_URL>"
}
}
}
}Install ChangeDetection.io MCP in Codex
$ codex mcp add changedetection-mcp --env 'CHANGEDETECTION_API_KEY=<YOUR_CHANGEDETECTION_API_KEY>' --env 'CHANGEDETECTION_BASE_URL=<CHANGEDETECTION_BASE_URL>' -- uvx changedetection-mcpInstall ChangeDetection.io MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.changedetection-mcp] command = "uvx" args = ["changedetection-mcp"] [mcp_servers.changedetection-mcp.env] CHANGEDETECTION_API_KEY = "<YOUR_CHANGEDETECTION_API_KEY>" CHANGEDETECTION_BASE_URL = "<CHANGEDETECTION_BASE_URL>"
Install ChangeDetection.io MCP in Gemini CLI
$ gemini mcp add -s user -e 'CHANGEDETECTION_API_KEY=<YOUR_CHANGEDETECTION_API_KEY>' -e 'CHANGEDETECTION_BASE_URL=<CHANGEDETECTION_BASE_URL>' changedetection-mcp uvx -- changedetection-mcpInstall ChangeDetection.io MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"changedetection-mcp": {
"command": "uvx",
"args": [
"changedetection-mcp"
],
"env": {
"CHANGEDETECTION_API_KEY": "<YOUR_CHANGEDETECTION_API_KEY>",
"CHANGEDETECTION_BASE_URL": "<CHANGEDETECTION_BASE_URL>"
}
}
}
}Configuration
CHANGEDETECTION_API_KEYRequiredSecretChangeDetection.io API key
CHANGEDETECTION_BASE_URLRequiredBase URL of the ChangeDetection.io instance, e.g. https://changedetection.example.com
CHANGEDETECTION_MCP_ACTION_LIMIT_PER_WATCH
| Name | Description | |
|---|---|---|
| CHANGEDETECTION_API_KEY | ChangeDetection.io API key | RequiredSecret |
| CHANGEDETECTION_BASE_URL | Base URL of the ChangeDetection.io instance, e.g. https://changedetection.example.com | Required |
| CHANGEDETECTION_MCP_ACTION_LIMIT_PER_WATCH | — |
Automated checks
Ran Nov 13, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablerusty4444/changedetection-mcp is public and reachablegithub.com/rusty4444/changedetection-mcp ↗Pass
- Package names this repository as its sourceNot checked
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-10-09github.com/rusty4444/changedetection-mcp ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from changedetection-mcpPass
- No critical advisory in the package or its dependencies32 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubChangeDetection.io MCP Server
An MCP (Model Context Protocol) server that gives AI agents native access to ChangeDetection.io — the open-source website change detection and monitoring platform.
Features
- Watch Management — Create, list, update, delete, and trigger rechecks on watches
- Change History — Browse snapshot history and get diffs between any two points in time
- Per-watch action fuse —
get_snapshot_diffarms a configurable limit on follow-up mutating actions for that watch so one noisy page cannot cascade into unlimited rechecks or edits - Tag Management — Organise watches with tags/groups
- Search — Full-text search through watches by URL or title
- System Info — Quick health and stats readout
Why This Exists
No 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:
- "Watch this product page and notify me when it changes"
- "Show me all my failed watches"
- "What changed on this page yesterday?"
- "Set up a watch for this job listing"
Quick Start
Prerequisites
- A running ChangeDetection.io instance (self-hosted or SaaS)
- An API key from Settings → API
Installation
pip install changedetection-mcp
Configuration
Add to your MCP client config (Claude Desktop, Cursor, Hermes Agent, etc.):
{
"mcpServers": {
"changedetection": {
"command": "changedetection-mcp",
"env": {
"CHANGEDETECTION_BASE_URL": "http://localhost:5000",
"CHANGEDETECTION_API_KEY": "your-api-key-here"
}
}
}
}
Usage with Hermes Agent
Create ~/.hermes/skills/changedetection/SKILL.md (see skill/ directory) or configure as an MCP server:
hermes mcp add changedetection --command "changedetection-mcp"
hermes config set changedetection.base_url "http://localhost:5000"
hermes config set changedetection.api_key "your-api-key"
API Coverage
| Tool | Description |
|---|---|
list_watches |
List all watches (optional tag filter, limit/offset) |
get_watch |
Get full details of a single watch |
create_watch |
Create a new watch from a URL |
update_watch |
Update an existing watch (pause, rename, change schedule, etc.) |
delete_watch |
Delete a watch and all its history |
recheck_watch |
Trigger an immediate recheck |
get_watch_history |
List change history snapshots for a watch |
get_snapshot_diff |
Get diff between two snapshots |
search_watches |
Full-text search by URL or title |
list_tags |
List all tags/groups |
create_tag |
Create a tag for organisation |
get_system_info |
Get server stats (watch count, uptime, version) |
Safety Fuse: Per-Watch Action Limit
When 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.
By default, each diff allows 3 mutating MCP actions for that watch. The fuse applies to:
recheck_watchupdate_watchdelete_watch
After 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.
Configuration:
# Default: 3. Set 0 to disable the fuse globally.
export CHANGEDETECTION_MCP_ACTION_LIMIT_PER_WATCH=3
Per call, override the default with the optional action_limit argument on get_snapshot_diff:
get_snapshot_diff(uuid="...", from_timestamp="previous", to_timestamp="latest", action_limit=1)
Use action_limit=0 to disable the fuse for that watch, or call get_snapshot_diff again with a higher value to re-arm it.
Development
git clone https://github.com/rusty4444/changedetection-mcp.git
cd changedetection-mcp
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
License
MIT — see LICENSE.
ChangeDetection.io MCP questions
How do I add ChangeDetection.io MCP to Claude Code?
Run claude mcp add --env 'CHANGEDETECTION_API_KEY=<YOUR_CHANGEDETECTION_API_KEY>' --env 'CHANGEDETECTION_BASE_URL=<CHANGEDETECTION_BASE_URL>' changedetection-mcp -- uvx changedetection-mcp in your terminal. Add --scope user to make it available in every project.
How do I add ChangeDetection.io MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What can I do with this MCP server?
You can create, list, update, and delete website watches, trigger rechecks, browse change history, and get diffs between snapshots.
How do I prevent an AI agent from performing too many actions on a noisy website?
The server includes a per-watch action fuse that limits the number of mutating actions like rechecks or deletes allowed after a diff is requested.
What are the prerequisites for installation?
You need a running ChangeDetection.io instance (either self-hosted or SaaS) and an API key obtained from the Settings menu.