skill — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited skill (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
ChangeDetection.io is a self-hosted or SaaS tool for monitoring web pages for changes — price drops, restock alerts, content updates, defacement monitoring. It's one of the most popular self-hosted tools (31k+ GitHub stars).
This skill pairs the changedetection-mcp MCP server with Hermes-native features (cron scheduling, multi-platform delivery) to create a powerful watch-and-notify loop.
Don't use for: One-off checks (use web_extract or browser_navigate instead). This is for ongoing monitoring.
http://localhost:5000 (or any URL) or use the SaaS plan at https://changedetection.iopip install changedetection-mcp (or run from source)Add to your MCP configuration:
{
"mcpServers": {
"changedetection": {
"command": "changedetection-mcp",
"env": {
"CHANGEDETECTION_BASE_URL": "http://localhost:5000",
"CHANGEDETECTION_API_KEY": "your-api-key"
}
}
}
}# Install the MCP server
pip install changedetection-mcp
# Add as an MCP server to Hermes
hermes mcp add changedetection --command "changedetection-mcp"Then set env vars in ~/.hermes/.env:
CHANGEDETECTION_BASE_URL=http://localhost:5000
CHANGEDETECTION_API_KEY=your-api-keyCan you watch https://example.com/product-page for price changes? Check hourly.The agent will call create_watch with the URL and check interval.
Show me all my active watches.→ Calls list_watches()
What changed on my watched page in the last 24 hours?→ Calls get_watch_history() then get_snapshot_diff(). The diff call arms the per-watch action fuse, limiting follow-up mutating actions for that watch.
Show me what changed on this noisy watch, but allow at most one follow-up action.→ Calls get_snapshot_diff(..., action_limit=1). Use action_limit=0 only when the user explicitly wants the fuse disabled for that watch.
Every morning at 9am, check all my watches and send me a summary of what changed.→ The agent can set up a Hermes cronjob that queries changedetection and delivers to your home channel.
Pause the watch on example.com till next week.→ Calls update_watch(paused=True)
CHANGEDETECTION_API_KEY is missing. Always set it in .env or the MCP client config.http://localhost:5000. If using Docker with a different port or host, set CHANGEDETECTION_BASE_URL explicitly.paused=True to create_watch if you want to set up but not start monitoring yet.minutes_between_checks too low (under 5 minutes) may get you rate-limited, especially on the SaaS plan. 1 hour is a safe default.get_snapshot_diff arms a per-watch action fuse (default 3) so one noisy page cannot trigger unlimited recheck_watch, update_watch, or delete_watch calls. Raise action_limit only when needed; set CHANGEDETECTION_MCP_ACTION_LIMIT_PER_WATCH=0 or call with action_limit=0 to disable.changedetection-mcp runs without errors: CHANGEDETECTION_BASE_URL=... CHANGEDETECTION_API_KEY=... changedetection-mcplist_watches returns your existing watchescreate_watch can add a new URLget_snapshot_diff returns meaningful diffs (test with a URL you know changes)| Env Var | Default | Description |
|---|---|---|
CHANGEDETECTION_BASE_URL | http://localhost:5000 | Base URL of your ChangeDetection.io instance |
CHANGEDETECTION_API_KEY | — | API key from Settings → API tab |
CHANGEDETECTION_MCP_ACTION_LIMIT_PER_WATCH | 3 | Mutating actions allowed after each get_snapshot_diff per watch. 0 disables the fuse. |
| Tool | Description |
|---|---|
list_watches | List all watches, optional tag filter |
get_watch | Full details of a single watch |
create_watch | Create a new watch (URL, title, tag, interval) |
update_watch | Update a watch (pause/resume, rename, change interval) |
delete_watch | Delete a watch and history |
recheck_watch | Trigger immediate recheck |
get_watch_history | List snapshot timestamps |
get_snapshot_diff | Diff between two snapshots; arms the per-watch follow-up action fuse (action_limit) |
search_watches | Full-text search |
list_tags | List tag groups |
create_tag | Create a tag/group |
get_system_info | Server stats and version |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.