changedetection-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP listen port. | 3000 |
| MCP_TRANSPORT | No | Transport mode: stdio or http. --http forces HTTP. | stdio |
| CHANGEDETECTION_URL | No | Instance origin. No userinfo, query, or hash. A trailing /api/v1 suffix is stripped. | https://example.invalid |
| CHANGEDETECTION_API_KEY | Yes | API key sent as x-api-key. Required for an upstream call. At least 8 characters. Never printed. | |
| CHANGEDETECTION_CONTACT | No | Contact inside the User-Agent. Must not contain the API key. | contact@example.com |
| CHANGEDETECTION_PER_MINUTE | No | Local sliding-window cap. | 30 |
| CHANGEDETECTION_TIMEOUT_MS | No | Upstream timeout in milliseconds. | 20000 |
| CHANGEDETECTION_ALLOW_WRITES | No | The literal true enables writes. Any other value keeps writes as a blocked preview. | off |
| CHANGEDETECTION_CACHE_TTL_SEC | No | TTL for successful reads. 0 disables the cache. | 60 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| changedetection_list_watchesA | List watches. GET /api/v1/watch. Optional tag name filter. Recheck-all is a separate write tool. |
| changedetection_get_watchA | Get one watch by UUID. GET /api/v1/watch/{uuid}. Returns the full watch JSON including restock and LLM fields when present. Nested history maps become timestamp lists. Server filesystem paths are discarded. |
| changedetection_create_watchA | Create a watch. POST /api/v1/watch. Requires url. Supports processor restock_diff, price fields, and llm_intent / llm_change_summary. Omit confirm for a dry-run. |
| changedetection_update_watchB | Update a watch. PUT /api/v1/watch/{uuid}. Same writable fields as create, plus last_viewed. Omit confirm for a dry-run. |
| changedetection_delete_watchA | Delete a watch and all of its history. DELETE /api/v1/watch/{uuid}. Omit confirm for a dry-run. |
| changedetection_recheck_watchA | Queue a recheck for one watch. GET /api/v1/watch/{uuid}?recheck=1. Omit confirm for a dry-run. |
| changedetection_recheck_allA | Queue a recheck for every watch, optionally limited by tag name. GET /api/v1/watch?recheck_all=1. Omit confirm for a dry-run. |
| changedetection_set_watch_stateB | Set paused or muted on a watch. GET /api/v1/watch/{uuid} with paused and muted query flags. Omit confirm for a dry-run. |
| changedetection_list_historyA | List snapshot timestamps for a watch. GET /api/v1/watch/{uuid}/history. Returns uuid, count, and snapshots with timestamp and iso_time. Server filesystem paths are discarded. |
| changedetection_get_snapshotB | Fetch one snapshot. GET /api/v1/watch/{uuid}/history/{timestamp}. timestamp may be a unix time or latest. html true requests HTML. |
| changedetection_get_diffB | Diff two snapshots. GET /api/v1/watch/{uuid}/difference/{from}/{to}. from_timestamp may be previous, to_timestamp may be latest. format is text, html, or htmlcolor. |
| changedetection_delete_historyA | Delete every snapshot for a watch. DELETE /api/v1/watch/{uuid}/history. The watch remains. Omit confirm for a dry-run. |
| changedetection_get_faviconA | Get the favicon for a watch. GET /api/v1/watch/{uuid}/favicon. Small binaries return base64. Large files return size only. |
| changedetection_list_tagsA | List tags. GET /api/v1/tags. |
| changedetection_get_tagB | Get one tag by UUID. GET /api/v1/tag/{uuid}. Includes WatchBase fields plus overrides_watch and LLM controls. |
| changedetection_create_tagB | Create a tag. POST /api/v1/tag. Requires title. Omit confirm for a dry-run. |
| changedetection_update_tagB | Update a tag. PUT /api/v1/tag/{uuid}. Omit confirm for a dry-run. |
| changedetection_delete_tagA | Delete a tag and remove it from every watch. DELETE /api/v1/tag/{uuid}. Omit confirm for a dry-run. |
| changedetection_recheck_tagA | Queue a recheck for every watch in a tag. GET /api/v1/tag/{uuid}?recheck=1. Omit confirm for a dry-run. |
| changedetection_set_tag_mutedA | Set muted or unmuted on a tag. GET /api/v1/tag/{uuid}?muted=. Omit confirm for a dry-run. |
| changedetection_list_notificationsA | List global notification URLs. GET /api/v1/notifications. Tokens in URLs are redacted. |
| changedetection_add_notificationsA | Add global notification URLs. POST /api/v1/notifications. Omit confirm for a dry-run. Tokens are redacted in the preview. |
| changedetection_replace_notificationsA | Replace every global notification URL. PUT /api/v1/notifications. An empty list clears them. Omit confirm for a dry-run. |
| changedetection_delete_notificationsA | Delete matching global notification URLs. DELETE /api/v1/notifications with a JSON body. Omit confirm for a dry-run. |
| changedetection_searchB | Search watches by URL or title. GET /api/v1/search?q= with optional tag and partial. |
| changedetection_import_watchesA | Import line-separated URLs as watches. POST /api/v1/import as text/plain. Query can set tag, processor, and other watch fields. Omit confirm for a dry-run. |
| changedetection_systeminfoA | Get instance status. GET /api/v1/systeminfo. Returns version, watch count, uptime, and queue fields when present. |
| changedetection_full_specA | Get the live merged OpenAPI document for this instance. GET /api/v1/full-spec. Returns YAML text. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Most tools target clear resource/action combinations, so an agent can usually select correctly. Minor overlap exists between recheck_tag and recheck_all with a tag filter, and dedicated state/mute tools vs general update tools.
All tools use the changedetection_ prefix and snake_case, with a mostly predictable verb_noun pattern. A few exceptions like systeminfo and full_spec are noun-oriented rather than verb_noun.
The broad Changedetection API surface justifies many of the 28 tools, and most map to distinct operations. However, 28 is heavy for an MCP tool set, and some convenience variants could be consolidated.
The set covers the core domain well: watch CRUD, tag CRUD, notification management, history/snapshots/diffs, rechecks, search, import, and system inspection. No obvious lifecycle gaps stand out.